AI程序员Devin的开源替代Devika

2024-03-31 07:36

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863776

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提