OSS 模式是什么
OSS(Open Source Software)模式是 Codex 2026 年最重要的功能更新之一。它允许用户绕过 OpenAI 模型锁定,接入任何兼容 OpenAI API 格式的模型端点。
核心原理很简单:Codex 的模型调用层使用了 OpenAI SDK 的标准接口,任何实现了 /v1/chat/completions 端点的服务都可以作为模型提供方。
┌─────────────┐ OpenAI Compatible API ┌──────────────┐
│ Codex │ ─────────────────────────────→│ 任意模型 │
│ Agent Loop │ ←─────────────────────────────│ 推理引擎 │
└─────────────┘ JSON Response └──────────────┘
这意味着:
- ✅ 本地模型(Ollama / LM Studio / vLLM)
- ✅ 国产模型 API(DeepSeek / Qwen / GLM)
- ✅ 自托管模型(vLLM / TGI / SGLang)
- ✅ 多模型混合(不同任务用不同模型)
Ollama 接入
安装 Ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# macOS
brew install ollama
# Windows
winget install Ollama.Ollama
拉取推荐模型
# 编程专精模型
ollama pull qwen2.5-coder:32b
# 通用大模型
ollama pull llama3.3:70b
# 轻量快速模型
ollama pull phi4:14b
# 中文优化
ollama pull qwen2.5:32b
Codex 配置
// ~/.codex/config.json
{
"provider": "openai-compatible",
"model": "qwen2.5-coder:32b",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama",
"temperature": 0.7,
"maxTokens": 8192,
"streaming": true
}
验证连通性
# 测试 API 是否可用
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder:32b",
"messages": [{"role": "user", "content": "Hello"}],
"max_tokens": 50
}'
# 通过 Codex 测试
codex "写一个 Python 函数计算斐波那契数列"
LM Studio 接入
LM Studio 提供图形界面管理本地模型,适合不熟悉命令行的用户。
步骤
- 下载安装 LM Studio
- 在 Discover 页面搜索并下载模型(推荐 GGUF 格式)
- 进入 Local Server 标签页
- 加载模型并点击 “Start Server”
- 默认端口 1234
Codex 配置
{
"provider": "openai-compatible",
"model": "qwen2.5-coder-32b-instruct",
"apiBase": "http://localhost:1234/v1",
"apiKey": "lm-studio",
"temperature": 0.7
}
LM Studio 优势
| 特性 | Ollama | LM Studio |
|---|---|---|
| 界面 | CLI | 图形界面 |
| 模型管理 | 命令行 | 拖拽下载 |
| 量化选项 | 预设 | 灵活选择 |
| GPU 配置 | 自动 | 手动调优 |
| 多模型加载 | 单模型 | 可同时加载 |
| 适合人群 | 开发者 | 所有用户 |
vLLM 自托管部署
对于企业级私有部署,vLLM 是最优选择:
# 安装 vLLM
pip install vllm
# 启动 API 服务器
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-Coder-32B-Instruct \
--port 8000 \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.9 \
--max-model-len 32768
Codex 配置
{
"provider": "openai-compatible",
"model": "Qwen/Qwen2.5-Coder-32B-Instruct",
"apiBase": "http://your-server:8000/v1",
"apiKey": "vllm-token",
"temperature": 0.7,
"maxTokens": 32768
}
vLLM vs Ollama 性能对比
在 A100 80GB GPU 上测试 Qwen2.5-Coder-32B:
| 指标 | Ollama (q4) | vLLM (fp16) | vLLM (awq) |
|---|---|---|---|
| 首 token 延迟 | 320ms | 85ms | 72ms |
| 生成速度 | 28 tok/s | 95 tok/s | 110 tok/s |
| 并发支持 | 1 | 100+ | 100+ |
| 显存占用 | 18GB | 65GB | 24GB |
| 质量损失 | 中等 | 无 | 轻微 |
性能对比:本地 vs 云端
编程任务测试
任务:实现一个带有分页、排序、过滤的 REST API(Python FastAPI)
| 模型 | 首次成功率 | 代码质量 | 耗时 | 成本 |
|---|---|---|---|---|
| GPT-4o (云端) | 100% | 9.5/10 | 45s | $0.12 |
| Claude 4 Sonnet | 100% | 9.3/10 | 38s | $0.10 |
| Qwen2.5-Coder-32B (本地) | 95% | 9.0/10 | 65s | $0 |
| DeepSeek-V3 (API) | 95% | 8.8/10 | 55s | $0.02 |
| Llama 3.3 70B (本地) | 90% | 8.5/10 | 80s | $0 |
| Phi-4 14B (本地) | 80% | 7.5/10 | 25s | $0 |
推理任务测试
任务:分析一段代码的潜在安全漏洞
| 模型 | 检出率 | 误报率 | 耗时 |
|---|---|---|---|
| o3 (云端) | 98% | 5% | 30s |
| GPT-4o (云端) | 92% | 8% | 20s |
| Qwen2.5-Coder-32B (本地) | 85% | 12% | 55s |
| Llama 3.3 70B (本地) | 82% | 10% | 70s |
| Phi-4 14B (本地) | 70% | 18% | 20s |
成本分析
个人开发者
| 方案 | 月成本 | 适用场景 |
|---|---|---|
| Ollama + Qwen2.5-Coder 7B | $0(电费) | 日常编程 |
| Ollama + Qwen2.5-Coder 32B | $0(需 24GB VRAM) | 专业开发 |
| DeepSeek API | $2-10 | 中度使用 |
| OpenAI API | $20-100 | 重度使用 |
| Codex Plus 订阅 | $20 | 均衡选择 |
企业部署
以 50 人团队、每人每天 50 次调用为例:
| 方案 | 月成本 | 数据隐私 | 性能 |
|---|---|---|---|
| OpenAI API | $3,000-8,000 | 数据外传 | 最强 |
| Claude API | $2,500-7,000 | 数据外传 | 强 |
| DeepSeek API | $500-1,500 | 数据外传 | 中 |
| 自托管 vLLM (2×A100) | $4,000 (服务器) | 完全私有 | 中上 |
| 自托管 vLLM (4×A100) | $8,000 (服务器) | 完全私有 | 强 |
注:自托管方案虽然月成本不低,但长期来看硬件可复用,且数据不出域。
多模型路由策略
Codex 支持基于任务类型自动选择模型:
{
"modelRouting": {
"default": "qwen2.5-coder:32b",
"coding": "qwen2.5-coder:32b",
"reasoning": "deepseek-chat",
"simple": "phi4:14b",
"writing": "qwen2.5:32b"
},
"providers": {
"local": {
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama"
},
"deepseek": {
"apiBase": "https://api.deepseek.com/v1",
"apiKey": "sk-xxx"
}
}
}
路由策略效果:
用户: "写一个二叉树遍历" → 路由到 qwen2.5-coder:32b (本地, 免费)
用户: "分析这段架构设计的问题" → 路由到 deepseek-chat (API, $0.001)
用户: "修正拼写错误" → 路由到 phi4:14b (本地, 快速)
私有部署最佳实践
硬件选型
| 团队规模 | GPU 配置 | 可运行模型 | 预算 |
|---|---|---|---|
| 1-5人 | 1× RTX 4090 24GB | 7B-14B 模型 | $2,000 |
| 5-20人 | 1× A100 80GB | 32B-70B 模型 | $15,000 |
| 20-50人 | 2× A100 80GB | 70B 模型并发 | $30,000 |
| 50+人 | 4× A100 80GB | 多模型并行 | $60,000 |
安全配置
# 生产环境安全清单
security:
- 模型服务不暴露公网,仅内网访问
- API 端点添加认证 token
- 日志记录所有 prompt 和输出
- 定期审计模型输出内容
- 网络隔离:模型服务器在独立 VLAN
network:
api_server:
bind: "0.0.0.0"
port: 8000
tls:
enabled: true
cert: /etc/ssl/codex.crt
key: /etc/ssl/codex.key
auth:
type: bearer
tokens:
- "internal-token-xxx"
监控与运维
# vLLM 监控
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-Coder-32B-Instruct \
--port 8000 \
--disable-log-requests \ # 生产环境关闭请求日志
--uvicorn-log-level info
# Prometheus 指标
# vLLM 暴露 /metrics 端点
curl http://your-server:8000/metrics | grep vllm
关键监控指标:
| 指标 | 告警阈值 | 说明 |
|---|---|---|
| GPU 利用率 | >95% 持续 5min | 需要扩容 |
| 请求队列长度 | >20 | 并发不足 |
| 首 token 延迟 | >500ms | 模型加载或 GPU 压力 |
| 错误率 | >1% | 模型或网络异常 |
已知限制
OSS 模式目前的一些限制:
- 函数调用支持:部分本地模型不支持原生 function calling,Codex 会退回到 prompt 模式
- 长上下文:本地模型上下文窗口通常较小(4K-32K),处理大型项目时可能截断
- 流式输出:部分模型 API 不支持 streaming,用户体验会有延迟
- 多模态:本地模型对图片输入支持有限
// 降级配置示例
{
"provider": "openai-compatible",
"model": "qwen2.5-coder:32b",
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama",
"fallback": {
"enabled": true,
"provider": "openai",
"model": "gpt-4o-mini",
"trigger": "function_call_unsupported"
}
}
总结
OSS 模式让 Codex 从"OpenAI 专属工具"变成了"模型无关的 Agent 平台"。对于注重成本和数据隐私的国内用户来说,Ollama + Qwen2.5-Coder + DeepSeek API 降级的组合是当前最优解:日常编程用本地模型(免费),复杂推理降级到 API(低成本),两者无缝切换。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
