1. 搭建本地的 AI Copilot 编程助手


文档摘要

搭建本地的 AI Copilot 编程助手 简介 本文档介绍了如何在本地搭建类似 Copilot 的编程助手,以帮助您写出更加优美,效率的代码。 从过本课程你将学会,使用 Ollama 集成本地编程助手,其中包括 Continue Aider 注意: 我们讲主要讲解 VScode 的安装和基本使用方式。jetbrain 使用方式和 VScode 大同小异,参考 vscode 即可。 jetbrain 可以使用的功能和可配置项不如 VScode 丰富,建议使用 VScode 本地搭建 Copilot 对机器要求较高,特别是代码自动补全部分,若无特殊需求,建议购买 API 使用。 一、AI 编程介绍 1.1 为什么我们要使用 AI 编程?

搭建本地的 AI Copilot 编程助手

简介

本文档介绍了如何在本地搭建类似 Copilot 的编程助手,以帮助您写出更加优美,效率的代码。

从过本课程你将学会,使用 Ollama 集成本地编程助手,其中包括

  • Continue
  • Aider

注意:

  1. 我们讲主要讲解 VScode 的安装和基本使用方式。jetbrain 使用方式和 VScode 大同小异,参考 vscode 即可。
  2. jetbrain 可以使用的功能和可配置项不如 VScode 丰富,建议使用 VScode
  3. 本地搭建 Copilot 对机器要求较高,特别是代码自动补全部分,若无特殊需求,建议购买 API 使用。

一、AI 编程介绍

1.1 为什么我们要使用 AI 编程?

大语言模型问世已久,但是其表现最出色的领域一直是编程领域,原因如下:

  1. 明确的对错标准。 在编程世界里, 代码要么能跑, 要么不能。这种非黑即白的特性让 AI 更容易判断自己的输出质量。
  2. 精确的语言。 编程语言没有太多模棱两可的地方。每个符号、每个关键字都有明确的含义。这种精确性正是 AI 模型所擅长的。
  3. 目标明确的任务。 写代码时, 我们通常有明确的目标。比如, "写一个计算斐波那契数列的函数"。这种清晰的指令让 AI 更容易集中精力解决问题。
  4. 知识的通用性。 学会了一种编程语言的基本概念, 很多东西都能迁移到其他语言。这种知识的可迁移性让 AI 模型在编程领域学习效率特别高。

1.2 我们如何使用 AI 编程?

  1. 使用大模型对话应用(这里不再讲解)
  2. 使用集成开发环境(IDE)
    • Continue
  3. 使用命令行工具
    • Aider

二、集成开发环境 Continue 接入

2.1 安装所需模型

  1. 安装 Ollama
  2. 安装以下模型
    • 安装通用问答模型 ollama pull llama3:8b
    • 安装自动代码补全模型: ollama pull starcoder2:3b
    • 安装 embedding 模型: ollama pull nomic-embed-textO

2.2 在 VScode 安装 Continue 以及配置本地 Ollama

  1. 在 VScode 插件库安装模型

    搜索 Continue ,看到如下的图标,点击 install 或者安装

    image-20240819182555379

  2. (推荐操作)强烈建议将"继续"移至 VS Code 的右侧边栏。这有助于在使用"继续"时保持文件资源管理器打开,并且可以使用简单的键盘快捷键切换侧边栏。

    move-to-right-sidebar

  3. 配置 Ollama

    方式1:点击 Select model----选择 Add model----点击 Ollama----选择 Autodetect

    这样,就可以自动选择刚刚我们在 Ollama 上下载好的模型进行代码推理工具了。

    image-20240820155729323

    1724140799734

    方式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" } }

    1724140913191

2.3 基本使用指南

  1. 轻松理解代码

  • VS Code : cmd+L ( MacOS ) / ctrl+L ( Windows )
  • JetBrains : cmd+J ( MacOS ) / ctrl+J ( Windows )
  1. 使用 Tab 键自动完成代码

20240821110151_rec_

  • VS Code : tab ( MacOS ) / tab ( Windows )
  • JetBrains : tab ( MacOS ) / tab ( Windows )
  1. AI快速修改你的代码

  • VS Code : cmd+I ( MacOS ) / ctrl+I ( Windows )
  • JetBrains : cmd+I ( MacOS ) / ctrl+I ( Windows )
  1. 根据当前代码目录提问

  • VS Code: @codebase ( MacOS ) / @codebase ( Windows )
  • JetBrains : 未来将支持
  1. 根据官方文档提问

  • VS Code : @docs ( MacOS ) / @docs ( Windows )
  • JetBrains : @docs ( MacOS ) / @docs ( Windows )

2.4 参考资料

官方网站:https://docs.continue.dev/intro

三、命令行环境 Aider 接入

Aider 是基于命令行的编程助手,比起集成开发环境,它拥有顶级的系统权限和功能使用,但同时意味着它更难上手。

以下教程将教会你安装 Aider 以及连接到 Ollama 服务

此外,请确保:

  1. 安装了 git 并且有 git 使用经验
  2. python 使用经验

3.1 安装 Aider

  1. 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

3.2 设置 Ollama 并启动

  1. 启动命令行,按照如下设置环境变量

    export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux环境 setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows环境,设置以后重启shell工具
  2. cd 进入自己本地的代码仓库位置,若没有,Aider 会自动在当前目录下初始化 git 仓库

    #example cd D:\Myfile\handy-ollama\handy-ollama\handy-ollama
  3. 使用以下命令运行 Aider

    aider --model ollama/<你的模型名字> #example #aider --model ollama/llama3:8b

    你也可以使用 .env 文件配置 Aider 相关信息

    比如

    ## 指定OPENAI_KEY(如果有的话) OPENAI_API_KEY=xxx ## 指定你使用model AIDER_MODEL=ollama/llama3:8b

    更多配置参考:https://aider.chat/docs/config/dotenv.html

  4. 进入以下页面即成功

    image-20240820123914217

  5. 你现在可以跟他聊天,或者给他发送一些指令,它可以直接修改你的代码

    image-20240820125404804

3.3 基本使用

  1. 你可以问它一些关于这个仓库的基本信息

    image-20240820125715218

  2. Add Files 添加文件

    /add <file1> <file2> ...

    然后你就可以根据这些文件来做一些提问

    • 你可以在不添加任何文件的情况下使用 Aider,它会根据您的请求尝试找出需要编辑哪些文件。(但是想过往往不好)
    • 添加相关的文件以对某个特定的代码或者文件进行修改或者答疑。(不要添加一堆额外的文件。如果添加太多文件,生成效果也不好,并且需要花费更多 Token )。

    示例:

    image-20240820130419082

    image-20240820130448133

    image-20240820130508193

  3. 使用 Aider 直接对代码文件或者其他文件进行修改,比如对 Readme最后一行加一个总结

    image-20240821140244324

    查看实际文件

    image-20240821140411829

  4. 如果不希望 Aider 对文件进行实际操作,可以在对话前添加操作符 /ask

  5. 使用 /drop 删除所有添加入的文件

3.4 参考资料

常用斜杠命令列表:

命令 描述
/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 并添加到聊天中

更多用法请参照 https://aider.chat/docs/usage.html


作者与出处
原作者: AXYZdong
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: AXYZdong 转发
评论区 (0)
U