21.5k Star , AI 智能体项目OpenDevin:少写代码,多创造(附部署教程)

news2024/11/20 11:38:38

Aitrainee | 公众号:AI进修生

这是一个旨在复制 Devin 的开源项目,Devin 是一位自主人工智能软件工程师,能够执行复杂的工程任务并在软件开发项目上与用户积极协作。该项目致力于通过开源社区的力量复制、增强和创新 Devin
在这里插入图片描述

Devin 代表了一种尖端的自主代理,旨在应对软件工程的复杂性。它利用 shell、代码编辑器和 Web 浏览器等工具的组合,展示了LLM在软件开发方面尚未开发的潜力。我们的目标是探索和扩展 Devin 的能力,确定其优势和需要改进的领域,以指导开放代码模型的进展。

如何部署

第一章:准备环境

1.1 安装Docker(Linux系统)

首先,通过运行下面的命令来安装 Docker 并配置阿里云的镜像加速器:

curl -fsSL <https://get.docker.com> | bash -s docker --mirror Aliyun

1.2 安装 Docker Compose

完成 Docker 的安装后,接下来安装 Docker Compose:

sudo apt install docker-compose

1.3 用户权限设置

为了便于管理 Docker,将当前用户添加到 Docker 用户组:

sudo usermod -aG docker $USER

第二章:系统更新与软件安装

2.1 更新系统软件

检查并列出所有可升级的软件包:

sudo apt list --upgradable

执行软件包升级:

sudo apt upgrade

2.2 安装必要的开发工具

安装 Node.js 和 npm,这对于许多现代开发环境是必需的:

sudo apt install nodejs npm

同样,安装 make 工具来管理和维护项目:

sudo apt install make

第三章:安装 Anaconda 和设置 Python 环境

3.1 下载与安装 Anaconda

下载 Anaconda 安装脚本,并为其设置执行权限:

wget <https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh>
chmod +x Anaconda3-2023.03-1-Linux-x86_64.sh

执行 Anaconda 安装脚本:

./Anaconda3-2023.03-1-Linux-x86_64.sh

更新环境变量以确保 Anaconda 正确配置:

source ~/.bashrc

3.2 配置 Python 环境

创建并激活一个名为 open 的新 Python 环境,指定 Python 版本为 3.11:

conda create -n open python=3.11
conda activate open

第四章:项目设置和构建

4.1 安装 Poetry

安装 Poetry 来管理 Python 项目的依赖:

curl -sSL <https://install.python-poetry.org> | python3 -

更新路径和环境变量:

export PATH="$HOME/.local/bin:$PATH"
source ~/.bashrc

4.2 获取并构建项目

克隆并进入 OpenDevin 项目目录,然后使用 make 构建项目:

git clone <https://github.com/OpenDevin/OpenDevin.git>
cd OpenDevin
make build

在这里插入图片描述

第五章:配置语言模型

5.1 选择和配置语言模型

OpenDevin 支持使用 litellm 库配置多种语言模型。默认配置是使用 OpenAI 的 GPT-4,但用户可以根据需求选择其他模型,如 Anthropic 的 Claude 或 Llama。

5.1.1 使用 Makefile 配置模型

简单有效的配置方法是通过 Makefile:

make setup-config

此命令会引导您输入所需的 LLM API 密钥和模型名称,以便个性化您的 OpenDevin 环境。

5.1.2 探索其他模型

如果您希望尝试除 OpenAI GPT 外的其他模型,可以查阅 litellm 文档以获取更多信息和支持。我们也在准备相关文档,以帮助用户探索和配置各种替代模型。

5.2 运行本地模型

具体文档说明如何使用 ollama 在本地运行模型,以及使用 Azure 云服务运行 OpenDevin 的指南正在编写中。

第六章:运行应用程序

6.1 启动 OpenDevin

完成配置后,启动 OpenDevin 就像执行以下命令一样简单:

make run

这将同时启动后端和前端服务器,使您能够与 OpenDevin 交互。

第七章:单独服务器启动

7.1 启动后端服务器

如果需要专注于后端相关任务,可以单独启动后端服务器:

make start-backend

7.2 启动前端服务器

同样,如果要处理前端相关的组件或界面增强,可以单独启动前端服务器:

make start-frontend

第八章:获取帮助

8.1 使用 make help

如果您需要关于可用目标和命令的帮助或信息,可以使用以下命令:

make help

附:一键执行

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun \
&& sudo apt list --upgradable \
&& sudo apt upgrade \
&& sudo apt install docker-compose \
&& sudo usermod -aG docker $USER \
&& sudo apt install nodejs npm \
&& sudo apt install make \
&& wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh \
&& chmod +x Anaconda3-2023.03-1-Linux-x86_64.sh \
&& ./Anaconda3-2023.03-1-Linux-x86_64.sh \
&& source ~/.bashrc
&& conda create -n open python=3.11 \
&& conda activate open \
&& curl -sSL https://install.python-poetry.org | python3 - \
&& export PATH="$HOME/.local/bin:$PATH" \
&& source ~/.bashrc \
&& git clone https://github.com/OpenDevin/OpenDevin.git \
&& cd OpenDevin \
&& make build \

https://github.com/OpenDevin/OpenDevin

  • 公众号有最新咨询和AI工具教程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1593892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇舟问卷:国外问卷调查适合哪些人?

在这个快节奏的时代&#xff0c;朝九晚五的工作模式似乎已经成为许多人的固定生活模式。然而&#xff0c;这种日复一日的工作方式往往让人感到疲惫和厌倦&#xff0c;我们渴望找到一种既能赚钱又能兼顾生活的方式。 海外问卷调查作为一种适合在家做的赚钱方式&#xff0c;这两…

前端知识学习笔记-六(vue)

简介 Vue是前端优秀框架是一套用于构建用户界面的渐进式框架 Vue优点 Vue是目前前端最火的框架之一 Vue是目前企业技术栈中要求的知识点 vue可以提升开发体验 Vue学习难度较低 Vue开发前准备 一、nodejs环境 Nodejs简介 Nodejs诞生于2009年&#xff0c;主攻服务器方向&#x…

Github Coplit的认证及其在JetBrains中的使用

原文地址&#xff1a;Github Coplit的认证及其在JetBrains中的使用 - Pleasure的博客 下面是正文内容&#xff1a; 前言 今天分享一个可有可无的小技巧&#xff0c;水一篇文。 如标题所述&#xff0c;Github Coplit的认证及其在JetBrains中的使用 正文 介绍JetBrains JetBrain…

BCD BIN 转换

1&#xff0c;BCD是将10进制的每一位转换成2进制 如22 的中数子2的2进制就是0010&#xff0c;那么22的BCD 嘛就是 0010 0010 2&#xff0c;bin 的就是将2进制的每4位转成10进制 如 34的2进制就是0010 0010 高四位和低四位都是 0010 &#xff0c;0010对应的10进制就是2 那么…

ELFK日志分析系统之搭建ELF+Filebeaat+Zookeeper+Kafka

引言 结合前面所学 http://ELK日志分析系统 一、为什么要做日志分析平台 随着业务量的增长&#xff0c;每天业务服务器将会产生上亿条的日志&#xff0c;单个日志文件达几个GB&#xff0c;这时我们发现用Linux自带工具&#xff0c;cat grep awk 分析越来越力不从心了&#…

(四)qt中使用ffmpeg播放视频,可暂停恢复

一、在qt中添加ffmpeg库及头文件 INCLUDEPATH /usr/local/ffmpeg/include LIBS -L/usr/local/lib -lavutil -lavcodec -lavformat -lswscale 二、详细代码 FFempegVideoDecode 视频解码类&#xff08;放入线程中&#xff09; ffmpegvideodecode.h #ifndef FFMPEGVIDEODE…

程序猿没有副业,太难了

副业的初衷 我知道踏下心来钻研本专业会有收获,但又实在没有太多兴趣。 只好努努力,跟着兴致走,多一个选择,多一份抵抗风险的能力。 不管从事什么行业&#xff0c;除了做好自己本职工作以外&#xff0c;还会有一些空闲的时间来做一些其他事情&#xff0c;与其说是副业,不如说…

JavaScript教程(十四)--- 类型化数组

JavaScript 类型化数组 JavaScript 类型化数组是一种类似数组的对象&#xff0c;并提供了一种用于在内存缓冲中访问原始二进制数据的机制。 引入类型化数组并非是为了取代 JavaScript 中数组的任何一种功能。相反&#xff0c;它为开发者提供了一个操作二进制数据的接口。这在操…

OSCP靶场--PayDay

OSCP靶场–PayDay 考点(公共exp文件上传密码复用sudo -l all提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.153.39 -p- -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-13 04:52 EDT Nmap scan report for 192…

常见的锁策略,synchronized优化过程和cas过程

1. 常见的锁策略 所谓"策略",也可以理解为做法."锁策略"就是用来描述一把锁面对加锁/解锁时的做法. 1.1 乐观锁 vs 悲观锁 要区分一把锁是乐观锁还是悲观锁,就要预测当前这把锁冲突的概率高不高. 如果冲突概率高,后续要做的工作往往会更多,加锁的开销就…

python画神经网络图

代码1(画神经网络连接图&#xff09; from math import cos, sin, atan import matplotlib.pyplot as plt # 注意这里并没有用到这个networkx这个库&#xff0c;完全是根据matploblib这个库来画的。 class Neuron():def __init__(self, x, y,radius,nameNone):self.x xself.y …

Qt学习记录(C++)——Day 3

目录 一、封装自定义控件 1.添加界面类 2.添加控件 3.提升封装的控件 4.实现功能 5.提供接口 6.测试接口 二、鼠标事件 前言&#xff1a; 1.鼠标进入事件 enterEvent 2.鼠标离开事件 leaveEvent 3.鼠标按下事件 mousePressEvent 4.鼠标释放事件 mouseReleaseEv…

表格头部合并,数据和表头中间插入合计和样式合并

在做项目时其中一个页面要求和Excel格式一样的页面 html数据&#xff0c;大概写了几个案例如下 <el-table v-loading"loading" :data"tableList" :span-method"mergeRow">//:span-method"mergeRow" 用于合并第一行<el-table…

传统图机器学习的特征工程-全图

将整张图表示成为一个低维向量&#xff0c;反映全图的特征 key idea&#xff1a;Bag-of-Words&#xff08;BOW&#xff09;把图看作文章&#xff0c;把节点看作单词 Kernel mothods

基于SSM+Jsp+Mysql的网络视频播放器

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

2024【Java】第十五届蓝桥杯JavaB组第一道填空题

白给题 给了前十项 问第202420242024项是多少 20和24的倍数交替 20 24 40 48 60 72 ........&#xff1b; 实际上就是求24*101210121012 直接用BigInteger 秒了 import java.math.BigInteger;public class Main {public static void main(String[] args) {BigInteger a1 …

2009-2021年上市公司僵尸企业识别数据(含原始数据+计算代码+计算结果)

2009-2021年上市公司僵尸企业识别数据&#xff08;含原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2009-2021年 2、指标&#xff1a; 证券代码 、证券简称、上市日期、year、净利润、政府补助、流动负债合计、负债合计、财务费用明细利息支出、资产总计、长期负…

Unity绘制地图

首先在项目/Assets文件夹下创建一个Tiles文件夹 在层级下点击鼠标右键选择2D对象选择瓦片地图创建Tilemap。 选择地图素材 如果素材需要裁剪&#xff0c;在检查器Sprite模式选择多个&#xff0c;点击Sprite Editor,选择切 &#xff0c;选择类型Grid By Cell Count&#xff0c;…

ES入门十二:相关性评分

对于一个搜索引擎来说&#xff0c;对检索出来的数据进行排序是非常重要的功能。全文本数据的检索通常无法用是否相等来的出结果&#xff0c;而是用相关性来决定最后的返回结果 相关性是值搜索内容和结果的相关性&#xff0c;是用来描述文档和查询语句的匹配程度的。通过计算相…

Springboot+Vue项目-基于Java+MySQL的校园管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…