把 AI 编程助手搬进内网:从 Ollama 到 Continue 的完整部署实战
AI编程 私有化部署方案|附完整命令
在 AI 编程逐渐成为研发团队标配的今天,越来越多企业开始关注一个核心问题:能不能把 AI 编程助手部署在自己的服务器里?
答案是可以的。
相比直接使用云端 AI 编程工具,私有化部署有几个明显优势:
- 代码不出内网,降低源代码泄露风险;
- 数据可控,更适合金融、政企、制造、医疗等高合规行业;
- 可接入内部知识库,让 AI 理解公司项目、接口文档、规范和历史代码;
- 成本可控,适合团队长期高频使用;
- 模型可替换,可以根据预算和性能选择不同大模型。
本文将从实际落地角度,介绍一套相对通用的 AI 编程私有化部署方案,并附上完整命令,帮助你快速在本地服务器、内网服务器或 GPU 机器上搭建可用的 AI 编程环境。
一、整体方案架构
一个完整的 AI 编程私有化部署方案,通常包括以下几个部分:
开发者 IDE
│
├── VS Code / JetBrains 插件
│
▼
AI 编程助手插件
│
├── Continue
├── CodeGPT
└── 自研插件
│
▼
私有化大模型服务
│
├── Ollama
├── vLLM
├── llama.cpp
└── LocalAI
│
▼
代码大模型
│
├── DeepSeek-Coder
├── Qwen2.5-Coder
├── Code Llama
└── StarCoder2
│
▼
企业内部资源
│
├── Git 仓库
├── 接口文档
├── 数据库文档
├── 技术规范
└── 知识库
对于大多数团队来说,推荐优先选择以下组合:
Ollama + Qwen2.5-Coder / DeepSeek-Coder + Continue
原因很简单:
- 部署简单;
- 命令少;
- 对机器要求相对灵活;
- 能快速接入 VS Code;
- 适合中小团队先跑起来。
如果你有较强 GPU 资源,并且需要更高并发,可以选择:
vLLM + Qwen2.5-Coder / DeepSeek-Coder + OpenAI Compatible API
二、服务器配置建议
AI 编程模型对硬件有一定要求,尤其是显存。下面给出几种常见配置建议。
1. 入门测试环境
适合个人体验、功能验证、小规模测试。
CPU:8 核以上
内存:16GB 以上
显卡:可无 GPU
磁盘:100GB SSD
系统:Ubuntu 22.04 LTS
适合模型:
qwen2.5-coder:1.5b
qwen2.5-coder:3b
deepseek-coder:1.3b
这种配置可以运行小模型,但响应速度和代码能力有限。
2. 小团队使用环境
适合 3~10 人团队日常辅助编码。
CPU:16 核以上
内存:64GB 以上
显卡:NVIDIA RTX 4090 / A5000 / L40S
显存:24GB 以上
磁盘:500GB SSD
系统:Ubuntu 22.04 LTS
适合模型:
qwen2.5-coder:7b
deepseek-coder:6.7b
codegemma:7b
codellama:7b
3. 企业级部署环境
适合多人并发、代码知识库检索、统一 API 服务。
CPU:32 核以上
内存:128GB 以上
显卡:A100 / H100 / L40S 多卡
显存:48GB~80GB+
磁盘:1TB NVMe SSD
系统:Ubuntu 22.04 LTS
适合模型:
Qwen2.5-Coder-14B
Qwen2.5-Coder-32B
DeepSeek-Coder-V2
Code Llama 34B
StarCoder2-15B
三、方案一:使用 Ollama 快速部署 AI 编程模型
Ollama 是目前本地运行大模型最简单的工具之一。它可以帮助我们快速下载、管理和运行大模型,并提供本地 API 服务。
1. 更新系统
以下命令以 Ubuntu 22.04 为例。
sudo apt update
sudo apt upgrade -y
安装常用工具:
sudo apt install -y curl wget git vim net-tools htop unzip
2. 安装 NVIDIA 驱动
如果服务器有 NVIDIA GPU,需要先检查显卡。
lspci | grep -i nvidia
查看系统推荐驱动:
ubuntu-drivers devices
自动安装推荐驱动:
sudo ubuntu-drivers autoinstall
sudo reboot
重启后检查:
nvidia-smi
如果能看到 GPU 信息,说明驱动安装成功。
3. 安装 Ollama
执行官方安装命令:
curl -fsSL https://ollama.com/install.sh | sh
查看版本:
ollama --version
启动服务:
sudo systemctl start ollama
设置开机自启:
sudo systemctl enable ollama
查看服务状态:
sudo systemctl status ollama
默认情况下,Ollama 会监听本机地址:
127.0.0.1:11434
如果只是在本机使用,这样即可。如果需要局域网其他机器访问,需要修改监听地址。
4. 配置 Ollama 允许内网访问
编辑 systemd 配置:
sudo systemctl edit ollama
写入以下内容:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
保存后执行:
sudo systemctl daemon-reload
sudo systemctl restart ollama
检查端口:
sudo ss -lntp | grep 11434
如果防火墙开启,需要放行端口:
sudo ufw allow 11434/tcp
sudo ufw reload
测试接口:
curl http://127.0.0.1:11434/api/tags
如果在其他机器访问:
curl http://服务器IP:11434/api/tags
四、下载并运行代码大模型
1. 推荐模型一:Qwen2.5-Coder
Qwen2.5-Coder 是通义千问系列中的代码模型,在代码生成、解释、重构、补全方面表现较好,中文支持也不错。
拉取 7B 模型:
ollama pull qwen2.5-coder:7b
运行模型:
ollama run qwen2.5-coder:7b
测试问题:
请用 Python 写一个 FastAPI 登录接口,包含 JWT 生成和密码校验。
如果机器配置较低,可以使用小模型:
ollama pull qwen2.5-coder:3b
ollama run qwen2.5-coder:3b
如果显存充足,可以尝试更大模型:
ollama pull qwen2.5-coder:14b
ollama run qwen2.5-coder:14b
2. 推荐模型二:DeepSeek-Coder
DeepSeek-Coder 是非常适合编程场景的模型,尤其适合代码解释、生成、补全和错误排查。
拉取模型:
ollama pull deepseek-coder:6.7b
运行模型:
ollama run deepseek-coder:6.7b
测试:
帮我分析下面这段 Java 代码是否存在线程安全问题,并给出优化方案。
3. 查看已安装模型
ollama list
4. 删除不需要的模型
ollama rm qwen2.5-coder:3b
五、通过 API 调用私有化模型
Ollama 提供 HTTP API,方便 IDE 插件或内部系统调用。
1. 普通生成接口
curl http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder:7b",
"prompt": "用 Go 写一个 HTTP 中间件,打印请求耗时。",
"stream": false
}'
2. Chat 接口
curl http://127.0.0.1:11434/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder:7b",
"messages": [
{
"role": "system",
"content": "你是一个资深后端架构师,擅长 Java、Go、Python 和微服务架构。"
},
{
"role": "user",
"content": "请设计一个订单系统的数据库表结构。"
}
],
"stream": false
}'
3. OpenAI 兼容接口
新版 Ollama 支持 OpenAI Compatible API,便于接入各种插件和系统。
测试命令:
curl http://127.0.0.1:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder:7b",
"messages": [
{
"role": "user",
"content": "请用 TypeScript 写一个防抖函数 debounce。"
}
]
}'
接口地址:
http://服务器IP:11434/v1
六、接入 VS Code:使用 Continue 插件
Continue 是一个开源 AI 编程助手插件,支持 VS Code 和 JetBrains。它可以接入本地模型,也可以接入 OpenAI、Anthropic、Ollama 等服务。
1. 安装 Continue
在 VS Code 插件市场搜索:
Continue
安装后,打开配置文件。
也可以使用命令面板:
Ctrl + Shift + P
搜索:
Continue: Open Config
2. 配置 Continue 连接 Ollama
配置文件通常位于:
~/.continue/config.json
写入以下配置:
{
"models": [
{
"title": "Qwen2.5 Coder 7B",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"apiBase": "http://服务器IP:11434"
}
],
"tabAutocompleteModel": {
"title": "Qwen2.5 Coder 7B",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"apiBase": "http://服务器IP:11434"
},
"customCommands": [
{
"name": "explain",
"prompt": "请解释选中的代码,说明它的功能、关键逻辑和潜在问题。"
},
{
"name": "review",
"prompt": "请对选中的代码进行 Code Review,重点关注性能、安全性、可维护性和边界情况。"
},
{
"name": "test",
"prompt": "请为选中的代码生成单元测试,要求覆盖正常流程、异常流程和边界条件。"
}
]
}
如果 Ollama 和 VS Code 在同一台机器上,可以使用:
"apiBase": "http://127.0.0.1:11434"
配置完成后,即可在 VS Code 中进行:
- 代码解释;
- 代码生成;
- 单元测试生成;
- Bug 分析;
- 函数重构;
- SQL 优化;
- 正则表达式生成;
- 接口文档编写;
- 注释补全。
七、接入 JetBrains 系列 IDE
如果团队使用 IntelliJ IDEA、PyCharm、GoLand、WebStorm 等 JetBrains IDE,也可以安装 Continue 插件。
1. 安装插件
打开:
Settings -> Plugins
搜索:
Continue
安装并重启 IDE。
2. 配置模型
JetBrains 版本 Continue 同样使用配置文件:
~/.continue/config.json
可以复用前文的配置。
八、部署 Web 端 AI 编程助手:Open WebUI
如果希望团队成员通过浏览器访问私有 AI 助手,可以部署 Open WebUI。它可以连接 Ollama,提供类似 ChatGPT 的 Web 页面。
1. 安装 Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
添加 Docker 源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker:
sudo systemctl enable docker
sudo systemctl start docker
检查版本:
docker --version
docker compose version
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
重新登录后生效。
2. 使用 Docker 运行 Open WebUI
如果 Ollama 已经安装在宿主机,并且监听 0.0.0.0:11434,可以执行:
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://服务器IP:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
访问地址:
http://服务器IP:3000
首次进入后创建管理员账号,然后选择对应模型即可。
3. 使用 Docker Compose 部署 Open WebUI
创建目录:
mkdir -p ~/ai-coding/open-webui
cd ~/ai-coding/open-webui
创建 docker-compose.yml:
vim docker-compose.yml
写入:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://服务器IP:11434
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
启动:
docker compose up -d
查看日志:
docker logs -f open-webui
停止:
docker compose down
升级:
docker compose pull
docker compose up -d
九、方案二:使用 vLLM 部署高性能 OpenAI 兼容接口
如果团队并发较高,或者希望统一提供 OpenAI 格式接口,推荐使用 vLLM。vLLM 对 GPU 推理优化更强,适合服务化部署。
1. 安装 Conda
下载 Miniconda:
cd /tmp
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
安装:
bash Miniconda3-latest-Linux-x86_64.sh
使配置生效:
source ~/.bashrc
创建环境:
conda create -n vllm python=3.10 -y
conda activate vllm
2. 安装 vLLM
pip install -U pip
pip install vllm
检查:
python -c "import vllm; print(vllm.__version__)"
3. 启动 Qwen2.5-Coder 服务
以 Hugging Face 模型为例:
vllm serve Qwen/Qwen2.5-Coder-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--served-model-name qwen2.5-coder-7b \
--gpu-memory-utilization 0.90 \
--max-model-len 32768
如果显存不足,可以降低上下文长度:
vllm serve Qwen/Qwen2.5-Coder-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--served-model-name qwen2.5-coder-7b \
--gpu-memory-utilization 0.85 \
--max-model-len 8192
4. 测试 vLLM OpenAI 接口
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder-7b",
"messages": [
{
"role": "user",
"content": "请用 Java 写一个线程安全的单例模式,并解释原因。"
}
],
"temperature": 0.2,
"max_tokens": 1024
}'
5. Continue 接入 vLLM
修改 ~/.continue/config.json:
{
"models": [
{
"title": "vLLM Qwen2.5 Coder",
"provider": "openai",
"model": "qwen2.5-coder-7b",
"apiBase": "http://服务器IP:8000/v1",
"apiKey": "EMPTY"
}
],
"tabAutocompleteModel": {
"title": "vLLM Qwen2.5 Coder",
"provider": "openai",
"model": "qwen2.5-coder-7b",
"apiBase": "http://服务器IP:8000/v1",
"apiKey": "EMPTY"
}
}
十、让 AI 理解企业内部代码库
仅仅部署模型还不够。真正好用的 AI 编程助手,应该理解企业内部项目结构、技术规范和业务文档。
可以考虑接入以下内容:
1. Git 仓库代码
2. README 文档
3. 接口文档
4. 数据库表结构
5. 架构设计文档
6. 编码规范
7. 常见故障处理文档
8. 历史需求文档
常见做法是搭建 RAG 知识库系统:
文档/代码
│
▼
文本切分
│
▼
向量化 Embedding
│
▼
向量数据库
│
├── Milvus
├── pgvector
├── Chroma
└── Elasticsearch
│
▼
检索增强生成
│
▼
AI 编程助手
如果是轻量级使用,可以先利用 Continue 的上下文能力,例如:
- 选中代码后提问;
- 引用当前文件;
- 引用整个项目文件;
- 让模型解释某个目录结构;
- 让模型根据已有代码风格生成新代码。
对于企业级使用,则建议将内部文档和核心代码仓库进行向量化,并增加权限控制,避免不同项目组之间的数据越权访问。
十一、安全与权限控制建议
AI 编程私有化部署虽然解决了“代码不出内网”的问题,但仍然需要做好安全治理。
1. 不建议裸露公网
不要直接将以下端口暴露到公网:
11434
8000
3000
如果必须远程访问,建议使用:
VPN
堡垒机
零信任网关
Nginx 反向代理 + HTTPS + 认证
2. 使用 Nginx 增加访问控制
安装 Nginx:
sudo apt install -y nginx apache2-utils
创建密码文件:
sudo htpasswd -c /etc/nginx/.htpasswd aiuser
配置反向代理:
sudo vim /etc/nginx/sites-available/ai-coding.conf
写入:
server {
listen 80;
server_name ai.example.local;
auth_basic "AI Coding";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/ai-coding.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
3. 内网防火墙限制访问来源
例如只允许某个网段访问 Ollama:
sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 3000 proto tcp
sudo ufw enable
sudo ufw status
4. 代码与数据审计
建议企业在上线前明确以下规则:
- 哪些代码可以提交给 AI;
- 哪些密钥、Token、数据库密码必须脱敏;
- AI 生成代码是否必须人工 Review;
- 是否记录用户提问和模型回答;
- 日志保留多久;
- 是否允许模型访问生产环境数据;
- 是否允许跨项目组共享知识库。
十二、常见问题排查
1. Ollama 下载模型很慢
可以尝试更换网络环境,或在能够访问外网的机器下载后迁移模型目录。
Ollama 默认模型目录一般在:
/usr/share/ollama/.ollama/models
也可能在:
~/.ollama/models
查看服务用户:
ps aux | grep ollama
2. 端口无法访问
检查服务是否启动:
sudo systemctl status ollama
检查监听地址:
sudo ss -lntp | grep 11434
检查防火墙:
sudo ufw status
测试本机访问:
curl http://127.0.0.1:11434/api/tags
测试远程访问:
curl http://服务器IP:11434/api/tags
3. GPU 没有被使用
检查 NVIDIA 驱动:
nvidia-smi
检查 Ollama 进程:
ps aux | grep ollama
运行模型时观察显存:
watch -n 1 nvidia-smi
如果显存不足,可以换小模型:
ollama pull qwen2.5-coder:3b
ollama run qwen2.5-coder:3b
4. 模型回答质量不稳定
可以从几个方面优化:
1. 换更大的代码模型
2. 降低 temperature
3. 提供更多上下文
4. 给出明确角色和输出格式
5. 接入项目文档和代码库
6. 使用更适合代码任务的模型
示例 Prompt:
你是一个资深 Java 后端工程师。
请基于 Spring Boot 3、Java 17、MyBatis Plus 编写代码。
要求:
1. 代码风格简洁;
2. 必须包含异常处理;
3. 必须包含参数校验;
4. 输出完整代码;
5. 不要省略 import。
十三、推荐落地路径
如果你的团队刚开始做 AI 编程私有化部署,建议按以下顺序推进:
第一阶段:快速验证
目标是先让模型跑起来。
Ollama + Qwen2.5-Coder 7B + Continue
部署内容:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5-coder:7b
ollama run qwen2.5-coder:7b
然后在 VS Code 中安装 Continue 并连接 Ollama。
第二阶段:团队试用
目标是让 3~10 名开发者稳定使用。
建议增加:
Open WebUI
Nginx 认证
内网访问控制
统一模型配置
常用 Prompt 模板
第三阶段:企业级增强
目标是让 AI 编程助手真正理解企业内部系统。
建议增加:
vLLM 高性能推理
知识库 RAG
权限体系
日志审计
多模型路由
代码安全扫描
私有 Git 集成
十四、一键部署示例脚本
下面给出一个简化版脚本,用于在 Ubuntu 服务器上快速安装 Ollama、拉取 Qwen2.5-Coder,并启动 Open WebUI。
创建脚本:
vim install-ai-coding.sh
写入:
#!/usr/bin/env bash
set -e
MODEL_NAME="qwen2.5-coder:7b"
SERVER_IP=$(hostname -I | awk '{print $1}')
echo "========== 更新系统 =========="
sudo apt update
sudo apt install -y curl wget git vim htop net-tools ca-certificates gnupg lsb-release
echo "========== 安装 Ollama =========="
if ! command -v ollama >/dev/null 2>&1; then
curl -fsSL https://ollama.com/install.sh | sh
else
echo "Ollama 已安装"
fi
echo "========== 配置 Ollama 监听地址 =========="
sudo mkdir -p /etc/systemd/system/ollama.service.d
cat </dev/null 2>&1; then
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
else
echo "Docker 已安装"
fi
sudo systemctl enable docker
sudo systemctl start docker
echo "========== 启动 Open WebUI =========="
docker rm -f open-webui >/dev/null 2>&1 || true
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://${SERVER_IP}:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
echo "========== 部署完成 =========="
echo "Ollama API: http://${SERVER_IP}:11434"
echo "Open WebUI: http://${SERVER_IP}:3000"
echo "模型名称: ${MODEL_NAME}"
赋予执行权限:
chmod +x install-ai-coding.sh
执行:
./install-ai-coding.sh
部署完成后访问:
http://服务器IP:3000
十五、总结
AI 编程私有化部署并不复杂,关键是选对技术路线。
如果你想快速搭建,推荐:
Ollama + Qwen2.5-Coder + Continue + Open WebUI
如果你需要高性能和企业级服务能力,推荐:
vLLM + Qwen2.5-Coder / DeepSeek-Coder + OpenAI Compatible API + RAG 知识库
对于企业来说,AI 编程助手不是简单的“聊天机器人”,而是研发效率基础设施的一部分。它可以帮助开发者完成代码生成、代码解释、单元测试、重构优化、故障排查和文档编写。但与此同时,也必须重视权限控制、代码安全、日志审计和模型输出质量管理。
建议先从小范围试点开始,让核心研发团队真实使用,再逐步接入内部知识库、代码仓库和权限体系。这样既能快速看到效果,也能降低一次性投入和上线风险。