|
|
il y a 1 an | |
|---|---|---|
| .github | il y a 1 an | |
| agenthub | il y a 1 an | |
| dev_config | il y a 1 an | |
| docs | il y a 1 an | |
| evaluation | il y a 1 an | |
| frontend | il y a 1 an | |
| opendevin | il y a 1 an | |
| tests | il y a 1 an | |
| .gitignore | il y a 1 an | |
| CONTRIBUTING.md | il y a 1 an | |
| LICENSE | il y a 1 an | |
| Pipfile | il y a 1 an | |
| Pipfile.lock | il y a 1 an | |
| README.md | il y a 1 an | |
| config.toml.template | il y a 1 an | |
| logo.png | il y a 1 an |
Welcome to OpenDevin, an open-source project aiming to replicate Devin, an autonomous AI software engineer who is capable of executing complex engineering tasks and collaborating actively with users on software development projects. This project aspires to replicate, enhance, and innovate upon Devin through the power of the open-source community.
OpenDevin is still a work in progress. But you can run the alpha version to see things working end-to-end.
First, pull our latest sandbox image here
docker pull ghcr.io/opendevin/sandbox
Then copy config.toml.template to config.toml. Add an OpenAI API key to config.toml,
or see below for how to use different models.
LLM_API_KEY="sk-..."
Next, start the backend:
python -m pip install pipenv
python -m pipenv install -v
python -m pipenv shell
uvicorn opendevin.server.listen:app --port 3000
If pipenv doesn't work for you, you can also run:
python -m pipenv requirements > requirements.txt && python -m pip install -r requirements.txt
Then, in a second terminal, start the frontend:
cd frontend
npm install
npm start
You'll see OpenDevin running at localhost:3001
We use LiteLLM, so you can run OpenDevin with any foundation model, including OpenAI, Claude, and Gemini. LiteLLM has a full list of providers.
To change the model, set the LLM_MODEL and LLM_API_KEY in config.toml.
For example, to run Claude:
LLM_API_KEY="your-api-key"
LLM_MODEL="claude-3-opus-20240229"
You can also set the base URL for local/custom models:
LLM_BASE_URL="https://localhost:3000"
And you can customize which embeddings are used for the vector database storage:
LLM_EMBEDDING_MODEL="llama2" # can be "llama2", "openai", "azureopenai", or "local"
You can run OpenDevin from your command line:
PYTHONPATH=`pwd` python opendevin/main.py -d ./workspace/ -i 100 -t "Write a bash script that prints 'hello world'"
Devin represents a cutting-edge autonomous agent designed to navigate the complexities of software engineering. It leverages a combination of tools such as a shell, code editor, and web browser, showcasing the untapped potential of LLMs in software development. Our goal is to explore and expand upon Devin's capabilities, identifying both its strengths and areas for improvement, to guide the progress of open code models.
The OpenDevin project is born out of a desire to replicate, enhance, and innovate beyond the original Devin model. By engaging the open-source community, we aim to tackle the challenges faced by Code LLMs in practical scenarios, producing works that significantly contribute to the community and pave the way for future advancements.
Achieving full replication of production-grade applications with LLMs is a complex endeavor. Our strategy involves:
An MVP demo is urgent for us. Here are the most important things to do:
After finishing building the MVP, we will move towards research in different topics, including foundation models, specialist capabilities, evaluation, agent studies, etc.
OpenDevin is a community-driven project, and we welcome contributions from everyone. Whether you're a developer, a researcher, or simply enthusiastic about advancing the field of software engineering with AI, there are many ways to get involved:
For details, please check this document.
We use Slack to discuss. Feel free to fill in the form if you would like to join the Slack organization of OpenDevin. We will reach out shortly if we feel you are a good fit to the current team!
Stay updated on OpenDevin's progress, share your ideas, and collaborate with fellow enthusiasts and experts. Together, we can make significant strides towards simplifying software engineering tasks and creating more efficient, powerful tools for developers everywhere.
🐚 Code less, make more with OpenDevin.