本文档介绍了如何在本地搭建类似 Copilot 的编程助手,以帮助您写出更加优美,效率的代码。
从过本课程你将学会,使用 Ollama 集成本地编程助手,其中包括
- Continue
- Aider
注意:
- 我们讲主要讲解 VScode 的安装和基本使用方式。jetbrain 使用方式和 VScode 大同小异,参考 vscode 即可。
- jetbrain 可以使用的功能和可配置项不如 VScode 丰富,建议使用 VScode
- 本地搭建 Copilot 对机器要求较高,特别是代码自动补全部分,若无特殊需求,建议购买 API 使用。
大语言模型问世已久,但是其表现最出色的领域一直是编程领域,原因如下:
- 明确的对错标准。 在编程世界里, 代码要么能跑, 要么不能。这种非黑即白的特性让 AI 更容易判断自己的输出质量。
- 精确的语言。 编程语言没有太多模棱两可的地方。每个符号、每个关键字都有明确的含义。这种精确性正是 AI 模型所擅长的。
- 目标明确的任务。 写代码时, 我们通常有明确的目标。比如, "写一个计算斐波那契数列的函数"。这种清晰的指令让 AI 更容易集中精力解决问题。
- 知识的通用性。 学会了一种编程语言的基本概念, 很多东西都能迁移到其他语言。这种知识的可迁移性让 AI 模型在编程领域学习效率特别高。
- 使用大模型对话应用(这里不再讲解)
- 使用集成开发环境(IDE)
- Continue
- 使用命令行工具
- Aider
- 安装 Ollama
- 安装以下模型
- 安装通用问答模型
ollama pull llama3:8b
- 安装自动代码补全模型:
ollama pull starcoder2:3b
- 安装 embedding 模型:
ollama pull nomic-embed-textO
- 安装通用问答模型
-
在 VScode 插件库安装模型
搜索 Continue ,看到如下的图标,点击 install 或者安装
-
(推荐操作)强烈建议将"继续"移至 VS Code 的右侧边栏。这有助于在使用"继续"时保持文件资源管理器打开,并且可以使用简单的键盘快捷键切换侧边栏。
-
配置 Ollama
方式1:点击 Select model----选择 Add model----点击 Ollama----选择 Autodetect
这样,就可以自动选择刚刚我们在 Ollama 上下载好的模型进行代码推理工具了。
方式2:点击如图所示的设置按钮,进入配置页面,粘贴如下配置
{ "models": [ { "title": "Ollama", "provider": "ollama", "model": "AUTODETECT" } ], "tabAutocompleteModel": { "title": "Starcoder 2 3b", "provider": "ollama", "model": "starcoder2:3b" }, "embeddingsProvider": { "provider": "ollama", "model": "nomic-embed-text" } }
- 轻松理解代码
- VS Code :
cmd+L
( MacOS ) /ctrl+L
( Windows ) - JetBrains :
cmd+J
( MacOS ) /ctrl+J
( Windows )
- 使用 Tab 键自动完成代码
- VS Code :
tab
( MacOS ) /tab
( Windows ) - JetBrains :
tab
( MacOS ) /tab
( Windows )
- AI快速修改你的代码
- VS Code :
cmd+I
( MacOS ) /ctrl+I
( Windows ) - JetBrains :
cmd+I
( MacOS ) /ctrl+I
( Windows )
- 根据当前代码目录提问
- VS Code:
@codebase
( MacOS ) /@codebase
( Windows ) - JetBrains : 未来将支持
- 根据官方文档提问
- VS Code :
@docs
( MacOS ) /@docs
( Windows ) - JetBrains :
@docs
( MacOS ) /@docs
( Windows )
官方网站:https://docs.continue.dev/intro
Aider 是基于命令行的编程助手,比起集成开发环境,它拥有顶级的系统权限和功能使用,但同时意味着它更难上手。
以下教程将教会你安装 Aider 以及连接到 Ollama 服务
此外,请确保:
- 安装了 git 并且有 git 使用经验
- python 使用经验
-
Aider 的使用过程中对 python 环境有大量依赖,建议使用 conda 新开一个环境或者使用 python 新建虚拟环境,以下使用 conda 演示
-
新起一个 conda 虚拟环境(python 虚拟环境同理)
conda create -n aider_env python=3.9
-
进入该虚拟环境
conda activate aider_env
-
按照以下命令安装
python -m pip install aider-chat
-
-
启动命令行,按照如下设置环境变量
export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux环境 setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows环境,设置以后重启shell工具
-
cd 进入自己本地的代码仓库位置,若没有,Aider 会自动在当前目录下初始化 git 仓库
#example cd D:\Myfile\handy-ollama\handy-ollama\handy-ollama
-
使用以下命令运行 Aider
aider --model ollama/<你的模型名字> #example #aider --model ollama/llama3:8b
你也可以使用 .env 文件配置 Aider 相关信息
比如
## 指定OPENAI_KEY(如果有的话) OPENAI_API_KEY=xxx ## 指定你使用model AIDER_MODEL=ollama/llama3:8b
-
进入以下页面即成功
-
你现在可以跟他聊天,或者给他发送一些指令,它可以直接修改你的代码
-
你可以问它一些关于这个仓库的基本信息
-
Add Files 添加文件
/add <file1> <file2> ...
然后你就可以根据这些文件来做一些提问
- 你可以在不添加任何文件的情况下使用 Aider,它会根据您的请求尝试找出需要编辑哪些文件。(但是想过往往不好)
- 添加相关的文件以对某个特定的代码或者文件进行修改或者答疑。(不要添加一堆额外的文件。如果添加太多文件,生成效果也不好,并且需要花费更多 Token )。
示例:
-
使用 Aider 直接对代码文件或者其他文件进行修改,比如对 Readme最后一行加一个总结
查看实际文件
-
如果不希望 Aider 对文件进行实际操作,可以在对话前添加操作符 /ask
-
使用 /drop 删除所有添加入的文件
常用斜杠命令列表:
命令 | 描述 |
---|---|
/add |
将文件添加到聊天中,以便 GPT 可以编辑或详细审查它们 |
/ask |
询问关于代码库的问题,而不编辑任何文件 |
/chat-mode |
切换到新的聊天模式 |
/clear |
清除聊天历史 |
/clipboard |
将剪贴板中的图像/文本添加到聊天中(可选择为图像提供名称) |
/code |
请求对代码进行更改 |
/commit |
提交在聊天外对仓库所做的编辑(提交信息可选) |
/diff |
显示自上次消息以来的更改差异 |
/drop |
从聊天会话中移除文件以释放上下文空间 |
/exit |
退出应用程序 |
/git |
运行 git 命令 |
/help |
询问关于 aider 的问题 |
/lint |
对提供的文件或聊天中的文件进行代码检查和修复(如果未提供文件) |
/ls |
列出所有已知文件,并指示哪些文件包含在聊天会话中 |
/map |
打印当前仓库信息 |
/map-refresh |
强制刷新仓库信息并打印出来 |
/model |
切换到新的语言模型 |
/models |
搜索可用模型列表 |
/quit |
退出应用程序 |
/read-only |
将文件添加到聊天中,仅供参考,不可编辑 |
/run |
运行 shell 命令,并可选择将输出添加到聊天中(别名:!) |
/test |
运行 shell 命令,并在非零退出代码时将输出添加到聊天中 |
/tokens |
报告当前聊天上下文使用的令牌数量 |
/undo |
如果最后一次 git 提交是由 aider 完成的,则撤销该提交 |
/voice |
录制并转录语音输入 |
/web |
抓取网页,转换为 markdown 并添加到聊天中 |