One-Api是一个Api-key池管理工具,是OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用。
项目地址:https://github.com/songquanpeng/one-api
现在使用docker-compose编排启动one-api,编排文件如下:
version: '3'
services:
one-api:
image: justsong/one-api:latest
container_name: one-api
restart: always
command: --log-dir /app/logs
ports:
- "3000:3000"
volumes:
- ./one-api/data:/data
- ./one-api/log:/app/logs
environment:
- SQL_DSN=oneapi:123456@tcp(mysql:3306)/one-api
- REDIS_CONN_STRING=redis://:123456@redis:6379
- SESSION_SECRET=random_string
- TZ=Asia/Shanghai
depends_on:
- redis
- mysql
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
mysql:
image:
mysql:8.0.35
container_name:
mysql_8_0_35
restart:
always
volumes:
-
"./mysql/config/my.cnf:/etc/my.cnf"
-
"./mysql/data:/var/lib/mysql"
-
"./mysql/mysql-files:/var/lib/mysql-files"
-
"./mysql/log:/var/log/mysql"
-
/etc/localtime:/etc/localtime:ro
environment:
TZ:
Asia/Shanghai
LANG:
en_US.UTF-8
MYSQL_ROOT_PASSWORD:
root
MYSQL_USER:
oneapi
# 创建专用用户
MYSQL_PASSWORD:
'123456'
# 设置专用用户密码
MYSQL_DATABASE:
one-api
# 自动创建数据库
privileged:
true
ports:
-
"3306:3306"
redis:
image:
redis:6.0.8
container_name:
redis_6_0_8
restart:
always
# 启动redis服务,设置密码,设置持久化
command:
redis-server
--requirepass
123456
--appendonly
yes
environment:
TZ:
Asia/Shanghai
LANG:
en_US.UTF-8
volumes:
-
"./redis/data:/data"
-
"./redis/config/redis.conf:/etc/redis/redis.conf"
ports:
-
"6379:6379"
其中的mysql的配置文件 my.cnf 参照我的上一篇文章。
这样就搭建好了,使用浏览器访问即可: IP地址:3000
one-api的使用教程:添加新的渠道 -> 添加新的令牌 -> 复制令牌(sk-xxx)-> 使用。
以 openapi 为例,将原来的 url 替换成 ip地址:3000/v1
, key替换成上面复制的key
即可。
这样就可以在程序中使用上面key池中的key了。
可以结合 fastgpt 搭建自己的知识库。