Giter Site home page Giter Site logo

sylvialee / opendevin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from opendevin/opendevin

0.0 0.0 0.0 2.86 MB

๐Ÿš OpenDevin: Code Less, Make More

License: MIT License

Shell 2.52% JavaScript 1.07% Python 58.88% TypeScript 31.48% CSS 0.51% Makefile 4.24% HTML 0.75% Dockerfile 0.56%

opendevin's Introduction

Contributors Forks Stargazers Issues MIT License
Join our Slack community Join our Discord community
Logo

OpenDevin: Code Less, Make More

๐Ÿ—‚๏ธ Table of Contents
  1. ๐ŸŽฏ Mission
  2. ๐Ÿค” What is Devin?
  3. ๐Ÿš Why OpenDevin?
  4. ๐Ÿšง Project Status
  5. ๐Ÿš€ Get Started
  6. โญ๏ธ Research Strategy
  7. ๐Ÿค How to Contribute
  8. ๐Ÿค– Join Our Community
  9. ๐Ÿ› ๏ธ Built With
  10. ๐Ÿ“œ License

๐ŸŽฏ Mission

OpenDevin.webm

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.

โ†‘ Back to Top โ†‘

๐Ÿค” What is Devin?

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.

โ†‘ Back to Top โ†‘

๐Ÿš Why OpenDevin?

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.

โ†‘ Back to Top โ†‘

๐Ÿšง Project Status

OpenDevin is currently a work in progress, but you can already run the alpha version to see the end-to-end system in action. The project team is actively working on the following key milestones:

  • UI: Developing a user-friendly interface, including a chat interface, a shell demonstrating commands, and a web browser.
  • Architecture: Building a stable agent framework with a robust backend that can read, write, and run simple commands.
  • Agent Capabilities: Enhancing the agent's abilities to generate bash scripts, run tests, and perform other software engineering tasks.
  • Evaluation: Establishing a minimal evaluation pipeline that is consistent with Devin's evaluation criteria.

After completing the MVP, the team will focus on research in various areas, including foundation models, specialist capabilities, evaluation, and agent studies.

โ†‘ Back to Top โ†‘

โš ๏ธ Caveats and Warnings

  • OpenDevin is still an alpha project. It is changing very quickly and is unstable. We are working on getting a stable release out in the coming weeks.
  • OpenDevin will issue many prompts to the LLM you configure. Most of these LLMs cost money--be sure to set spending limits and monitor usage.
  • OpenDevin runs bash commands within a Docker sandbox, so it should not affect your machine. But your workspace directory will be attached to that sandbox, and files in the directory may be modified or deleted.
  • Our default Agent is currently the MonologueAgent, which has limited capabilities, but is fairly stable. We're working on other Agent implementations, including SWE Agent. You can read about our current set of agents here.

๐Ÿš€ Get Started

Getting started with the OpenDevin project is incredibly easy. Follow these simple steps to set up and run OpenDevin on your system:

1. Requirements

Make sure you have all these dependencies installed before moving on to make build.

2. Build and Setup The Environment

  • Build the Project: Begin by building the project, which includes setting up the environment and installing dependencies. This step ensures that OpenDevin is ready to run smoothly on your system.
    make build

3. Configuring the Language Model

OpenDevin supports a diverse array of Language Models (LMs) through the powerful litellm library. By default, we've chosen the mighty GPT-4 from OpenAI as our go-to model, but the world is your oyster! You can unleash the potential of Anthropic's suave Claude, the enigmatic Llama, or any other LM that piques your interest.

To configure the LM of your choice, follow these steps:

  1. Using the Makefile: The Effortless Approach With a single command, you can have a smooth LM setup for your OpenDevin experience. Simply run:
    make setup-config
    This command will prompt you to enter the LLM API key and model name, ensuring that OpenDevin is tailored to your specific needs.

Note on Alternative Models: Some alternative models may prove more challenging to tame than others. Fear not, brave adventurer! We shall soon unveil LLM-specific documentation to guide you on your quest. And if you've already mastered the art of wielding a model other than OpenAI's GPT, we encourage you to share your setup instructions with us.

For a full list of the LM providers and models available, please consult the litellm documentation.

There is also documentation for running with local models using ollama.

4. Run the Application

  • Run the Application: Once the setup is complete, launching OpenDevin is as simple as running a single command. This command starts both the backend and frontend servers seamlessly, allowing you to interact with OpenDevin without any hassle.
    make run

5. Individual Server Startup

  • Start the Backend Server: If you prefer, you can start the backend server independently to focus on backend-related tasks or configurations.

    make start-backend
  • Start the Frontend Server: Similarly, you can start the frontend server on its own to work on frontend-related components or interface enhancements.

    make start-frontend

6. Help

  • Get Some Help: Need assistance or information on available targets and commands? The help command provides all the necessary guidance to ensure a smooth experience with OpenDevin.
    make help

โ†‘ Back to Top โ†‘

โญ๏ธ Research Strategy

Achieving full replication of production-grade applications with LLMs is a complex endeavor. Our strategy involves:

  1. Core Technical Research: Focusing on foundational research to understand and improve the technical aspects of code generation and handling.
  2. Specialist Abilities: Enhancing the effectiveness of core components through data curation, training methods, and more.
  3. Task Planning: Developing capabilities for bug detection, codebase management, and optimization.
  4. Evaluation: Establishing comprehensive evaluation metrics to better understand and improve our models.

โ†‘ Back to Top โ†‘

๐Ÿค How to Contribute

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:

  • Code Contributions: Help us develop the core functionalities, frontend interface, or sandboxing solutions.
  • Research and Evaluation: Contribute to our understanding of LLMs in software engineering, participate in evaluating the models, or suggest improvements.
  • Feedback and Testing: Use the OpenDevin toolset, report bugs, suggest features, or provide feedback on usability.

For details, please check this document.

โ†‘ Back to Top โ†‘

๐Ÿค– Join Our Community

Now we have both Slack workspace for the collaboration on building OpenDevin and Discord server for discussion about anything related, e.g., this project, LLM, agent, etc.

If you would love to contribute, feel free to join our community (note that now there is no need to fill in the form). Let's simplify software engineering together!

๐Ÿš Code less, make more with OpenDevin.

Star History Chart

๐Ÿ› ๏ธ Built With

OpenDevin is built using a combination of powerful frameworks and libraries, providing a robust foundation for its development. Here are the key technologies used in the project:

FastAPI uvicorn LiteLLM Docker Ruff MyPy LlamaIndex React

Please note that the selection of these technologies is in progress, and additional technologies may be added or existing ones may be removed as the project evolves. We strive to adopt the most suitable and efficient tools to enhance the capabilities of OpenDevin.

โ†‘ Back to Top โ†‘

๐Ÿ“œ License

Distributed under the MIT License. See LICENSE for more information.

โ†‘ Back to Top โ†‘

opendevin's People

Contributors

rbren avatar yimothysu avatar xingyaoww avatar yufansong avatar dorbanianas avatar ifuryst avatar sparkier avatar enyst avatar 808vita avatar huybery avatar xcodebuild avatar foragerr avatar justinlin610 avatar neubig avatar geohotstan avatar 94mashiro avatar jojeyh avatar h9-tect avatar jayquimby avatar jiaxin-pei avatar zch-cc avatar jannikwinghart avatar risingsunomi avatar ghat0tkach avatar suryavirkapur avatar eltociear avatar abhisekomkar avatar aadya1603 avatar rfleuryleveso avatar renukacheripally avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.