Skip to content

Latest commit

 

History

History
285 lines (188 loc) · 10.1 KB

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

File metadata and controls

285 lines (188 loc) · 10.1 KB

搭建本地的 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