本文以DeepSeek厂商为例,介绍OneAPI如何统一调用大模型API,其他大模型厂商照葫芦画瓢。
一、参考资料
One API Docker 部署实战:从 0 搭建多模型统一接口管理平台 - 技术栈
OneAPI保姆级部署教程:Docker一键启动,支持OpenAI/Gemini/Claude等30+大模型-CSDN博客
二、OneAPI + DeepSeek
1. 创建 API key
前往 DeepSeek 开放平台 创建 API key,以及充值余额,否则将无法调用模型。
2. 部署OneAPI(Docker方式)
安装docker,其详细步骤请查看博客:ubuntu安装docker教程(CPU版)-CSDN博客
基于docker部署OneAPI:
dockerrun--nameone-api-d--restartalways-p3000:3000-eTZ=Asia/Shanghai-v/home/ubuntu/data/one-api:/data justsong/one-api解释说明:
--name:给容器起个名称,方便后续管理。--restart=always:开机自启,服务器重启后自动恢复服务。-d:守护式容器,后台运行容器。-p:将宿主机3000端口映射到容器内3000端口(即Web管理后台和API入口),第一个3000是宿主机的端口号。-v:挂载数据卷,确保配置、用户、日志持久化。-e TZ=Asia/Shanghai:设置时区为中国标准时间,避免日志时间错乱
查看是否部署成功:
yoyo@ubuntu:/media/sda3/workspace/one-api$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 00f180d32483 justsong/one-api"/one-api"About an hour ago Up About an hour0.0.0.0:3000->3000/tcp,[::]:3000->3000/tcp one-apiSTATUS状态为Up,表示容器已启动。
进入容器:
dockerexec-it00f180d32483 /bin/sh浏览器访问:http://localhost:3000
如果浏览器无法访问,则查看端口是否被占用:
lsof-i:3000如果端口被占用,则换其他端口,重启docker服务。
3. 创建Channel
Channel -->Type:选择DeepSeek -->Name:自定义名称 -->Group: 默认 -->Models:查看 DeepSeek API 文档支持哪些模型 -->Key:在 deepseek 开放平台中,创建 API key首次调用 API | DeepSeek API Docs
创建成功之后,测试响应时间:
如果测试失败,显示API Error: 402 Insufficient Balance,表示 deepseek 余额不足,请前往 DeepSeek 开放平台 充值。
4. 创建 Token
Token -->Name:自定义名称 -->其他配置:默认Token 创建完成后,copy Raw Token即为One API可用的API key。
5. 验证 One API 是否可用
使用curl快速验证OneAPI是否可用。
示例一:
curlhttp://localhost:3000/v1/chat/completions\-H"Content-Type: application/json"\-H"Authorization: Bearer${One_API_KEY}"\-d'{ "model": "deepseek-v4-flash", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ], "thinking": {"type": "enabled"}, "reasoning_effort": "high", "stream": false }'注意:${One_API_KEY}使用的是在 OneAPI 创建的Token。以上为json格式化之后的输出结果。
输出示例:
yoyo@ubuntu:/media/sda3/workspace/one-api$curlhttp://localhost:3000/v1/chat/completions\>-H"Content-Type: application/json"\>-H"Authorization: Bearer sk-esE0K4xxxxF76e79E61b3e"\>-d'{ > "model": "deepseek-v4-flash", > "messages": [ > { > "role": "user", > "content": "请回复:One API 部署成功" > } > ] > }'{"id":"6e669c47-63b3-4760-9af5-f4440800604e","object":"chat.completion","created":1780841524,"model":"deepseek-v4-flash","choices":[{"index":0,"message":{"role":"assistant","content":"One API 部署成功","reasoning_content":"我们收到用户消息:\"请回复:One API 部署成功\"。这是一个简单的请求,用户要求回复\"One API 部署成功\"。作为AI助手,应该直接回复该文本。注意用户没有其他上下文或问题。因此回复:\"One API 部署成功\"。"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":61,"total_tokens":73,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":55},"prompt_cache_hit_tokens":0,"prompt_cache_miss_tokens":12},"system_fingerprint":"fp_8b330d02d0_prod0820_fp8_kvcache_20260402"}示例二:
curl-XPOST"http://localhost:3000/v1/chat/completions"\-H"Content-Type: application/json"\-H"Authorization: Bearer sk-esE0K4J55hgTAJUj5452FdEe56F04eCd8d68F76e79E61b3e"\-d'{ "model": "deepseek-v4-flash", "messages": [{"role": "user", "content": "用一句话介绍OneAPI"}] }'输出示例:
yoyo@ubuntu:/media/sda3/workspace/one-api$curl-XPOST"http://localhost:3000/v1/chat/completions"\>-H"Content-Type: application/json"\>-H"Authorization: Bearer sk-esE0K4xxxxF76e79E61b3e"\>-d'{ > "model": "deepseek-v4-flash", > "messages": [{"role": "user", "content": "用一句话介绍OneAPI"}] > }'{"id":"b34a982c-68ae-4dd0-9416-ba6f055cffe1","object":"chat.completion","created":1780838294,"model":"deepseek-v4-flash","choices":[{"index":0,"message":{"role":"assistant","content":"OneAPI 是一个开源的 API 管理平台,用于统一管理和调度多种 AI 模型接口,实现密钥管理、负载均衡和成本控制。","reasoning_content":"我们需用一句话介绍OneAPI。OneAPI是一个开源的API管理平台,用于统一管理和调度多种AI模型接口,特别是支持大语言模型(如OpenAI、Claude、Gemini等)的API密钥管理、负载均衡和成本控制。一句话要简洁概括核心功能。"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":9,"completion_tokens":93,"total_tokens":102,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":61},"prompt_cache_hit_tokens":0,"prompt_cache_miss_tokens":9},"system_fingerprint":"fp_8b330d02d0_prod0820_fp8_kvcache_20260402"}