在本教程中,我们将学习如何利用AI模型天生代码。
我们将安装 llama.cpp 和 Ollama,供应 CodeLlama 和 Deepseek Coder 模型,并通过扩展(Continue、Twinny、Cody Ai 和 CodeGPT)在 IDE(VS Code / VS Codium、IntelliJ)中利用它们。

把稳:我利用的是 AMD 5600G APU,但你在此处看到的大部分内容也适用于独立 GPU。
每当某些东西是 APU 特定的,我都会将其标记为特定。
我利用带有 ROCm 的容器,但 Nvidia CUDA 用户也该当会创造本指南很有帮助。

NSDT工具推举: Three.js AI纹理开拓包 - YOLO合成数据天生器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开拓包 - 3D模型在线减面 - STL模型在线切割

1、代码天生模型

广义上讲,选择模型时,我们必须考虑其类型、大小和量化 2:

代码完成AI插件安装VS Code u0026 IntelliJ

指令类型模型旨在回答谈天窗口中提出的问题基本类型模型用于自动完成代码,它们建议后续代码行模型大小是 LLM 中的参数数量,例如 70 亿,尺寸越大意味着须要的内存越多,模型越慢量化从 2、3、4、5、6 到 8 位,位数越大意味着须要的内存越多,模型越慢

代码完成模型在后台运行,因此我们希望它们非常快。
我利用小型 deepseek-coder-1.3b-base-GGUF 4 来完成这项任务。
谈天模型更具按需性,因此它们可以和 VRAM 一样大,例如CodeLlama-7B-Instruct-GGUF 2.

2、访问容器中的做事

默认情形下,llama.cpp 和 Ollama 做事器监听本地主机 IP 127.0.0.1。
由于我们想从外部连接到它们,因此在本教程的所有示例中,我们将该 IP 变动为 0.0.0.0。
通过此设置,我们有两个选项可以连接到容器内的 llama.cpp 和 Ollama 做事器。

我们可以利用容器的 IP 访问做事器。
这很大略,适用于主机和同一主机上的其他容器。
我们可以利用 incus list 命令获取容器的 IP。

但是,如果我们想将这些做事器公开给我们网络上的其他打算机,我们可以利用代理网络设备。
对付每个做事的模型,例如一个 instruct 和一个 base,须要一个具有不同端口的代理设备。
监听地址可以是你的机器的 IP,你可以利用 hostname -I | awk '{print $1}' 命令获取。
相应地变动 X.X.X.X,端口取决于你利用的是 llama.cpp 还是 Ollama:

incus config device add <container_name> localhost8080 proxy listen=tcp:X.X.X.X:8080 connect=tcp:0.0.0.0:8080incus config device add <container_name> localhost8081 proxy listen=tcp:X.X.X.X:8081 connect=tcp:0.0.0.0:8081

此选项有一个缺陷。
当我们断开主机与路由器的连接(拔掉以太网电缆、切换到翱翔模式等)时,该主机上带有代理设备的容器将无法启动并会产生缺点:

Error: Error occurred when starting proxy device: Error: Failed to listen on 192.168.1.185:8080: listen tcp 192.168.1.185:8080: bind: cannot assign requested addressTry `incus info --show-log test` for more info$ incus info --show-log testName: testStatus: STOPPEDType: containerArchitecture: x86_64Created: 2024/04/14 18:46 CESTLast Used: 2024/04/14 18:49 CESTLog:lxc test 20240414164901.173 WARN idmap_utils - ../src/lxc/idmap_utils.c:lxc_map_ids:165 - newuidmap binary is missinglxc test 20240414164901.173 WARN idmap_utils - ../src/lxc/idmap_utils.c:lxc_map_ids:171 - newgidmap binary is missinglxc test 20240414164901.174 WARN idmap_utils - ../src/lxc/idmap_utils.c:lxc_map_ids:165 - newuidmap binary is missinglxc test 20240414164901.174 WARN idmap_utils - ../src/lxc/idmap_utils.c:lxc_map_ids:171 - newgidmap binary is missing

如果你只想在主机上利用 llama.cpp 和 Ollama,只需利用容器的 IP 地址访问它们并跳过代理设备即可。

3、llama.cpp

对付 llama.cpp,我们须要一个安装了 ROCm 的容器(不须要 PyTorch)。
干系教程在这里。
它的大小约为 30 GB,以是不要感到惊异。
如果你打算在同一个容器中运行 IDE,请在创建它时利用 GUI 配置文件 。

让我们利用默认的 ubuntu 用户登录容器:

incus exec <container_name> -- sudo --login --user ubuntu

获取 llama.cpp 源代码很大略,我们可以利用带有最新版本标签的 git clone 命令:

sudo apt install git ccache makegit clone --depth 1 --branch b2953 https://github.com/ggerganov/llama.cpp

llama.cpp 支持 UMA,有关更多信息,请参阅之前链接的 ROCm 教程,因此我将利用必要的标志对其进行编译(构建标志取决于您的系统,因此请访问官方网站理解更多信息)。
对付我的 AMD 5600G APU,我利用:

LLAMA_HIPBLAS=1,它在支持 HIP 的 AMD GPU 上供应 BLAS 加速LLAMA_HIP_UMA=1 是 APU 专用的,如果您有常规 GPU 或在 UEFI/BIOS 中为 APU 分配了固天命量的 VRAM,请跳过它AMDGPU_TARGETS=gfx900 取决于您的 GPU 架构,有关更多信息,请参阅之前链接的 ROCm 教程

有了所有这些,我的编译命令如下所示:

cd llama.cppmake LLAMA_HIPBLAS=1 LLAMA_HIP_UMA=1 AMDGPU_TARGETS=gfx900

利用 llama.cpp 时,我们必须手动下载模型。
找到它们的最佳地点是 huggingface.co。
例如:

你可以从 TheBloke 帐户中搜索所有 GUFF 模型或所有用户提交的 starcoder2 指令模型

让我们将 deepseek-coder-1.3b-base-GGUF 和 CodeLlama-7B-Instruct-GGUF 下载到 ~/llama.cpp/models/ 文件夹中:

wget https://huggingface.co/TheBloke/deepseek-coder-1.3b-base-GGUF/resolve/main/deepseek-coder-1.3b-base.Q6_K.gguf -P ~/llama.cpp/models/wget https://huggingface.co/TheBloke/CodeLlama-7B-Instruct-GGUF/resolve/main/codellama-7b-instruct.Q6_K.gguf -P ~/llama.cpp/models/

你还可以利用 Ollama 下载模型并将其复制到 llama.cpp。
请参阅 ollama库列表 。
我们将在 Ollama 部分谈论此选项。

现在我们可以供应这些模型了。
我想同时为它们供应做事,因此在两个单独的终端窗口中我利用命令:

~/llama.cpp/./server -c 4096 -ngl 999 --host 0.0.0.0 -m ~/llama.cpp/models/codellama-7b-instruct.Q6_K.gguf~/llama.cpp/./server -c 4096 -ngl 999 --host 0.0.0.0 --port 8081 -m ~/llama.cpp/models/deepseek-coder-1.3b-base.Q6_K.gguf

个中:

-c N 是提示高下文的大小(默认值:512)-ngl N 是要存储在 VRAM 中的层数(增加直到您险些利用了所有 VRAM,或者利用值 999 考试测验将所有层移动到内存中)--host IP 是要监听的 IP 地址(默认值:127.0.0.1)--port PORT 是要监听的端口(默认值:8080)-m 是模型路径运行 ~/llama.cpp/./server --help 获取更多选项

现在可以利用容器 IP 地址或代理设备的 IP 地址(如果您利用了代理设备)访问模型:

http://X.X.X.X:8080http://X.X.X.X:80814、Ollama

把稳:在 APU 上运行的开箱即用的 Ollama 须要在 UEFI/BIOS 中为 GPU 分配固天命量的 VRAM(有关详细信息,请参阅之前链接的 ROCm 教程)。
但我们可以通过仅变动两行代码来编译它,从而启用 UMA 支持。
请参阅下面的编译 Ollama 部分。
普通 GPU 的用户不必担心这一点。

我们须要一个安装了 ROCm 的容器(不须要 PyTorch),就像 llama.cpp 的情形一样。
如果您打算在同一个容器中运行 IDE,请在创建它时利用 GUI 配置文件。

安装 Ollama 时,脚本将考试测验下载其自己的 ROCm 版本,因此我们有 4 个选项:

容器内已经有 ROCm 6.0+,则脚本将跳过此步骤容器内已经有 ROCm 5.7,则脚本将安装其自己的 ROCm,并且运行正常,Ollama 将利用版本 5.7我们有一个没有 ROCm 的容器,则脚本将安装其自己的 ROCm,但这不起浸染不要利用脚本并手动安装 Ollama

对付我的 5600G APU,我利用最新的 ROCm 6.1。

让我们利用默认的 ubuntu 用户登录容器:

incus exec <container_name> -- sudo --login --user ubuntu

不才载并运行安装脚本之前,我们须要安装一些所需的软件包:

sudo apt install curl nanocurl -fsSL https://ollama.com/install.sh | sh

脚本完成后,默认的 ubuntu 用户将添加到 ollama 组,并启动新的 ollama 做事。
此做事仅运行命令 ollama serve,但作为用户 ollama,因此我们须要设置一些环境变量。
对付我的 APU,我须要:

HSA_OVERRIDE_GFX_VERSION=9.0.0 和 HSA_ENABLE_SDMA=0(用于 ROCm),如之前链接的教程中所述OLLAMA_HOST=0.0.0.0:11434 将 Ollama 利用的 IP 地址变动为 0.0.0.0OLLAMA_MAX_LOADED_MODELS=2 同时为两个模型供应做事,根据须要调度此值

我们须要利用命令将它们添加到做事中:

sudo systemctl edit ollama

在空缺处添加以下几行:

[Service]Environment="HSA_OVERRIDE_GFX_VERSION=9.0.0"Environment="HSA_ENABLE_SDMA=0"Environment="OLLAMA_HOST=0.0.0.0:11434"Environment="OLLAMA_MAX_LOADED_MODELS=2"

重新加载守护进程,然后重新启动容器并再次登录:

sudo systemctl daemon-reload

现在我们可以利用命令访问 Ollama:

ollama --helpollama list

利用默认 ollama 做事下载的模型将存储在 /usr/share/ollama/.ollama/models/.

所有可用模型均列在ollama库列表。
选择所需模型后,单击它,然后在其页面上,从标有“最新”的下拉菜单中选择末了一个选项“查看所有标签”以查看所有变体。
事实上,最新意味着最受欢迎,因此请查找具有相同哈希值的模型以解密其背后的内容。
下拉菜单右侧有一个框,个中包含运行所选模型变体的命令,但我们不会利用它。

让我们下载与 llama.cpp 相同的模型,但更方便:

ollama pull codellama:7b-instruct-q6_Kollama pull deepseek-coder:1.3b-base-q6_K

现在可以利用容器 IP 地址或代理设备的 IP 地址(如果利用过)访问这两种模型:

http://X.X.X.X:11434

请把稳,在利用命令 ollama serve 启动 Ollama 时,我们没有指定模型名称,就像利用 llama.cpp 时必须指定的那样。
客户端将向做事器讯问他们须要的特定模型。

5、编译 Ollama(可选,仅适用于 APU)

编译 Ollama 须要比 Ubuntu 22.04 中可用的版本更新的 cmake 和 go 版本:

cmake 版本 3.24 或更高版本go 版本 1.22 或更高版本gcc 版本 11.4.0 或更高版本适用于 AMD ROCm 的 libclblast

让我们在我们的 ROCm 容器中安装来自官方来源的最新软件包:

sudo apt install nano git ccache libclblast-dev makewget https://go.dev/dl/go1.22.3.linux-amd64.tar.gztar -xzf go1.22.3.linux-amd64.tar.gzwget https://github.com/Kitware/CMake/releases/download/v3.29.3/cmake-3.29.3-linux-x86_64.tar.gztar -xzf cmake-3.29.3-linux-x86_64.tar.gz

我们须要将解压的目录添加到 PATH。
利用 nano .profile 打开 .profile 文件并在末端添加以下行:

export PATH=$PATH:/home/ubuntu/go/bin:/home/ubuntu/cmake-3.29.3-linux-x86_64/bin

利用 source ~/.profile命令确保环境变量已设置。

获取 Ollama 源代码很大略,我们可以利用带有最新版本标签的 git clone 命令:

git clone --depth 1 --branch v0.1.38 https://github.com/ollama/ollama

Ollama 在底层利用 llama.cpp,因此我们须要通报一些编译时所需的环境变量。
有一个未记录的 OLLAMA_CUSTOM_ROCM_DEFS 环境变量,我们可以在个中设置 CMAKE_DEFS(请把稳,这些参数与我在编译 llama.cpp 时利用的参数相同,但在你的情形下可能会有所不同,因此请查看前面的 llama.cpp 部分以获取更多信息):

echo 'export OLLAMA_CUSTOM_ROCM_DEFS="-DLLAMA_HIP_UMA=on -DHSA_ENABLE_SDMA=off -DAMDGPU_TARGETS=gfx900 -DHSA_OVERRIDE_GFX_VERSION=9.0.0"' >> .profilesource .profile

我们必须变动的第二件事是在 ollama/gpu/amd_linux.go 文件中。
找到以 if totalMemory < IGPUMemLimit {开头的行。
在它之前添加 totalMemory = 24 format.GibiByte,个中值 24 是 Ollama 可以为模型利用多少 VRAM。
我不会超出 your_RAM_in_GB - 8。
此代码应如下所示:

totalMemory = 24 format.GibiByteif totalMemory < IGPUMemLimit {slog.Info...

现在 Ollama 认为我的 iGPU 已分配 24 GB 的 VRAM,并且不会抱怨。
Ollama 运行并加载模型时将利用最多 24 GB,但当我们停滞容器时,我们的 RAM 将再次开释。

编译很大略,大约须要 10 分钟:

cd ollamago generate ./...go build .

现在可以利用以下命令运行 Ollama:

~/ollama/./ollama serve

设置 systemd 做事很大略(粘贴此多行命令,根据须要变动环境变量):

sudo tee /etc/systemd/system/ollama.service > /dev/null <<EOF[Unit]Description=Ollama ServiceAfter=network-online.targetRequires=multi-user.target[Service]ExecStart=/home/ubuntu/ollama/ollama serveUser=ubuntuGroup=ubuntuRestart=alwaysRestartSec=3Environment="HSA_OVERRIDE_GFX_VERSION=9.0.0"Environment="HSA_ENABLE_SDMA=0"Environment="OLLAMA_HOST=0.0.0.0:11434"Environment="OLLAMA_MAX_LOADED_MODELS=2"Environment="PATH=$(printenv PATH)"[Install]WantedBy=default.targetEOF

重新加载守护进程并启用做事,然后重新启动容器:

sudo systemctl daemon-reloadsudo systemctl enable ollama

检讨统统是否正常:

systemctl status ollama6、Ollama 模型的其他用场

利用 Ollama 下载的模型采取常日的 GUFF 格式,可以在其他地方利用。
但它们的文件名由 sha256 哈希组成。
为了得到人性化的名称,我们可以利用基于 Matt Williams 作品的脚本。
只需运行此脚本,你将看到真实的模型名称,然后可以复制文件并相应地重命名它们。
脚本须要 jq 包,你可以利用 sudo apt install jq 命令安装它。

#!/bin/bash# Based on Matt Williams' script https://github.com/technovangelist/matts-shell-scripts/blob/main/syncmodels# Prints human-readable Ollama model names# Requires `jq` package# sudo apt install jqbase_dir_1=/usr/share/ollama/.ollama/modelsbase_dir_2=~/.ollama/models# Use find to get all files under the 'model' directoriesfunction print_models() { manifest_dir=${base_dir}/manifests/registry.ollama.ai blob_dir=${base_dir}/blobs find "${manifest_dir}" -mindepth 3 -maxdepth 3 -type f | while IFS= read -r file; do model=$( basename "$( dirname "${file}" )" ) tag=$( basename "${file}" ) digest=$( jq -r '.layers[] | select(.mediaType == "application/vnd.ollama.image.model") | .digest' "${file}" ) # Print model paths and human-readable names echo "${blob_dir}/${digest/:/-}" echo "${model}:${tag}" done}[[ -d ${base_dir_1} ]] && base_dir="${base_dir_1}" && print_models[[ -d ${base_dir_2} ]] && base_dir="${base_dir_2}" && print_models7、VS Code / VS Codium

为了让 VS Code / VS Codium 在容器中运行,我们须要利用 GUI 配置文件创建容器后,利用默认的 ubuntu 用户登录:

incus exec <container_name> -- sudo --login --user ubuntu

对付 VS Code / VS Codium,我们须要安装一些必需的软件包:

如果我们想利用 IDE 的 snap 版本,则须要安装 snapd对付短缺的字体,则须要安装 fonts-noto在IDE 窗口中获取与桌面相同的鼠标光标主题,则须要安装 yaru-theme-icon

sudo apt install snapd fonts-noto yaru-theme-iconsudo snap install code --classic# sudo snap install codium --classic

Incus 容器中的 Snap 须要一种办理方法,否则重启后我们会看到缺点:

snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacksPlease make sure that the snapd.apparmor service is enabled and started.

办理方案来自@stgraber的 帖子:

sudo sed -i "s/lxd/incus/g" /lib/apparmor/rc.apparmor.functionssudo mkdir -p /etc/systemd/system/snapd.apparmor.service.d/

末了,运行此多行代码片段,创建 override.conf 文件并向个中添加两行:

sudo tee /etc/systemd/system/snapd.apparmor.service.d/override.conf > /dev/null <<EOF[Service]ExecStartPre=/usr/bin/mkdir -p /run/WSLEOF7.1 扩展

VS Code/VS Codium 的 Continue 和 Twinny 扩展利用右侧边栏。
单击“视图”→“外不雅观”→“赞助侧边栏”以将其打开,或按 Alt+Ctrl+B。
如果侧边栏无法精确呈现(如果您利用其他扩展,则可能会发生这种情形),只需将其关闭并重新打开即可。

可以通过单击扩展名称阁下的齿轮图标并选择启用/禁用来启用/禁用扩展。

7.2 Continue

第一个可以与 llama.cpp 和 Ollama 做事器交互的 VS Code / VS Codium 扩展是 Continue(VS Code 市场 ,VS Codium 市场)。
它有一个谈天窗口和代码自动完成功能。

我们可以在 IDE 左侧的扩展选项卡中搜索 Continue(Ctrl+Shift+X)来安装它。
安装后,你 将看到 Continue 徽标涌如今左侧栏中。
强烈建议将此徽标移至 VS Code 的右侧栏。

单击扩展选项卡中 Continue 阁下的齿轮图标并选择扩展设置时,有更多选项可用。
这些都是完备可选的,我没有在那里变动任何内容。
如果你决定利用代码自动完成,你可以在那里或在侧栏底部切换该功能。

我们可以通过两种办法添加模型供应程序。
一种是利用侧边栏底部活动供应程序名称阁下的加号图标。
这值得探索,由于您可以在那里设置一些高等(可选)选项。

我利用另一种方法,即单击加号图标阁下的齿轮图标。
这将打开 config.json 文件。
这些是我对 llama.cpp 和 Ollama 谈天模型的设置(我删除了默认供应程序,X.X.X.X 是容器的 IP 地址,还要把稳逗号,在一些行和括号之后,模型名称仅对 Ollama 很主要,完成后按 Ctrl+S 保存):

"models": [ { "title": "CodeLlama 7B", "provider": "llama.cpp", "model": "CodeLlama-7B-Instruct-GGUF", "apiBase": "http://X.X.X.X:8080" }, { "title": "ollama CodeLlama 7B", "provider": "ollama", "model": "codellama:7b-instruct-q6_K", "apiBase": "http://X.X.X.X:11434" } ],

添加供应商后,在侧边栏底部,我们该当可以看到活动的供应商,我们可以通过单击其名称在它们之间切换。

代码自动完成模型(一次只能一个)可以在同一个 config.json 文件中的底部,就在“allowAnonymousTelemetry”行之前设置:true。
对付 llama.cpp:

"tabAutocompleteModel": { "title": "Deepseek Coder 1.3B", "provider": "llama.cpp", "model": "deepseek-coder:1.3b-base-q6_K", "apiBase": "http://X.X.X.X:8081" },

或者对付 Ollama:

"tabAutocompleteModel": { "title": "Deepseek Coder 1.3B", "provider": "ollama", "model": "deepseek-coder:1.3b-base-q6_K", "apiBase": "http://X.X.X.X:11434" },

要理解有关 Continue 及其浩瀚功能的更多信息,请查看其主页和 YouTube。

7.3 Twinny

第二个可以与 llama.cpp 和 Ollama 做事器交互的 VS Code / VS Codium 扩展是 Twinny (VS Code 市场、VS Codium 市场)。
它有一个谈天窗口和代码自动完成功能。

我们可以在 IDE 左侧的扩展选项卡中搜索 Twinny 来安装它(Ctrl+Shift+X)。
现在按 Alt+Ctrl+B 打开侧边栏并单击其顶部的插件图标,以便我们可以添加模型供应程序。
我正在为 llama.cpp 谈天模型利用这些设置:

标签:CodeLlama 7B(可以是任何内容)类型:谈天供应商:llamacpp协议:http模型名称:codellama:7b-instruct-q6_K(仅对 Ollama 主要)主机名:X.X.X.X(容器的 IP)端口:8080API 路径:/completionAPI 密钥:空

和基本模型:

标签:Deepseek Coder 1.3B(可以是任何内容)类型:FIMFim 模板:deepseek供应商:llamacpp协议:http模型名称:deepseek-coder:1.3b-base-q6_K(仅对 Ollama 主要)主机名:X.X.X.X(容器的 IP)端口:8081API 路径:/completionAPI 密钥:空

用于 Ollama 谈天模型:

标签:ollama CodeLlama 7B(可以是任何内容)类型:谈天供应商:ollama协议:http模型名称:codellama:7b-instruct-q6_K(仅对 Ollama 主要)主机名:X.X.X.X(容器的 IP)端口:11434API 路径:/v1/chat/completionsAPI 密钥:空

和基本模型:

标签:ollama Deepseek Coder 1.3B(可以是任何内容)类型:FIMFim 模板:deepseek供应商:ollama协议:http模型名称:deepseek-coder:1.3b-base-q6_K(仅对 Ollama 主要)主机名:X.X.X.X(容器的 IP)端口:11434API 路径:/api/generateAPI 密钥:空

现在单击侧边栏顶部插头图标阁下的箭头图标。
谈天输入字段上方有一个机器人头的图标。
单击它时,您将看到两个下拉菜单,用于选择刚刚配置的谈天和中间添补供应商。

单击扩展选项卡中 Twinny 阁下的齿轮图标并选择扩展设置时,有更多选项可用,但这些选项完备是可选的,我没有在那里变动任何内容。

要理解有关 Twinny 及其浩瀚功能的更多信息,请查看其主页和 YouTube。

7.4 Cody Ai

可以与 Ollama 做事器交互(但不是 llama.cpp)的第三个 VS Code / VS Codium 扩展是 Cody Ai (VS Code 市场,VS Codium 市场)。
它有一个谈天窗口和代码自动完成功能,但将 Ollama 设置为谈天供应商对我来说不起浸染。

Cody Ai 不屈常的事情:

这是最前辈的代码天生扩展。
只管扩展是开源的,但它须要利用 GitHub、GitLab 或 Google 帐户登录。
因此,每次启动 IDE 时都须要互联网访问对付代码自动完成,Cody Ai 可以利用两种类型的模型,即辅导和根本。

我们须要安装一些必要的软件包以使 Cody Ai 正常事情:

chromium 或任何其他浏览器gnome-keyring 用于存储登录凭据XDG_CURRENT_DESKTOP=ubuntu:GNOME 须要设置一个环境变量,表示容用具有桌面环境(不必是 ubuntu:GNOME,否则您会看到缺点“由于无法识别 OS 密钥环来存储当前桌面环境中的加密干系数据。

sudo snap install chromiumsudo apt install gnome-keyringecho "export XDG_CURRENT_DESKTOP=ubuntu:GNOME" >> .profile

sudo snap install chromiumsudo apt install gnome-keyringecho "export XDG_CURRENT_DESKTOP=ubuntu:GNOME" >> .profile

重新启动容器并首次运行 VS Code / VS Codium 后,系统将哀求我们输入密钥环的新密码。
从现在开始,每次启动 IDE 时,系统都会哀求您输入此密码。

现在我们可以通过在 IDE 左侧的扩展选项卡中搜索 Cody Ai 来安装它(Ctrl+Shift+X)。
安装后,您将看到 Cody Ai 徽标涌如今左侧栏上。
强烈建议将此徽标移至 VS Code 的右侧栏。

单击 Cody Ai 图标时,您将看到三个登录选项:利用您的 GitHub、GitLab 或 Google 帐户。
单击您喜好的方法,将涌现一个带有链接的弹出窗口。
利用弹出窗口下方的复制按钮,打开容器中安装的 Chromium,粘贴链接并登录。
单击授权并关闭浏览器。
您的凭据现在该当存储在您的密钥环中。
要检讨这一点,您可以重新启动 VS Code/VS Codium。

要添加供应程序,我们须要打开设置。
单击扩展选项卡中 Cody Ai 阁下的齿轮图标,然后选择扩展设置。
在底部附近,您会找到 Cody Autocoplete 高等供应程序(把稳它用于代码自动完成,而不是谈天)。
将其设置为experimental-ollama。
接下来在 IDE 中或利用任何其他编辑器打开 ~/.config/Code/User/settings.json 文件。
添加这些行并保存(X.X.X.X 是容器的 IP 地址):

"cody.autocomplete.experimental.ollamaOptions": { "url": "http://X.X.X.X:11434", "model": "deepseek-coder:1.3b-base-q6_K" }

为了实现更慢但更准确的推理,请将模型变动为 codellama:7b-instruct-q6_K,并将 url 变动为 http://X.X.X.X:11434。
编辑后,我的 settings.json 文件如下所示(某些行后面的逗号 , 很主要):

{ "workbench.colorTheme": "Solarized Dark", "editor.inlineSuggest.suppressSuggestions": true, "cody.autocomplete.advanced.provider": "experimental-ollama", "cody.autocomplete.experimental.ollamaOptions": { "url": "http://X.X.X.X:11434", "model": "deepseek-coder:1.3b-base-q6_K" }}

将 Ollama 设置为谈天供应商对我来说不起浸染。
你可以在官方 Cody Ai 博客上阅读更多干系信息,或在 YouTube 频道上不雅观看解释。

8、IntelliJ

为了让 IntelliJ 在容器中运行,我们须要利用 GUI 配置文件 创建容器后,利用默认 ubuntu 用户登录:

incus exec <container_name> -- sudo --login --user ubuntu

对付 IntelliJ,我们须要安装一些必需的软件包:

snapd 如果我们想利用 IDE 的 snap 版本default-jdk 某个版本的 java,例如默认版本yaru-theme-icon 和 libxcursor1 以便在 IDE 窗口中得到与桌面相同的鼠标光标主题

sudo apt install snapd default-jdk yaru-theme-icon libxcursor1sudo snap install intellij-idea-community --classic

incus 容器中的 Snap 须要 VS Code / VS Codium 部分中提到的办理方法。

8.1 插件

我们可以通过在内置插件市场中搜索插件来安装插件,您可以通过单击主窗口中的插件来访问它。
或者,如果您打开了一个项目,请单击左上角的汉堡菜单,然后单击文件 → 设置(或按 Ctrl+Alt+S)并从左侧列表中选择插件。

可以在汉堡菜单 → 文件 → 设置 → 工具(或按 Ctrl+Alt+S)中找到已安装插件的其他设置。

8.2 Continue

第一个可以与 llama.cpp 和 Ollama 做事器交互的 IntelliJ 扩展是 Continue。
是的,这个扩展是为两个 IDE(IntelliJ 市场 )开拓的。
它有一个谈天窗口和代码自动完成功能。

我们可以通过在插件部分提到的内置插件市场中搜索 Continue 来安装它。
安装后,只有当您打开项目时才能访问它,图标将显示在窗口的右侧。
但您会把稳到它的选项卡没有任何按钮。
这是由于 JCEF 嵌入式浏览器短缺一些依赖项。
我们可以在容器的终端中利用此命令查看短缺哪些库:

ldd /snap/intellij-idea-community/current/jbr/lib/libcef.so | grep "not found"

对我来说输出是:

libXdamage.so.1 => not foundlibgbm.so.1 => not foundlibxkbcommon.so.0 => not foundlibpango-1.0.so.0 => not foundlibcairo.so.2 => not found

安装短缺的库:

sudo apt install libxdamage1 libgbm1 libxkbcommon0 libpango-1.0-0 libcairo2

如果你仍旧没有在“连续”侧栏中看到谈天提示,请考试测验变动 IDE 的启动 Java 运行时:

打开汉堡菜单 → 帮助 → 查找操作(或按 Ctrl+Shift+A)输入选择 IDE 的启动 Java 运行时并从建议列表中选择它选择新建:并选择最新的 21 版本,例如 21.0.2b375.1 JerBrains Runtime JBR 和 JCEF(默认捆绑)单击确定并重新启动 IDE

重新启动 IntelliJ 后,统统都该当正常。
将供应程序添加到 Continue 看起来与在 VS Code/VS Codium 中完备相同,因此请返回该部分以获取更多信息。
可以在汉堡菜单 → 文件 → 设置 → 工具(或按 Ctrl+Alt+S)中找到其他设置,您可以在个中启用代码自动完成。

要理解有关 Continue 及其浩瀚功能的更多信息,请查看其主页和 YouTube。

8.3 CodeGPT

可以与 llama.cpp 做事器(但不是 Ollama)交互的第二个 IntelliJ 扩展是 CodeGPT (IntelliJ 市场)。
它有一个谈天窗口和代码自动完成功能,但不能单独配置它们。
这意味着你该当利用个中一个。
不过,CodeGPT 可以与 Continue 同时利用。

我们可以通过在插件部分中提到的内置插件市场中搜索来安装 CodeGPT,但首先我们须要安装一个必需的库:

sudo apt install libsecret-1-0

仅当你打开项目时才可以访问 CodeGPT,图标将显示在窗口右侧。
可以在汉堡菜单 → 文件 → 设置 → 工具 → CodeGPT(按 Ctrl+Alt+S)中找到设置,也可以通过单击窗口右下角的插件图标来访问它们。

我们可以在那里添加供应程序(拜会插件部分中的屏幕截图):

做事:LLaMA C/C++启用代码完成:否,除非您想要此功能而不是谈天利用远程做事器:是基本主机:http://X.X.X.X:8080,或 http://X.X.X.X:8081(如果您启用了代码完成),X.X.X.X 是容器的 IP 地址提示模板:Llama添补模板:DeepSeek Coder(如果您启用了代码完成)

必须在 CodeGPT 侧栏中谈天提示上方的切换菜单中选择此新供应程序。

要理解有关 CodeGPT 及其浩瀚功能的更多信息,请查看其主页和 YouTube。

8.4 Cody Ai

遗憾的是,IntelliJ 的 Cody Ai (IntelliJ 市场)不支持本地 Ollama 和 llama.cpp 做事器。
目前此功能仅适用于 VS Code/VS Codium 版本。

原文链接:代码完成AI插件安装 - BimAnt