部署One-API的详细指南
前言
one-api是一个开源项目(https://github.com/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 containerd.io
安装Docker Compose:
# 下载Docker Compose二进制文件
sudo curl -L "https://github.com/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文件
在项目目录中创建一个名为 docker-compose.yml
的文件:
touch docker-compose.yml
在yml文件中添加以下内容:
version: '3.4'services:one-api:image: "${REGISTRY:-docker.io}/justsong/one-api:latest"container_name: one-apirestart: alwayscommand: --log-dir /app/logsports:- "3000:3000"volumes:- ./data/oneapi:/data- ./logs:/app/logsenvironment:- 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=https://openai.justsong.cn # 多机部署时从节点取消注释该行depends_on:- redis- dbhealthcheck:test: [ "CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'" ]interval: 30stimeout: 10sretries: 3redis:image: "${REGISTRY:-docker.io}/redis:latest"container_name: redisrestart: alwaysdb:image: "${REGISTRY:-docker.io}/mysql:8.2.0"restart: alwayscontainer_name: mysqlvolumes:- ./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文件,直接拉取整个代码,代码中有docker-compose.yml:
git clone https://github.com/songquanpeng/one-api.git
4. 构建和启动容器
# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker-compose up -d# 查看部署状态
docker-compose ps
5.访问
地址栏输入链接:
ip:3000
管理员登录:
用户名:root
初始密码:123456