部署One-API的详细指南
前言
one-api是一个开源项目(/songquanpeng/one-api),旨在简化API的开发与管理过程。这个项目提供了一个全面的解决方案,特别适用于需要高效管理API接口的开发者和团队。以下是该项目的一些核心特点和功能:
- 多模型支持:它是一个大模型接口管理和分发系统,能够支持多种主流的AI模型接口,包括但不限于OpenAI、Azure、Anthropic Claude、Google PaLM系列、智谱ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360智脑及腾讯混元等,实现了接口的整合与统一管理。
- 一键部署与开箱即用:通过Docker镜像形式,one-api可以实现快速部署,降低了使用门槛,使得用户能够迅速搭建起自己的API管理系统。
- API管理功能:包括文档自动生成、接口测试、版本控制、权限管理等,这些功能有助于提升API的开发效率与维护质量,确保API服务的稳定性和安全性。
- 高性能与轻量级:基于Go语言开发,确保了系统的高性能运行和资源的高效利用,适合微服务架构下的快速响应需求。
- 持续更新与发展:项目活跃,不断有新特性的加入和优化,如对响应解析逻辑的重构以支持多种格式,以及对新兴模型如GPT-4的计费方案的支持等。
在现代应用开发中,容器化和微服务架构已经成为主流。Docker Compose 作为一个工具,能够帮助我们轻松管理和编排多容器应用。本指南将详细介绍如何使用Docker Compose部署One-API。
1.环境准备
获取root权限:
sudo -i
在开始之前,请确保您的系统已经安装了以下软件:
- Docker
- Docker Compose
您可以通过以下命令检查是否已安装:
docker --version
docker-compose --version
如果没有安装,请按照以下步骤进行安装:
安装Docker:
# 更新包索引
sudo apt-get update
# 安装Docker
sudo apt-get install docker-ce docker-ce-cli
安装Docker Compose:
# 下载Docker Compose二进制文件
sudo curl -L "/docker/compose/releases/download/v2.3.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
2. 创建项目目录
首先,我们需要为我们的项目创建一个目录:
mkdir one-api
cd one-api
3. 编写Docker Compose文件
在项目目录中创建一个名为 的文件:
touch
在yml文件中添加以下内容:
version: '3.4'
services:
one-api:
image: "${REGISTRY:-}/justsong/one-api:latest"
container_name: one-api
restart: always
command: --log-dir /app/logs
ports:
- "3000:3000"
volumes:
- ./data/oneapi:/data
- ./logs:/app/logs
environment:
- SQL_DSN=oneapi:123456@tcp(db:3306)/one-api # 修改此行,或注释掉以使用 SQLite 作为数据库
- REDIS_CONN_STRING=redis://redis
- SESSION_SECRET=random_string # 修改为随机字符串
- TZ=Asia/Shanghai
# - NODE_TYPE=slave # 多机部署时从节点取消注释该行
# - SYNC_FREQUENCY=60 # 需要定期从数据库加载数据时取消注释该行
# - FRONTEND_BASE_URL= # 多机部署时从节点取消注释该行
depends_on:
- redis
- db
healthcheck:
test: [ "CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'" ]
interval: 30s
timeout: 10s
retries: 3
redis:
image: "${REGISTRY:-}/redis:latest"
container_name: redis
restart: always
db:
image: "${REGISTRY:-}/mysql:8.2.0"
restart: always
container_name: mysql
volumes:
- ./data/mysql:/var/lib/mysql # 挂载目录,持久化存储
ports:
- '3306:3306'
environment:
TZ: Asia/Shanghai # 设置时区
MYSQL_ROOT_PASSWORD: 'OneAPI@justsong' # 设置 root 用户的密码
MYSQL_USER: oneapi # 创建专用用户
MYSQL_PASSWORD: '123456' # 设置专用用户密码
MYSQL_DATABASE: one-api # 自动创建数据库
或者不编写Docker Compose文件,直接拉取整个代码,代码中有:
git clone /songquanpeng/
4. 构建和启动容器
# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker-compose up -d
# 查看部署状态
docker-compose ps
5.访问
地址栏输入链接:
ip:3000
管理员登录:
用户名:root
初始密码:123456