前言

随着 LLM 技术的发展,市场上出现了越来越多的 AI 服务提供商,不局限于 OpenAI, DeepSeek 等。由于不同公司的技术差异,所提供的接口格式也大不相同

为了更方便的接入这些 AI 服务 ,我们需要一个项目来统一输入输出,并且能够自动中继到不同的 AI 服务。而 One API 这个开源项目则应运而生

使用 Docker Compose 部署 One API 的完整指南

架构概述

One API 作为智能路由层,实现:

  • 统一标准化 API 接口为 OpenAI 格式
  • 多厂商 AI 服务自动适配
  • 流量分配与负载均衡
  • 用量监控与统计分析

单机部署方案

反代服务使用 caddy ,数据库使用 mysql

1. 准备配置文件

创建 docker-compose.yml

services:
  one-api:
    image: justsong/one-api:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      TZ: Asia/Shanghai
      SQL_DSN: "root:your_password@tcp(db:3306)/oneapi" # 数据库配置
    volumes:
      - ./data:/data
    networks:
      - api-network

  caddy:
    image: caddy:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy_data:/data
    networks:
      - api-network

networks:
  api-network:
    driver: bridge

2. 配置反向代理

创建 Caddyfile

# 替换为您自己的域名
oneapi.yourdomain.com {
    reverse_proxy one-api:3000
}

3. 启动服务

# 启动容器
docker compose up -d

# 查看日志
docker compose logs -f

初始化配置

  1. 访问管理后台 https://oneapi.yourdomain.com
  2. 使用初始账户用户名为 root ,密码 123456 登录进入后台
  3. 添加 AI 服务渠道
  4. 创建 tokens 访问 ONE API 接口

接口调用示例

curl https://oneapi.yourdomain.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "你好"}]
  }'

第三方集成示例

沉浸式翻译

参考文档

  1. One API
Last modification:February 21, 2025
If you think my article is useful to you, please feel free to appreciate