跳转至

GitHub: CNSeniorious000/oai2ollama

oai2ollama

OpenAI API 转 Ollama API 的代理。让 GitHub Copilot 支持自定义 OpenAI 兼容后端。

Success

从 Copilot 支持 Ollama 切入,反向 mock API。意外火了,14 星。

功能

  • 伪装 Ollama API,转发到 OpenAI 兼容服务
  • 支持流式响应和模型列表
  • 一行命令启动

实现

核心是 oai2ollama/_app.py:用 FastAPI 接收 v1/chat/completions 等 OpenAI-兼容请求,转换/转发给 Ollama 或其它兼容后端,并在 stream 模式下用 StreamingResponse 原样转发流式输出;/models 路径被封装为模型列举代理以兼容 Copilot/VS Code 的模型枚举。__init__.py 提供了 start() 的 CLI 启动入口,config.py(pydantic-settings)暴露 --api-key/--base-url/--models/--capabilities 等 CLI/env 配置项,便于一行命令快速启动并适配 Copilot 的使用场景。

参考源码:oai2ollama/_app.py(FastAPI handlers、streaming) · oai2ollama/config.py(pydantic CLI/env 管理) · oai2ollama/__init__.py(start() entry)

我的巧思

  • 逆向 Copilot:官方不改,我工具化。uvx 一键。
  • 模型伪装:后端空也行,自报常见名。
  • 轻量:无外部依赖,pip 后即用。

相关项目

用 uvx oai2ollama 试试!

重要源码 / 文档

深入洞见

在实现层 oai2ollama/_app.py 明确展示了两条关键能力:对 /v1/chat/completions 的请求进行格式转换/转发并在 stream 模式下通过 StreamingResponse 原样转发字节流以支持 Copilot 风格的流式交付;/models 路径被包装成模型列举代理以便兼容那些只查询可用模型的客户端(例如 Copilot 或 VS Code)。config.py__init__.py 表明该仓库同时把 CLI 启动与 env/CLI 配置(pydantic-settings)做到位,从而实现“一行启动 + Copilot 兼容”的使用场景。

参考源码:oai2ollama/_app.py(streaming / models proxy) · oai2ollama/config.py(pydantic 配置)