正如我們所知,人工智慧正在改變世界,對於開發人員來說,擁抱它可以顯著提高生產力。它可以幫助您更快地發布新功能、為您編寫測試案例,甚至找到程式碼中的漏洞。
網路提供了許多工具,但找到合適的工具可能需要時間和精力。因此,我整理了一份 AI 工具列表,以幫助您成為更好的開發人員。
作為一名開發人員,我一直希望建立客製化的 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 Agent:您可以建立一個 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 作為預設工作區環境。有關更多訊息,請參閱文件。
https://dub.composio.dev/2UnlWAh 造訪網站並對 Product Hunt 表示支援⭐
如果您正在尋找結對程式設計師來幫助您更快地交付程式碼,那麼這是完美的選擇。
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
https://github.com/paul-gauthier/aider 為 Aider 儲存庫加註星標 ⭐
Mentat 是一款人工智慧工具,旨在幫助您從命令列處理任何編碼任務。
與 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 的更多訊息,請查看文件。
https://github.com/AbanteAI/mentat 為 Mentat 儲存庫加註星標 ⭐
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
查看他們的官方存儲庫以獲取更多資訊。
https://github.com/nus-apr/auto-code-rover 為 Auto Code Rover 儲存庫加註星標 ⭐
您一定聽過 Cursor IDE,這是一款受歡迎的人工智慧 IDE; Continue 與它類似,但在 Apache 許可下開源。
它是高度可自訂的,允許您加入任何語言模型以進行自動完成或聊天。這可以極大地提高您的生產力。您可以將“Continue”新增至 VScode 和 JetBrains。
主要特點
聊天以理解和迭代側邊欄中的程式碼
自動完成以在您鍵入時接收內聯程式碼建議
編輯以修改程式碼而不離開當前文件
為日常用例建立快捷方式的操作
有關更多訊息,請查看文件。
Codium AI 的這款開源工具可自動執行 GitHub 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 合併的更多資訊。
{%cta https://github.com/nus-apr/auto-code-rover為 Qodo Merge 儲存庫加註星標 ⭐{%endcta
OpenHands 是領先的人工智慧代理開源平台之一,也是 Devin 的直接競爭對手。 OpenHands 代理程式可以建置新的新建專案、為現有程式碼庫新增功能、偵錯問題等等。
最近,他們的經紀人也以 53% 的支持率位居 SWE 替補排行榜榜首。
要開始使用 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
按鈕來變更這些設定。
如果您的型號未列出,請切換高級模式並手動輸入。
它們提供了四種使用代理的方法:互動式 GUI、命令列介面 (CLI) 以及透過無頭模式和 GitHub Actions 進行非互動式使用的選項。每個都有其優點。有關更多訊息,請參閱文件。
https://github.com/All-Hands-AI/OpenHands 為 OpenHands 儲存庫加註星標 ⭐
Cody 是 Sourcegraph 的一個開源專案,旨在直接在 IDE 中增強您的編碼工作流程 - 無論是 VS Code、JetBrains 還是其他。 Cody 利用進階搜尋作為編碼助手,從本機和遠端程式碼庫中提取上下文。這樣可以直接從 IDE 無縫存取有關任何規模的 API、符號和使用模式的詳細資訊。
透過 Cody,您可以與程式碼庫聊天、進行內嵌編輯、獲取程式碼建議並享受自動完成等功能,所有這些都是為幫助您更快、更有效地編碼而量身定制的。
您只需將其安裝在 IDE 上即可開始使用。有關更多訊息,請查看文件。
https://github.com/sourcegraph/cody 為 Cody 儲存庫加註星標 ⭐
我害怕編寫 SQL 查詢,但同時,它是現代軟體開發中最關鍵的技術之一。幾乎所有公司都嚴重依賴 SQL 與關聯式資料庫互動。但正如他們所說,總有一個適用於它和 SQL 資料庫的人工智慧工具;這是萬娜人工智慧。
它是一個開源工具,可讓您使用自然語言與 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;
請參閱文件以了解更多詳細資訊。
https://github.com/vanna-ai/vanna 為 Vanna 儲存庫加註星標 ⭐
感謝您的閱讀。如果您使用任何其他對您有幫助的人工智慧工具,請在下面發表評論。
原文出處:https://dev.to/composiodev/9-open-source-ai-coding-tools-that-every-developer-should-know-28l4