Plandex、Aider、twinny 程式碼助手?編程助手?

在程式碼開發與維護的過程中,大型語言模型(LLM,Large Language Model)可以有效地提升開發效率和程式碼質量。使用大型語言模型在程式碼開發與維護中,能夠顯著提升規格書撰寫、測試案例生成及程式碼註解的效率和質量。LLM透過自然語言處理技術,能夠自動解析需求、生成技術文檔、撰寫詳細註解,並自動化生成高質量的測試案例。

做AI三步驟:高層不玻璃心、GPU、數據。

https://huggingface.co/spaces/DeepLearning101/SPEC_PseudoCode_Playground

能不能幫我寫程式或者是寫規格書、測試案例等等這方面的應用,算是 AI、LLM 火了一波後,蠻常聽到的一個應用:程式碼助手?編程助手?特別是 Devin 正夯的那陣子,想必不少玻璃心高層可是躍躍欲試呢 ! 所以,順手幫人來弄個可能有用的項目:規格書撰寫、測試案例生成以及註解撰寫方面的 LLM 應用。

https://github.com/plandex-ai/plandex | https://plandex.ai/
https://github.com/paul-gauthier/aider | https://aider.chat/ | https://github.com/pluja/maestro

conda create -n plandex python=3.10
conda activate plandex

curl -sL https://plandex.ai/install.sh | bash
Plandex 1.1.1 Quick Install
Copyright (c) 2024 Plandex Inc.

Usage 
plandex [command] [flags]
pdx [command] [flags]
Help 
plandex help
plandex help --all # show all commands
plandex [command] --help
Use 'plandex help --all' or 'plandex help -a' for a list of all commands 

git clone https://github.com/plandex-ai/plandex.git
Cloning into 'plandex'...
Resolving deltas: 100% (5686/5686), done.
cd plandex/app/
./start_local.sh 

plandex new
Hey there!
It looks like this is your first time using Plandex on this computer.
What would you like to do? Sign in, accept an invite, or create an account
? Use Plandex Cloud or another host? Another host
Host: http://localhost:8080                            
Your name: TonTon

plandex-server-1    | 2024/07/30 02:44:17 Successfully created email verification

官方影片:https://player.vimeo.com/video/926634577
安裝其實很快 ! 記得要有裝 docker (docker compose 跟 screen 等會比較好用)


基本上安裝是非常簡單的,一些特別使用方法,可以多翻翻官方文件,不定時會再慢慢更新
但有個重點就是,雖然可以自己綁模型,但是 需要OPENAI_API_KEY環境變數,我是改不了啦 ~ 囧

2023/08 公司添購 RTX 6000 Ada 48 GB * 2 和 A 100 80GB * 4
2024/05 公司添購RTX 6000 Ada 48 GB * 8 * 2

https://github.com/paul-gauthier/aider | https://aider.chat/
接著換一下這個,體驗上感覺比前面的好多了 XD

Aider + DeepSeek + Claude 3.5 Sonnet:一次提示產生應用程式(使用Ollama)

pip install aider-chat
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama/deepseek-coder-v2:236b-instruct-q8_0 --browser
No git repo found, create one to track GPT's changes (recommended)? y
Model ollama/deepseek-coder-v2:236b-instruct-q8_0: Unknown context window size and costs, using sane defaults.
For more info, see: https://aider.chat/docs/llms/warnings.html

Aider v0.46.1
Model: ollama/deepseek-coder-v2:236b-instruct-q8_0 with whole edit format
Git repo: .git with 0 files
Repo-map: disabled
Use /help <question> for help, run "aider --help" to see cmd line args


規格書撰寫:LLM能夠解析用戶需求文檔,從中提取關鍵信息,生成結構化的需求規格。藉由自然語言處理技術,LLM能夠將非結構化的用戶需求轉換為詳細且易於理解的技術規格。
技術文檔生成: 根據需求,LLM自動撰寫詳細的技術規格書,涵蓋系統架構、模組設計、接口定義等內容。透過LLM生成的技術文檔,可以確保規格書的一致性和完整性,減少人工撰寫的錯誤和遺漏。
自動生成測試案例:LLM能夠根據程式碼自動生成相應的測試案例,涵蓋單元測試、集成測試和端到端測試等不同層次。使用自然語言描述的需求和規格,LLM可以轉換為具體的測試步驟和預期結果。
測試案例優化:LLM可以分析現有的測試案例,識別冗餘或不足的部分,提出優化建議。 通過學習歷史測試數據,LLM能夠生成更具覆蓋率和效率的測試案例,提升測試質量。
自動註解生成:LLM能夠根據程式碼的結構和邏輯,自動生成詳細的註解,涵蓋方法功能、參數說明和返回值等。自動生成的註解可以幫助開發者快速理解程式碼,提升維護性和可讀性。
註解優化:LLM可以分析現有的註解,檢查其正確性和完整性,並提供優化建議。通過學習最佳實踐和編碼風格,LLM能夠生成一致且符合標準的註解。
整體來說,跟直接用LLM來寫,就是差在它會幫你 git ~ 
所以,就會想要直接用 vscode 接到 LLM 不就搞定了 ??
安裝設定其實還是非常簡單的
剩下的就加減玩看看,畢竟你還是可以想辦法把它做成 workflow 或者 agentic 的