本文主要是介绍AI程序员Devin的开源替代Devika,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前天介绍了 AI软件工程师 微软AI 程序员AutoDev,自主执行工程任务生成代码-CSDN博客
今天介绍下另一款Devin替代品,开源的Devika
(另外还有一个开源的 OpenDevin : https://github.com/OpenDevin/OpenDevin)
Devika
https://github.com/stitionai/devika
Devika 是一款自主 AI 软件工程师,能够理解高水平的人类指令,将其分解为步骤,研究相关信息,并编写代码以实现给定的目标。
Devika 的目标是成为 Cognition AI 的 Devin 的竞争性开源替代方案。
关于
Devika 是一款先进的 AI 软件工程师,能够理解高水平的人类指令,将其分解为步骤,研究相关信息,并编写代码以实现给定的目标。
Devika 利用大型语言模型、规划和推理算法以及网络浏览能力来智能地开发软件。
Devika 的目标是通过提供一款 AI 辅助编程工具来彻底改变我们构建软件的方式,这款工具可以在极少的人类指导下承担复杂的编码任务。
无论您需要创建一个新功能、修复一个错误,还是从零开始开发一个完整的项目,Devika 都在这里为您提供帮助。
注意
Devika 是根据 Cognition AI 的 Devin 设计的。
该项目旨在成为 Devin 的开源替代方案,其“过度雄心勃勃”的目标是在 SWE-bench 基准测试中达到与 Devin 相同的分数……并最终超越它?
主要特点
🤖 支持 Claude 3、GPT-4、GPT-3.5 和通过 Ollama 支持的本地语言模型。为了获得最佳性能:请使用 Claude 3 系列模型。
🧠 先进的 AI 规划和推理能力
🔍 上下文关键字提取,用于专注研究
🌐 无缝的网络浏览和信息收集
💻 支持多种编程语言的代码编写
📊 动态代理状态跟踪和可视化
💬 通过聊天界面进行自然语言交互
📂 基于项目的组织和管理
🔌 可扩展的架构,用于添加新功能和集成
系统架构
Devika 的系统架构包括以下关键组件:
用户界面:基于网络的聊天界面,用于与 Devika 进行交互、查看项目文件和监视代理状态。
代理核心:负责协调 AI 规划、推理和执行过程的中心组件。它与各种子代理和模块通信,以完成任务。
大型语言模型:Devika 利用像 Claude、GPT-4 和通过 Ollama 支持的本地语言模型等最先进的语言模型,用于自然语言理解、生成和推理。
规划和推理引擎:负责将高级目标分解为可行动步骤,并根据当前上下文做出决策。
研究模块:利用关键字提取和网络浏览能力,收集与当前任务相关的信息。
代码编写模块:根据计划、研究结果和用户需求生成代码。支持多种编程语言。
浏览器交互模块:使 Devika 能够浏览网站、提取信息,并根据需要与网页元素交互。
知识库:存储和检索项目特定信息、代码片段和学习知识,以实现高效访问。
数据库:持久化项目数据、代理状态和配置设置。
详细文档请阅读 ARCHITECTURE.md[1]。
快速开始
在本地运行项目的最简单方法:
1.安装 uv - Python 包管理器(https://github.com/astral-sh/uv)2.安装 bun - JavaScript 运行时(https://bun.sh/)3.安装并设置 Ollama(https://ollama.com/)4.在 config.toml
文件中设置 API 密钥。(这个功能很快就会移到 UI 中,届时您可以直接在 UI 中设置这些密钥,而无需触及命令行,想要实现它吗?请查看此问题:#3)
然后执行以下一组命令:
ollama serve
git clone https://github.com/stitionai/devika.git
cd devika/
uv venv
uv pip install -r requirements.txt
cd ui/
bun install
bun run dev
cd ..
python3 devika.py
复制
安装
Devika 依赖以下内容:
••Ollama(安装说明请见:https://ollama.com/)
••Bun(安装说明请见:https://bun.sh/)
••安装 Devika,请遵循以下步骤:
1.克隆 Devika 仓库:
git clone https://github.com/stitionai/devika.git
复制
2.导航到项目目录:
cd devika
复制
3.安装所需依赖项:
pip install -r requirements.txt playwright install --with-deps # installs browsers in playwright (and their deps) if required
复制
4.设置必要的 API 密钥和配置(参见配置部分)。5.启动 Devika 服务器:
python devika.py
复制
6.编译并运行 UI 服务器:
cd ui/
bun install
bun run dev
复制
7.通过打开浏览器并导航到 http://127.0.0.1:3000 访问 Devika Web 界面。
入门
开始使用 Devika,请遵循以下步骤: 1.在浏览器中打开 Devika Web 界面。 2.点击“新建项目”按钮并为您的项目提供一个名称,以创建一个新项目。 3.为您的项目选择所需的编程语言和模型配置。 4.在聊天界面中,为 Devika 提供一个高级目标或任务描述以供其工作。 5.Devika 将处理您的请求,将其分解为步骤,并开始处理任务。 6.监控 Devika 的进展,查看生成的代码,并根据需要提供额外的指导或反馈。 7.一旦 Devika 完成任务,请审阅生成的代码和项目文件。 8.通过提供进一步的指令或修改,根据需要迭代和完善项目。
配置
Devika 需要某些配置设置和 API 密钥才能正常工作。使用以下信息更新 config.toml 文件:
•OPENAI_API_KEY:用于访问 GPT 模型的 OpenAI API 密钥。•CLAUDE_API_KEY:用于访问 Claude 模型的 Anthropic API 密钥。•BING_API_KEY:用于网页搜索功能的 Bing 搜索 API 密钥。•DATABASE_URL:数据库连接的 URL。•LOG_DIRECTORY:存储 Devika 日志的目录。•PROJECT_DIRECTORY:存储 Devika 项目的目录。请确保保护您的 API 密钥安全,不要公开分享。
深入了解
通过下文,让我们一起深入了解 Devika 中使用的一些关键组件和技术。
AI 规划和推理
Devika 采用先进的 AI 规划和推理算法,将高级目标分解为可执行的步骤。规划过程包括以下阶段:
1.目标理解:Devika 分析给定的目标或任务描述,以理解用户的意图和要求。
2.上下文收集:从对话历史、项目文件和知识库中收集相关上下文,以通知规划过程。
3.步骤生成:根据目标和上下文,Devika 生成一系列高级步骤来完成任务。
4.细化和验证:细化和验证生成的步骤,以确保它们的可行性和与目标的一致性。
5.执行:Devika 执行计划中的每个步骤,根据需要利用各种子代理和模块。推理引擎不断评估进展并根据执行过程中接收到的新信息或反馈调整计划。
关键词提取
为了实现专注的研究和信息收集,Devika 采用了关键词提取技术。该过程包括以下步骤:
•预处理:对输入文本(目标、对话历史或项目文件)进行预处理,去除停用词、分词和规范化文本。•关键词识别:Devika 使用 BERT(双向编码器表示变换器)模型从预处理的文本中识别重要的关键词和短语。BERT 在大型语料库上的预训练使其能够捕捉语义关系并理解给定上下文中单词的重要性。•关键词排名:根据其与手头任务的相关性和重要性对识别的关键词进行排名。使用像 TF-IDF(词频-逆文档频率)和 TextRank 等技术为每个关键词分配分数。•关键词选择:选择排名最高的关键词作为当前上下文中最相关和最具信息性的关键词。这些关键词用于指导研究和信息收集过程。通过提取与上下文相关的关键词,Devika 可以专注其研究工作并检索相关信息以协助完成任务。
浏览器交互
Devika 包含浏览器交互能力,以导航网站、提取信息和与网页元素交互。浏览器交互模块利用 Playwright 库自动化网页交互。该过程包括以下步骤:
•导航:Devika 使用 Playwright 导航到特定的 URL 或根据提供的关键词或要求执行搜索。•元素交互:Playwright 允许 Devika 与网页元素进行交互,例如点击按钮、填写表单和从特定元素中提取文本。•页面解析:Devika 解析访问网页的 HTML 结构以提取相关信息。它使用像 CSS 选择器和 XPath 等技术来定位和提取特定数据点。•JavaScript 执行:Playwright 使 Devika 能够在浏览器上下文中执行 JavaScript 代码,从而实现动态交互和数据检索。•屏幕截图捕获:Devika 可以捕获访问网页的屏幕截图,这对于视觉参考或调试目的很有用。浏览器交互模块赋予 Devika 从网络收集信息、与在线资源交互以及将实时数据纳入其决策和代码生成过程的能力。
编写代码
Devika 的代码编写模块根据计划、研究发现和用户要求生成代码。该过程包括以下步骤:
•语言选择:Devika 确定用户指定的编程语言或根据项目上下文推断它。•代码结构生成:根据计划和特定于语言的模式,Devika 生成代码的高级结构,包括类、函数和模块。•代码填充:Devika 使用特定的逻辑、算法和数据操作语句填充代码结构。它利用研究发现、知识库中的代码片段以及自己对编程概念的理解来生成有意义的代码。•代码格式化:生成的代码根据特定于语言的约定和最佳实践进行格式化,以确保可读性和可维护性。•代码审查和完善:Devika 审查生成的代码,检查语法错误、逻辑不一致以及潜在的改进点。它根据自己的分析和用户提供的任何反馈,迭代地完善代码。Devika 的代码编写能力使其能够根据每个项目的具体要求和上下文,生成各种编程语言中的功能性和高效代码。
其他
本文由山行翻译整理自https://github.com/stitionai/devika
devika AI 软件工程师,Devin 的开源替代方案。程序员会被替代吗?
另外国内有款多Agent:GitHub - kuafuai/DevOpsGPT: Multi agent system for AI-driven software development. Combine LLM with DevOps tools to convert natural language requirements into working software. Supports any development language and extends the existing code.
这篇关于AI程序员Devin的开源替代Devika的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!