人工智能正在改变我们所熟知的世界,对于开发者来说,拥抱人工智能可以显著提高生产力。它可以帮助您更快地发布新功能、为您编写测试用例,甚至发现代码中的漏洞。
互联网提供了很多工具,但找到合适的工具需要花费时间和精力。因此,我整理了一份 AI 工具列表,以帮助您成为更好的开发人员。
1. SWE-Kit 👑:用于编码代理的开源无头 IDE
作为一名开发人员,我一直想构建定制的 AI 工具,以便与代码库进行交流、自动将更改推送到 GitHub 并自动发布新功能。老实说,在此之前我找不到任何工具。
SWE-Kit 是一款无头 IDE,具有 LSP、代码索引和代码 RAG 等功能。它提供灵活的运行时,可在任何 Docker 主机或远程服务器上与专用编码工具包一起运行。
这些工具包包括与 GitHub、Jira 和 Slack 等平台的集成,以及 Composio 提供支持的文件搜索和代码索引等工具。
使用 SweKit 构建的编码代理在经过验证的SWE 基准测试中获得了令人印象深刻的 48.60% 的得分。
这个全面的基准测试包括来自 Django、Scikit-learn、Flask、Sympy 等流行库的一些真实 GitHub 问题。
动态图片
它与所有主要的 LLM 框架兼容,例如 LangChain、CrewAI、Autogen 和 LlamaIndex。
您可以构建并部署自己的。
- GitHub PR Agent:用于自动审核 GitHub PR。
- SWE 代理:您可以构建一个 SWE 代理来自动编写功能、单元测试、文档等。
- 与代码库聊天:您可以使用代码索引工具构建与任何远程或本地代码库聊天的工具。
安装swekit并composio-core快速开始。
pip install compsio-core swekit
安装您选择的任何框架。
pip install crewai composio-crewai
现在,让我们创建一个具有 GitHub 访问权限的编码代理。
composio add github
生成新的代理脚手架。
swekit scaffold crewai -o swe_agent
运行代理。
cd swe_agent/agent
python main.py
这将使用 Docker 作为默认工作区环境。有关更多信息,请参阅文档。
2. Composio:AI集成和工具平台
Composio 是一个开源平台,为 AI 代理提供第三方集成。它提供 Linear、Slack、GitHub、Jira、Asana 和其他可用于构建定制 AI 代理的集成。
例如,
- 您可以构建全面的代理来与 Slack 和 Discord 上的用户进行交互。回复查询、指导他们完成支持流程或安排后续操作。
- 您可以构建编码代理,以通过 Jira 票证自动修复 GitHub 中的错误。
- 构建代理来编写代码文档。
Composio 非常容易上手。
pip install composio-core
添加 GitHub 集成。
composio add github
Composio 代表您处理用户身份验证和授权。
以下是如何使用 GitHub 集成来为存储库加注星标的方法。
from openai import OpenAI
from composio_openai import ComposioToolSet, App
openai_client = OpenAI(api_key="******OPENAIKEY******")
# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\*\\***COMPOSIO_API_KEY**\\*\\***")
## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"
# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": my_task}
]
)
运行此 Python 脚本以使用代理执行给定的指令。
Composio 与 LangChain、LlamaIndex、CrewAi 等著名框架合作。
欲了解更多信息,请访问官方 文档,欲查看更复杂的示例,请参阅存储库的 示例 部分。
3. Aider——人工智能结对编程者
如果您正在寻找一对程序员来帮助您更快地交付代码,那么这是完美的选择。
Aider 可让您将程序与 LLM 配对,以编辑本地 GitHub 存储库中的代码。您可以启动新项目或使用现有的 GitHub 存储库。
您可以像这样快速开始:
pip install aider-chat
# Change the directory into a git repo
cd /to/your/git/repo
# Work with Claude 3.5 Sonnet on your repo
export ANTHROPIC_API_KEY=your-key-goes-here
aider
# Work with GPT-4o on your repo
export OPENAI_API_KEY=your-key-goes-here
aider
4. Mentat - GitHub 原生编码代理
Mentat 是一种 AI 工具,旨在帮助您通过命令行解决任何编码任务。
与 Copilot 不同,Mentat 可以协调跨多个文件和位置的编辑。与 ChatGPT 不同,Mentat 从一开始就了解项目的背景 — 无需复制和粘贴!
它有一个专用的 CLI 工具可以直接与代码库通信,并可以根据终端中的提示生成和执行 Python 代码。
按照步骤运行 Mentat。首先,创建一个 Python 虚拟环境。
# Python 3.10 or higher is required
python3 -m venv .venv
source .venv/bin/activate
克隆您的 GitHub 存储库。
git clone https://github.com/AbanteAI/mentat.git
cd mentat
# install with pip in editable mode:
pip install -e .
添加 OpenAI 或任何 LLM 提供商的 API 密钥。
export OPENAI_API_KEY=<your key here>
从项目目录中运行 Mentat。Mentat 使用 git,因此如果你的项目尚未设置 git,请运行 git init。然后你可以使用以下命令运行 Mentat:
mentat <paths to files or directories>
有关 Mentat 的更多信息,请查看文档。
5. AutoCodeRover –自主程序改进
AutoCodeRover 提供了完全自动化的解决方案来解决 GitHub 问题,包括错误修复和功能添加。
通过将 LLM 与先进的分析和调试功能相结合,AutoCodeRover 可以优先考虑补丁位置,以有效地创建和实施补丁。
首先,设置 OPENAI_API_KEY 或任何其他密钥,
export OPENAI_KEY=sk-YOUR-OPENAI-API-KEY-HERE
构建并启动docker镜像:
docker build -f Dockerfile -t acr .
docker run -it -e OPENAI_KEY="${OPENAI_KEY:-OPENAI_API_KEY}" -p 3000:3000 -p 5000:5000 acr
查看他们的官方存储库以获取更多信息。
5. Continue—— 领先的人工智能代码助手
你一定听说过 Cursor IDE,这是一款流行的 AI 驱动的 IDE;Continue 与它类似,但在 Apache 许可下开源。
它具有高度可定制性,可让您添加任何语言模型以进行自动完成或聊天。这可以极大地提高您的工作效率。您可以将 Continue 添加到 VScode 和 JetBrains。
主要特色
- 在侧边栏中聊天以了解和迭代代码
- 自动完成功能可在您输入时接收内联代码建议
- 编辑以修改代码而无需离开当前文件
- 为日常用例建立快捷方式的操作
更多信息请查看 文档。
6. Qodo Merge:自动拉取请求分析工具
Codium AI 的这款开源工具可自动执行 GitHub Pull 请求审查、分析、反馈和建议。它可以帮助您提高 Pull 请求的效率,并且与 GitLab 和 BitBucket 等其他版本控制系统兼容。
它既有自托管解决方案,也有云托管解决方案。
对于自托管解决方案,您将需要一个 OpenAI API 密钥和一个 GitHub 或 GitLab 访问令牌。
要在本地使用它,请安装该库。
pip install pr-agent
然后,使用下面的脚本运行相关工具。
确保填写必填参数(user_token, openai_key, pr_url, command):
from pr_agent import cli
from pr_agent.config_loader import get_settings
def main():
# Fill in the following values
provider = "github" # GitHub provider
user_token = "..." # GitHub user token
openai_key = "..." # OpenAI key
pr_url = "..." # PR URL, for example 'https://github.com/Codium-ai/pr-agent/pull/809'
command = "/review" # Command to run (e.g. '/review', '/describe', '/ask="What is the purpose of this PR?"', ...)
# Setting the configurations
get_settings().set("CONFIG.git_provider", provider)
get_settings().set("openai.key", openai_key)
get_settings().set("github.user_token", user_token)
# Run the command. Feedback will appear in GitHub PR comments
cli.run_command(pr_url, command)
if __name__ == '__main__':
main()
您还可以使用 Docker 镜像或从源代码运行。文档中有更多关于 Qodo 合并的内容。
7. OpenHands:人工智能软件开发代理平台
OpenHands 是领先的 AI 代理开源平台之一,也是 Devin 的直接竞争对手。OpenHands 代理可以构建新的绿地项目、向现有代码库添加功能、调试问题等等。
最近,他们的经纪人还以 53% 的成绩荣登 SWE-bench 排行榜榜首。
要使用 OpenHands,您需要 Docker 版本 26.0.0+ 或 Docker Desktop 4.31.0+ 和 Linux、Mac 或 WSL。
拉取 docker 镜像并运行容器。
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.12-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.12-nikolaik \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.12
运行上述命令后,你会发现 OpenHands 在 http://localhost:3000运行。
启动 OpenHands 后,您将看到一个设置模式。选择 LLM Provider 和 LLM Model 并输入相应的 API Key。您可以随时通过选择 UI 的Settings按钮来更改这些。
如果您的型号未列出,请切换高级模式并手动输入。
它们提供了四种使用 Agent 的方法:交互式 GUI、命令行界面 (CLI) 以及通过无头模式和 GitHub Actions 进行非交互式使用的选项。每种方法都有其优点。有关更多信息,请参阅文档。
8. Sourcegraph 的 Cody:IDE 编码助手
Cody 是 Sourcegraph 的一个开源项目,旨在直接在 IDE 中增强您的编码工作流程 - 无论是 VS Code、JetBrains 还是其他。Cody 利用高级搜索作为编码助手,从本地和远程代码库中提取上下文。这样就可以直接从 IDE 无缝访问任何规模的 API、符号和使用模式的详细信息。
使用 Cody,您可以与您的代码库聊天,进行内联编辑,获取代码建议,并享受自动完成等功能,所有这些功能都是为了帮助您更快、更有效地编写代码而量身定制的。
您可以简单地将其安装在您的 IDE 上并开始使用。有关更多信息,请查看文档。
9. VannaAI:与 SQL 数据库聊天
我害怕编写 SQL 查询,但与此同时,它是现代软件开发中最关键的技术之一。几乎所有公司都严重依赖 SQL 与关系数据库进行交互。但正如他们所说,总有一个适用于它和 SQL 数据库的 AI 工具;它就是 Vanna AI。
它是一个开源工具,可以让您使用自然语言与 SQL 数据库聊天。
Vanna 的工作分为两个简单的步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,返回可设置为在您的数据库上自动运行的 SQL 查询。
开始使用 Vanna 非常简单。使用 安装pip。
pip install vanna
# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI + ChromaDB
from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore
class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
def __init__(self, config=None):
ChromaDB_VectorStore.__init__(self, config=config)
OpenAI_Chat.__init__(self, config=config)
vn = MyVanna(config={'api_key': 'sk-...', 'model': 'gpt-4-...'})
# See the documentation for other options
您可以使用自定义数据训练模型。
根据您的使用情况,您可能需要或不需要运行这些vn.train命令。
使用 DDL 语句进行训练。
vn.train(ddl="""
CREATE TABLE IF NOT EXISTS my-table (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
)
""")
提出问题
vn.ask("What are the top 10 customers by sales?")
您将获得 SQL 输出。
SELECT c.c_name as customer_name,
sum(l.l_extendedprice * (1 - l.l_discount)) as total_sales
FROM snowflake_sample_data.tpch_sf1.lineitem l join snowflake_sample_data.tpch_sf1.orders o
ON l.l_orderkey = o.o_orderkey join snowflake_sample_data.tpch_sf1.customer c
ON o.o_custkey = c.c_custkey
GROUP BY customer_name
ORDER BY total_sales desc limit 10;
请参阅 文档 以了解更多详细信息。
【智答专家】您身边免费的GPT4.0人工智能Ai助手,文本生成,问答,多语言支持, 个 性化建议,图片生成,代码纠正等等。
原文出处:dev.to/composiodev…