本地私有化capilot部署

本文最后更新于:几秒前

一直想在vscode用上capilot,但是又害怕连接各种服务器导致代码泄露。最近研究了一下本地部署,能够实现按tab键补全代码。期间尝试了多种方案,最后用的是ollama创建模型服务+vscode的Continue插件访问。

安装步骤

具体可以参考Continue插件的官方说明

  1. 安装ollama,会自动安装相关依赖

    1
    curl -fsSL https://ollama.com/install.sh | sh
  2. 在ollama官网挑选代码补全模型,与常规语言模型不同,官方推荐补全代码的模型最好用starcoder2和codestral。使用ollama pull下载相应模型,后续Continue插件访问时会自动调用。ollama run可以在终端建立一个对话,通过Continue插件使用时无需执行run。

  3. 下载编码模型nomic-embed-text,似乎是用于生成上下文相关的词向量,如果不使用补全效果会很差

  4. 配置Continue插件

​ 含义:

​ models 左侧对话框使用的模型

​ tabAutocompleteModel 编辑器中tab补全代码使用的模型

​ tabAutocompleteOptions 编辑器中tab补全代码选项

​ debounceDelay 处理延时,当光标停留此时间后才会开始补全

​ multilineCompletions 多行补全,如果感觉多行补全效果不好可以设置为always

​ useOtherFiles 是否使用其他文件,需要打开

修改ollama配置

参考官方说明,window就是在系统环境变量中新增变量名和值

OLLAMA_HOST:这个变量定义了Ollama监听的网络接口。通过设置OLLAMA_HOST=0.0.0.0,我们可以让Ollama监听所有可用的网络接口,从而允许外部网络访问。

OLLAMA_PORT:这个变量允许我们更改Ollama的默认端口。例如,设置OLLAMA_PORT=8080可以将服务端口从默认的11434更改为8080。

OLLAMA_ORIGINS:允许的跨域源列表,逗号分隔,设置 “*” 可以避免 CORS 跨域错误,按需设置

OLLAMA_MODELS:这个变量指定了模型镜像的存储路径。通过设置OLLAMA_MODELS=F:\OllamaCache,我们可以将模型镜像存储在E盘,避免C盘空间不足的问题。

OLLAMA_KEEP_ALIVE:这个变量控制模型在内存中的存活时间。设置OLLAMA_KEEP_ALIVE=24h可以让模型在内存中保持24小时,提高访问速度。

OLLAMA_NUM_PARALLEL:这个变量决定了Ollama可以同时处理的用户请求数量。设置OLLAMA_NUM_PARALLEL=4可以让Ollama同时处理两个并发请求。

OLLAMA_MAX_LOADED_MODELS:这个变量限制了Ollama可以同时加载的模型数量。设置OLLAMA_MAX_LOADED_MODELS=4可以确保系统资源得到合理分配


还可以使用curl请求保持模型常驻GPU内存,加快响应速度


最后就可以愉快地享受本地capilot助手啦