前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >首个代理AI软件工程师—Devika

首个代理AI软件工程师—Devika

作者头像
山行AI
发布2024-03-26 14:54:34
3820
发布2024-03-26 14:54:34
举报
文章被收录于专栏:山行AI山行AI

前言

在全球首位AI软件工程师和人类历史上首位具身智能AI机器人出现后,AI的高速发展已经逐渐在很多方面影响和改变着我们的工作和生活的方式。与之同时出现了很多开源版本的AI软件工程师,如:Open Devin—一个少编码、多创造的开源AI软件工程师和本文要介绍的Devika—一款代理人工智能软件工程师。

Devika - 代理人工智能软件工程师 👩‍💻

重要提示

本项目目前处于非常早期的开发/实验阶段。目前还有许多未实现/损坏的功能。欢迎大家贡献力量,帮助项目进展!

目录

•关于[1]•关键特性[2]•系统架构[3]•快速开始[4]•安装[5]•入门[6]•配置[7]•底层原理[8]•AI规划和推理[9]•关键词提取[10]•浏览器交互[11]•编写代码[12]•社区Discord服务器[13]•贡献[14]•许可证[15]

关于

Devika是一位高级AI软件工程师,能够理解高级别的人类指令,将其分解成步骤,搜索相关信息,并编写代码以实现给定目标。Devika利用大型语言模型、规划和推理算法以及网络浏览能力,智能地开发软件。

Devika旨在通过提供一位能够在最少的人类指导下承担复杂编码任务的AI编程伙伴,革命性地改变我们构建软件的方式。无论您需要创建新功能、修复bug还是从头开发整个项目,Devika都在这里协助您。

注意

Devika是以Cognition AI的Devin[16]为模型开发的。该项目旨在成为Devin的开源替代品,目标是在SWE-bench[17]基准测试中达到与Devin相同的分数……并最终超越它?

演示

•devika-pygame-demo.mp4[18]

关键特性

•🤖 支持Claude 3、GPT-4、GPT-3.5和通过llama[19]的本地LLMs。为了获得最佳性能:使用Claude 3系列模型。•🧠 高级AI规划和推理能力•🔍 针对性研究的上下文关键词提取•🌐 无缝网络浏览和信息收集•💻 多种编程语言的代码编写•📊 动态代理状态跟踪和可视化•💬 通过聊天界面进行自然语言交互•📂 基于项目的组织和管理•🔌 可扩展架构,用于添加新功能和集成

系统架构

Devika的系统架构由以下关键组件组成:

用户界面:用于与Devika互动、查看项目文件和监控代理状态的基于Web的聊天界面。•代理核心:协调AI规划、推理和执行过程的中心组件。它与各种子代理和模块通信以完成任务。•大型语言模型:Devika利用最先进的语言模型(如Claude、GPT-4和通过Ollama的本地LLMs)进行自然语言理解、生成和推理。•规划和推理引擎:负责将高级目标分解为可执行步骤,并根据当前上下文做出决策。•研究模块:利用关键词提取和网页浏览能力收集任务相关信息。•代码编写模块:根据计划、研究发现和用户要求生成代码。支持多种编程语言。•浏览器交互模块:使 Devika 能够根据需要导航网站、提取信息和与网页元素交互。•知识库:存储和检索项目特定信息、代码片段和学习知识,以便高效访问。•数据库:持久化项目数据、代理状态和配置设置。

快速开始

在本地运行项目的最简单方法:

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)

然后执行以下一组命令:

代码语言:javascript
复制
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 仓库:

代码语言:javascript
复制
git clone https://github.com/stitionai/devika.git

2.导航到项目目录:

代码语言:javascript
复制
cd devika

3.安装所需依赖项:

代码语言:javascript
复制
 pip install -r requirements.txt 
 playwright install --with-deps # installs browsers in playwright (and their deps) if required

4.设置必要的 API 密钥和配置(参见配置部分)。5.启动 Devika 服务器:

代码语言:javascript
复制
 python devika.py

6.编译并运行 UI 服务器:

代码语言:javascript
复制
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,如果对您有帮助,请帮忙点赞、评论、转发,谢谢。

References

[1] : https://github.com/stitionai/devika#table-of-contents [2] About: https://github.com/stitionai/devika#about [3] Key Features: https://github.com/stitionai/devika#key-features [4] System Architecture: https://github.com/stitionai/devika#system-architecture [5] Quick Start: https://github.com/stitionai/devika#quick-start [6] Installation: https://github.com/stitionai/devika#installation [7] Getting Started: https://github.com/stitionai/devika#getting-started [8] Configuration: https://github.com/stitionai/devika#configuration [9] Under The Hood: https://github.com/stitionai/devika#under-the-hood [10] AI Planning and Reasoning: https://github.com/stitionai/devika#ai-planning-and-reasoning [11] Keyword Extraction: https://github.com/stitionai/devika#keyword-extraction [12] Browser Interaction: https://github.com/stitionai/devika#browser-interaction [13] Code Writing: https://github.com/stitionai/devika#code-writing [14] Community Discord Server: https://github.com/stitionai/devika#community-discord-server [15] Contributing: https://github.com/stitionai/devika#contributing [16] License: https://github.com/stitionai/devika#license [17] : https://github.com/stitionai/devika#about [18] Devin: https://www.cognition-labs.com/introducing-devin [19] SWE-bench: https://www.swebench.com/ [20] : https://github.com/stitionai/devika#demos [21] : https://github.com/stitionai/devika#key-features [22] Ollama: https://ollama.com/ [23] : https://github.com/stitionai/devika#system-architecture [24] ARCHITECTURE.md: https://github.com/stitionai/devika/blob/main/ARCHITECTURE.md [25] : https://github.com/stitionai/devika#quick-start [26] #3: https://github.com/stitionai/devika/issues/3 [27] : https://github.com/stitionai/devika#installation [28] Configuration: https://github.com/stitionai/devika#configuration

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山行AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Devika - 代理人工智能软件工程师 👩‍💻
    • 重要提示
      • 目录
        • 关于
          • 注意
        • 演示
          • 关键特性
            • 系统架构
              • 快速开始
                • 安装
                  • 入门
                    • 配置
                      • 深入了解
                        • AI 规划和推理
                          • 关键词提取
                            • 浏览器交互
                              • 编写代码
                                • 其他
                                  • References
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档