基于Docker快速部署OneAPI以及统一调用国产大模型

本文以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:

bash 复制代码
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=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:设置时区为中国标准时间,避免日志时间错乱

查看是否部署成功:

bash 复制代码
yoyo@ubuntu:/media/sda3/workspace/one-api$ docker ps
CONTAINER ID   IMAGE              COMMAND      CREATED             STATUS             PORTS                                         NAMES
00f180d32483   justsong/one-api   "/one-api"   About an hour ago   Up About an hour   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp   one-api

STATUS 状态为 Up,表示容器已启动。

进入容器:

bash 复制代码
docker exec -it 00f180d32483 /bin/sh

浏览器访问:http://localhost:3000

如果浏览器无法访问,则查看端口是否被占用:

bash 复制代码
lsof -i :3000

如果端口被占用,则换其他端口,重启docker服务。

3. 创建Channel

bash 复制代码
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

bash 复制代码
Token
	--> Name:自定义名称
	--> 其他配置:默认

Token 创建完成后,copy Raw Token即为One API可用的API key。

5. 验证 One API 是否可用

使用curl快速验证OneAPI是否可用。

示例一:

bash 复制代码
curl http://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格式化之后的输出结果。

输出示例:

bash 复制代码
cz@ubuntu:/media/sda3/workspace/one-api$ curl 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": "请回复: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"
}

示例二:

bash 复制代码
curl -X POST "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"}]
  }'

输出示例:

bash 复制代码
yoyo@ubuntu:/media/sda3/workspace/one-api$ curl -X POST "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"
}
相关推荐
杨了个杨89821 小时前
Docker简介及安装
运维·docker·容器
胖胖雕1 小时前
LLM增强的网易云API部署用于鸿蒙原生音乐app: Melotopia
docker·node.js·harmony
江华森1 小时前
Docker 基础实战完整指南
运维·docker·容器
fthux1 小时前
「装闭」-AI驱动的开源装修闭坑系统
人工智能·docker·开源
土星云SaturnCloud11 小时前
土星云AI边缘计算SE110S系列模型部署实战-YOLOv5
服务器·人工智能·yolo·docker·边缘计算
qq_4523962311 小时前
第二十篇:《Docker 故障排查常用命令与技巧》
运维·docker·容器
2601_colin11 小时前
Codex三大使用方式详解
经验分享·微信公众平台·facebook·oneapi·新浪微博
Qiuner12 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构
木雷坞13 小时前
6月 Docker 国内镜像源配置:daemon.json、/v2/ 连通性和 pull 验证
docker·eureka·json