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 搭建自己的知识库。