"代码不出设备"的四种方案:从不可能到完全可以
利益声明:本文作者参与了 wescode 的开发。文中涉及 wescode 的技术描述基于内部测试数据;涉及其他工具的描述基于各家公开文档和社区反馈。
本文是「代码安全实录」系列第 9 篇。四种方案的架构、代价和适用场景对比。所有信息来源标注在文末。
前几篇我们分析了 AI 编程工具的数据流、BYOK 的三种含义、企业安审的 7 个问题。所有分析最终指向同一个实际需求:
有没有办法既用 AI 编程工具,又让代码不离开我的电脑?
这个需求不是恐慌——它来自真实的合规场景:
- 金融机构:银保监会对核心系统的数据出境有明确限制
- 政府/国企:等保三级以上的系统要求代码在受控环境内处理
- 军工/涉密:涉密项目的开发环境物理隔离于互联网
- 跨国企业:GDPR 和《数据安全法》对数据跨境传输有严格约束
- 初创公司:核心算法是竞争壁垒,不想让任何第三方看到
本文拆解四种"代码不出设备"(或接近不出设备)的方案,每种方案的架构、代价、适用场景各不相同。
方案一:不用 AI 编程工具
这是最极端的选择,但也是最简单的安全方案。
你的电脑
┌──────────────────────┐
│ │
│ 传统 IDE │
│ (VS Code / JB) │
│ │
│ · 本地编辑 │
│ · 本地编译 │
│ · 本地调试 │
│ │
│ 零出站 │
│ 零 AI │
└──────────────────────┘
代价:
- 放弃 AI 带来的效率提升——根据多项研究,AI 编程工具平均提升 30-55% 的编码效率
- 团队招聘竞争力下降——越来越多的开发者把"能用 AI 工具"作为工作环境的考量因素
- 面对使用 AI 工具的竞争对手,研发速度上的差距会越来越大
适用场景:
- 涉密军工项目——这些环境通常不允许安装任何未经审批的软件,传统 IDE 本身就是经过安审的
- 极端保密的算法研究——比如量化交易策略开发,宁愿慢也不冒风险
什么情况下选这个方案:当你的合规要求是"开发环境不允许运行任何不在审批清单上的软件"——这种场景通常已经有成熟的软件管控流程,AI 编程工具只是又一个不在清单上的软件。
务实地说:这个方案越来越不可行。不是因为安全做不到——而是因为竞争压力会迫使越来越多的组织寻找"既安全又有 AI"的方案。下面的三个方案就是在安全和效率之间寻找平衡点。
方案二:私有部署 AI 编程工具
代表工具:CodeGeeX 私有部署、Tabby、Continue + 私有 LLM
企业内网
┌───────────────────────────────────────────────────────┐
│ │
│ 开发者电脑 内网 GPU 服务器 │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ │ ① 代码 │ │ │
│ │ VS Code + │───────────→│ CodeGeeX Server │ │
│ │ CodeGeeX │ 上下文 │ (A100 / H100) │ │
│ │ 插件 │ │ │ │
│ │ │ ② 补全/ │ · 模型推理 │ │
│ │ │ 对话结果 │ · 代码索引 │ │
│ │ │←───────────│ · 上下文管理 │ │
│ └──────────────┘ └──────────────────┘ │
│ │
│ 🔒 数据不出内网 │
└───────────────────────────────────────────────────────┘
架构说明:
企业在自己的内网(或私有云)部署一套完整的 AI 编程工具后端——包括模型推理服务、代码索引服务、上下文管理服务。开发者的请求在内网闭环,代码不出企业边界。
代价:
| 维度 | 说明 |
|---|---|
| 硬件成本 | 最低起步:1 台 A100 GPU(约 ¥10-15 万),推荐 2-4 台做冗余 |
| 运维团队 | 需要 1-2 个工程师维护 GPU 集群、模型更新、服务可用性 |
| 模型更新 | 云端模型更新后需要手动同步到内网(涉密环境需要介质审批) |
| 模型能力 | 私有部署通常使用中等参数的模型(13B-34B),推理能力弱于 Claude 3.5 Sonnet / GPT-4o |
| 部署周期 | 从采购到上线通常 2-4 周(涉密环境可能 2-3 个月) |
适用场景:
- 有 GPU 集群的大型金融机构——银行、保险公司通常有 IT 基础设施团队,且对数据安全有刚性需求
- 研究院/高校——通常有算力资源,且对开源工具的接受度高
- 大型科技公司——阿里、字节等公司已经在内部部署了类似系统(阿里的 Qoder)
什么情况下选这个方案:
- 团队规模 > 50 人(摊薄硬件成本)
- 企业已有 GPU 资源
- 合规要求"代码不出企业边界"但允许在内网使用 AI
方案三:wescode + 云端 API(BYOK-B)
你的电脑 模型供应商
┌─────────────────────────────┐ ┌──────────────┐
│ │ ② Prompt │ │
│ wescode │─────────────────→│ DeepSeek / │
│ (Code OSS Fork) │ (含代码片段) │ OpenAI / │
│ │ │ Anthropic │
│ ① 全部在本地完成: │ ③ 响应 │ │
│ · tree-sitter 代码解析 │←─────────────────│ · 模型推理 │
│ · CKG 知识图谱构建 │ │ · 返回结果 │
│ · SQLite 本地存储 │ │ │
│ · Prompt 组装 │ └──────────────┘
│ · 上下文选择 │
│ │ ⓪ 无 wescode 服务器
└─────────────────────────────┘
严格来说,这不是"代码不出设备"——Prompt 中包含的代码片段发给了模型供应商。但它是代码不经中间方——代码只去了一个地方(模型供应商),不经过工具厂商的服务器。
上一篇(第 7 篇)把这种模式定义为 BYOK-B。
代价:
| 维度 | 说明 |
|---|---|
| API 费用 | DeepSeek V3 约 ¥1-3/天(个人使用),Claude 3.5 Sonnet 约 ¥5-15/天 |
| Prompt 中的代码片段 | 仍然发给了模型供应商——模型供应商的数据政策适用 |
| 部署成本 | 零——下载 wescode + 配置 API Key 即可,无需服务器 |
| 模型能力 | 云端大模型全能力可用——与使用 Cursor / Copilot 的模型能力相同 |
适用场景:
- 绝大多数企业——合规要求是"代码不经过不必要的第三方",而不是"代码绝对不能离开设备"
- 个人开发者——想要云端大模型的能力,同时不让代码经过工具厂商
- 创业公司——预算有限、不想花 ¥145/月的 Cursor 订阅费
什么情况下选这个方案:
- 不需要"代码绝对不出设备"——能接受代码片段发给模型供应商
- 想要云端大模型的完整能力
- 不想部署和维护 GPU 集群
- 想要客户端可审计(Code OSS 开源)
与 Cursor 的区别(相同点和不同点):
| 维度 | Cursor (BYOK-A) | wescode (BYOK-B) |
|---|---|---|
| 模型能力 | 相同(都用云端大模型) | 相同 |
| 代码经过工具厂商 | 是 | 否 |
| 上下文理解方式 | Embedding(云端计算) | CKG 知识图谱(本地计算) |
| 客户端可审计 | 闭源 | Code OSS 开源 |
| 费用 | ¥145/月订阅 或 自带 Key | 自带 Key(按用量付费) |
| 社区和教程 | 大 | 较小 |
方案四:wescode + Ollama / vLLM(BYOK-C)
你的电脑
┌───────────────────────────────────────────────────────┐
│ │
│ wescode Ollama │
│ ┌───────────────────┐ ┌──────────────┐ │
│ │ │ ② Prompt │ │ │
│ │ · tree-sitter │──────────→│ 本地模型 │ │
│ │ · CKG 构建 │ localhost │ │ │
│ │ · Prompt 组装 │ :11434 │ Qwen 2.5 │ │
│ │ · 上下文选择 │ │ Coder 7B │ │
│ │ │ ③ 响应 │ / 14B │ │
│ │ │←──────────│ / 32B │ │
│ └───────────────────┘ └──────────────┘ │
│ │
│ 🔒 零出站网络流量 │
│ 断网后仍可使用 │
└───────────────────────────────────────────────────────┘
这是真正的"代码不出设备"——代码从头到尾没离开过你的电脑。模型推理在本地完成,没有任何外部网络请求。
代价:
| 维度 | 说明 |
|---|---|
| 本地算力 | 需要足够的 GPU 显存或 CPU 内存来运行模型(见下方硬件要求表) |
| 模型能力 | 本地 7B-34B 参数模型在复杂推理上弱于 Claude 3.5 Sonnet / GPT-4o |
| 补全延迟 | 视硬件而定,通常 200ms-2s(云端模型通常 100-500ms) |
| 费用 | 零 API 费用——只有电费和硬件折旧 |
Ollama 本地模型的硬件要求和实际体验
| 模型 | 参数 | GPU 显存 / CPU 内存 | 推理速度(token/s) | 编程能力评估 |
|---|---|---|---|---|
| Qwen 2.5 Coder 7B | 7B | 6GB GPU / 8GB RAM | ~30-50 t/s (GPU) | 代码补全可用,简单重构可用,复杂推理较弱 |
| DeepSeek Coder V2 Lite | 16B | 12GB GPU / 20GB RAM | ~15-25 t/s (GPU) | 补全优秀,中等复杂度重构可用 |
| Qwen 2.5 Coder 32B | 32B | 24GB GPU / 36GB RAM | ~8-15 t/s (GPU) | 接近云端模型水平,复杂推理可用 |
| Codestral 22B | 22B | 16GB GPU / 28GB RAM | ~12-20 t/s (GPU) | 多语言编程出色 |
| Llama 3.1 8B | 8B | 6GB GPU / 10GB RAM | ~25-40 t/s (GPU) | 通用能力好,代码专项略弱 |
注:推理速度取决于具体硬件。以上数据基于 NVIDIA RTX 4090(24GB)的测试。Apple Silicon Mac 使用 Metal 加速,速度约为 NVIDIA GPU 的 50-70%。纯 CPU 推理速度约为 GPU 的 10-20%。
各场景的体验差异
| 场景 | 本地 7B 模型 | 本地 32B 模型 | 云端 Claude 3.5 Sonnet |
|---|---|---|---|
| 代码补全(单行/多行) | ⭐⭐⭐ 可用 | ⭐⭐⭐⭐ 优秀 | ⭐⭐⭐⭐⭐ 最佳 |
| 函数级重构 | ⭐⭐ 基本可用 | ⭐⭐⭐⭐ 好 | ⭐⭐⭐⭐⭐ 最佳 |
| 跨文件理解 | ⭐⭐ 上下文有限 | ⭐⭐⭐ 可用 | ⭐⭐⭐⭐⭐ 最佳 |
| Bug 分析和修复 | ⭐⭐ 简单 bug 可以 | ⭐⭐⭐⭐ 大部分可用 | ⭐⭐⭐⭐⭐ 最佳 |
| 架构设计建议 | ⭐ 较弱 | ⭐⭐⭐ 可参考 | ⭐⭐⭐⭐⭐ 最佳 |
适用场景:
- 涉密项目——代码绝对不能离开受控环境
- 物理隔离的开发环境——没有互联网连接
- 隐私极度敏感的个人项目——核心算法、交易策略
- 想要零 API 费用的开发者——用自己的硬件跑模型
四种方案对比总览
| 维度 | 方案一:不用 AI | 方案二:私有部署 | 方案三:BYOK-B | 方案四:BYOK-C |
|---|---|---|---|---|
| 安全等级 | 🟢 最高 | 🟢 高(内网) | 🟡 中(直连供应商) | 🟢 高(零出站) |
| 模型能力 | — | ⭐⭐⭐ 中 | ⭐⭐⭐⭐⭐ 最强 | ⭐⭐-⭐⭐⭐⭐ 视模型 |
| 部署成本 | 零 | 🔴 高(GPU + 运维) | 🟢 零 | 🟢 零(需有 GPU) |
| 持续费用 | 零 | 🟡 电费 + 运维人力 | 🟢 ¥40-60/月 API | 🟢 电费 |
| 维护难度 | 零 | 🔴 高 | 🟢 低 | 🟢 低 |
| 适用团队 | 涉密小组 | 50+ 人大企业 | 绝大多数企业 | 安全要求极高 |
| 离线可用 | ✅ | ⚠️ 需内网 | 否 | ✅ |
| 代码不出设备 | ✅ | ⚠️ 在内网内流转 | 否(Prompt 出设备) | ✅ |
| 客户端可审计 | ✅(传统 IDE) | ⚠️ 看供应商 | ✅ Code OSS | ✅ Code OSS |
混合方案——最实际的选择
对大多数企业来说,不是选其中一种——而是混合使用。
按项目分级
项目分级策略
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 开源/学习 │ │ 一般商业 │ │ 核心/敏感 │
│ 项目 │ │ 项目 │ │ 项目 │
│ │ │ │ │ │
│ 方案三 │ │ 方案三 │ │ 方案四 │
│ BYOK-B │ │ BYOK-B │ │ BYOK-C │
│ + 最强模型 │ │ + DeepSeek │ │ + Ollama │
│ (Claude/GPT) │ │ (国内供应商) │ │ (零出站) │
│ │ │ │ │ │
│ ✅ 模型全能力 │ │ ✅ 不出境 │ │ ✅ 代码不出 │
│ ✅ 最低成本 │ │ ✅ 合规 │ │ 设备 │
│ ⚠️ 经供应商 │ │ ⚠️ 经供应商 │ │ ✅ 零出站 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
按场景切换
同一个开发者在一天内可能切换不同的安全模式:
- 上午写业务代码——用 BYOK-B(DeepSeek API),模型能力强,代码不经中间方
- 下午做核心算法优化——切到 BYOK-C(Ollama + Qwen 2.5 Coder 32B),代码不出设备
- 晚上做个人开源项目——用 BYOK-B(Claude API),体验最好
在 wescode 中切换这些模式只需要改一行配置——把模型供应商从 api.deepseek.com 改成 localhost:11434(Ollama)。不需要安装不同的编辑器,不需要重新学习工作流。
Ollama 的安装和配置
对于方案四(BYOK-C),这里是最简化的安装步骤。
1. 安装 Ollama
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# 或 macOS 通过 Homebrew
brew install ollama
2. 下载模型
# 推荐的编程模型(选一个即可)
# 小型(6GB 显存,大多数电脑可用)
ollama pull qwen2.5-coder:7b
# 中型(16GB 显存)
ollama pull codestral:22b
# 大型(24GB 显存,推荐 RTX 4090 或 M2 Max)
ollama pull qwen2.5-coder:32b
3. 在 wescode 中配置
在 wescode 的模型设置中,添加一个 Ollama 供应商:
- 供应商类型:OpenAI Compatible
- API 地址:
http://localhost:11434/v1 - API Key:
ollama(任意值,Ollama 不需要真实的 Key) - 模型:选择已下载的模型名
配置完成后,wescode 的所有 AI 功能(对话、补全、重构建议)都走本地模型,零出站网络流量。
4. 验证零出站
断开网络连接(关掉 Wi-Fi / 拔网线),然后在 wescode 中发起一次 AI 对话。如果模型正常响应——恭喜,你的代码确实没有离开你的电脑。
选择指引
你的合规需求是什么?
│
├── 代码绝对不能离开受控环境(涉密/军工)
│ ├── 有 GPU 集群 → 方案二(私有部署)
│ └── 无 GPU 集群 → 方案四(wescode + Ollama)
│ └── 电脑有独立 GPU(6GB+)→ ✅ 可行
│ └── 电脑无 GPU(仅 CPU)→ ⚠️ 体验较慢但可用
│
├── 代码不能经过不必要的第三方(一般企业合规)
│ ├── 可以使用海外模型 → 方案三(wescode + Claude/GPT)
│ └── 代码不能出境 → 方案三(wescode + DeepSeek/通义千问)
│
├── 没有硬性合规要求,但想更安全
│ ├── 在意体验和生态 → Cursor / Copilot(方案三也可以)
│ └── 在意数据路径 → 方案三(wescode BYOK-B)
│
└── 没有安全顾虑 → 选体验最好的工具
常见问题
"方案四的模型太弱了,不如不用"
不完全对。7B 模型确实在复杂推理上远不如 Claude 3.5 Sonnet——但日常的代码补全、简单的重构建议、文档生成这些高频场景,7B 模型的表现可能超出你的预期。
混合方案更实际:日常补全用本地模型(7B,快速响应、零出站),遇到复杂问题时切到云端 API(Claude/DeepSeek,能力最强)。用 80% 的本地 + 20% 的云端,覆盖 100% 的场景。
"我的 MacBook 能跑 Ollama 吗?"
可以。Apple Silicon Mac(M1/M2/M3/M4)使用 Metal 加速运行 Ollama:
| Mac 配置 | 推荐模型 | 推理速度 |
|---|---|---|
| M1/M2 8GB | Qwen 2.5 Coder 1.5B-3B | ~20-35 t/s |
| M1/M2 16GB | Qwen 2.5 Coder 7B | ~15-25 t/s |
| M2 Pro/Max 32GB+ | Qwen 2.5 Coder 14B-32B | ~10-20 t/s |
| M3 Pro/Max 36GB+ | Qwen 2.5 Coder 32B | ~12-25 t/s |
8GB 内存的 Mac 可以跑 3B 模型——补全体验基本可用。16GB 可以跑 7B——补全+简单对话都可以。32GB 以上可以跑 14B-32B——体验接近云端。
"私有部署和本地 Ollama 有什么区别?"
- 私有部署:企业在内网部署 GPU 服务器,所有开发者共享。模型更大(可以部署 70B+),推理更快,但需要硬件投入和运维团队。
- 本地 Ollama:每个开发者在自己电脑上跑模型。零部署成本,零运维,但受限于个人电脑的算力。
- 选择标准:团队 > 20 人且有 GPU 预算 → 私有部署;团队小或预算有限 → 每人本地 Ollama。
信息来源汇总
| # | 来源 | 类型 | URL |
|---|---|---|---|
| 1 | Ollama 官方文档 | 官方文档 | ollama.com |
| 2 | vLLM 部署指南 | 官方文档 | docs.vllm.ai |
| 3 | CodeGeeX 企业版 | 官方文档 | codegeex.cn |
| 4 | Qwen 2.5 Coder 模型文档 | 官方文档 | huggingface.co/Qwen |
| 5 | DeepSeek Coder V2 模型文档 | 官方文档 | huggingface.co/deepseek-ai |
| 6 | Codestral (Mistral) 文档 | 官方文档 | mistral.ai |
| 7 | wescode 安全架构 | 产品文档 | weisyn.com |
| 8 | GitHub Copilot 研究:AI 编程效率提升数据 | 研究 | github.blog |
本文信息截至 2026 年 10 月。如各方后续发布更新或澄清,请以最新信息为准。