api-for-open-llm
为开源大模型提供 OpenAI 风格的统一 API 接口,一行配置切换 Qwen/LLaMA/ChatGLM 等 15+ 模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为开源大模型提供 OpenAI 风格的统一 API 接口,一行配置切换 Qwen/LLaMA/ChatGLM 等 15+ 模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你在本地跑通了一个 Qwen-7B 模型,推理效果不错,但想把它接给一套 RAG 问答系统或 Dify 工作流时,发现这些工具默认只认 OpenAI 的 API 格式——你需要改大段代码、写适配器、甚至绕路去用 LangChain 的底层接口。
api-for-open-llm 解决的就是这个痛点:它把主流开源大模型(Qwen、ChatGLM、Baichuan、DeepSeek 等)统一封装成 OpenAI ChatGPT 风格的 HTTP 接口,零代码改造直接让现有生态工具接入私有模型。
该项目由国内开发者 xusenlinzy 创建和维护,最初是为了解决自己使用开源模型时的接入困境。随着支持的模型越来越多,项目 Star 数稳步增长,目前已成为私有模型接入 LangChain、Dify 等主流框架的事实标准中间件之一。
作者持续更新 NEWS.md,保持对最新模型的支持(如 Qwen2、GLM-4V、Code Qwen 等),版本迭代频率较高,社区活跃。

图1:项目支持的模型生态(来自论文 A Survey of Large Language Models)
项目后端基于 FastAPI(异步高性能 Python Web 框架)构建,推理层支持两套引擎:
| 推理引擎 | 特点 | 适用场景 |
|---|---|---|
| Transformers | 兼容性最强,支持 PEFT LoRA 微调权重 | 研究、定制模型 |
| vLLM | PagedAttention 显存优化,高并发吞吐 | 生产环境、高并发 |
核心调用路径:
用户请求(OpenAI 格式)
↓
FastAPI Router(/v1/chat/completions)
↓
模型专属 Prompt 模板(各模型 ChatML 格式不同)
↓
Transformers / vLLM 推理
↓
统一响应格式(转回 OpenAI 格式)
每个大模型的对话格式标准不同:ChatGLM 用 [gmask], [sop] 标记,LLaMA 用 special token,Qwen 用 <|im_start|> 标记。项目在 api/models/ 下为每个模型维护独立的 prompt 策略(PROMPT_NAME 环境变量切换),这是项目技术含量的核心体现。
项目不只是「能跑起来」这么简单,它追求的是融入现有生态:
OPENAI_API_BASE 环境变量,LangChain 的 ChatOpenAI / OpenAI 链即可无缝切换到本地模型OPENAI_API_BASE 环境变量,Dify 的 Agent 和工作流即可调用私有模型
图2:接入 Dify 工作流平台,直接使用私有模型作为 LLM 后端

图3:Streamlit 提供的开箱即用 Web UI,支持对话和嵌入搜索

图4:配合 ChatGPT-Next-Web,快速搭建私有 ChatGPT 界面
# 1. 克隆项目
git clone https://github.com/xusenlinzy/api-for-open-llm.git
cd api-for-open-llm
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,设置 MODEL_PATH 为 HuggingFace 模型路径
# 3. docker-compose 一键启动
docker-compose up -d
# 或 vLLM 加速模式
docker-compose -f docker-compose.vllm.yml up -d
Python 调用示例:
from openai import OpenAI
client = OpenAI(
api_key="EMPTY", # 本地部署无需 key
base_url="http://localhost:8000/v1/"
)
response = client.chat.completions.create(
model="qwen2",
messages=[{"role": "user", "content": "解释一下 RAG"}]
)
print(response.choices[0].message.content)
开源大模型的部署一直面临「最后一公里」问题:模型能跑通,但接入工具链的代价太高。api-for-open-llm 通过标准化接口将这最后一公里缩短到修改一个环境变量,大大降低了开源模型的应用门槛。
从 Star 历史看,项目持续稳定增长,issues 和 PR 活跃度高,说明需求真实存在。随着 Qwen、DeepSeek 等国产模型生态的扩大,这类接口适配工具的价值还会进一步凸显。
| 维度 | 信息 |
|---|---|
| 语言 | Python 3.8+ |
| 核心依赖 | FastAPI, Transformers, vLLM, LangChain |
| 支持模型 | LLaMA, Qwen, ChatGLM, Baichuan, DeepSeek, CodeQwen, GLM-4V 等 15+ |
| 许可证 | Apache 2.0 |
| 容器化 | docker-compose(docker/ 目录含 Dockerfile) |
| Web UI | Streamlit Demo(可选) |