【记录】使用one-api聚合Azure和OpenAI的API

Last updated on December 3, 2023 pm

One-api 是 OpenAI 接口管理 & 分发系统,支持Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key。

  • 在负载均衡的同时,有效避免了key的泄露风险

部署 One-api

1
2
mkdir -p ~/app/one-api && cd ~/app/one-api && nano docker-compose.yml
sudo docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
one-api:
image: justsong/one-api:latest
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data
restart: unless-stopped
networks:
default:
external: true
name: ngpm

客户端

新建渠道

  • Azure 需要确保部署模型的名称是 gpt-35-turbo
  • 可以将 one-api 本身当一个渠道进行套娃
  • 在 日志 里可以看到对不同渠道进行了负载均衡

附加 部署Next-Web

1
2
mkdir -p ~/app/next-web && cd ~/app/next-web && nano docker-compose.yml
sudo docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
next-web:
image: yidadaa/chatgpt-next-web:latest
environment:
- TZ=Asia/Shanghai
- OPENAI_API_KEY=<one-api添加的令牌>
- BASE_URL=<one-api的反代地址>
- HIDE_USER_API_KEY=1
- DISABLE_GPT4=1
restart: unless-stopped
networks:
default:
external: true
name: ngpm

附加 搭建独角数卡

  • 反向代理
  • 账号:admin
  • 密码:admin
  • 数据库地址填 shop-db
  • Redis地址 填 shop-redis
1
2
3
4
5
6
7
8
mkdir -p ~/app/shop && cd ~/app/shop && nano docker-compose.yml && nano env.conf
mkdir storage uploads && chmod -R 777 ./* && sudo docker-compose up -d
# 访问首页完成安装后
sudo docker-compose down
# 分别把 - INSTALL=true 改成 - INSTALL=false
# 把 APP_DEBUG=true 改成 APP_DEBUG=false
# 把 ADMIN_HTTPS=false 改成 ADMIN_HTTPS=true
sudo docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3"

services:
shop:
image: ghcr.io/apocalypsor/dujiaoka:latest
environment:
- TZ=Asia/Shanghai
# - INSTALL=false
- INSTALL=true
# - MODIFY=true
- ADMIN_HTTPS=true
volumes:
- ./env.conf:/dujiaoka/.env
- ./uploads:/dujiaoka/public/uploads
- ./storage:/dujiaoka/storage
restart: always

shop-db:
image: mariadb:focal
restart: always
environment:
- MYSQL_ROOT_PASSWORD=changeyourpassword
- MYSQL_DATABASE=dujiaoka
- MYSQL_USER=dujiaoka
- MYSQL_PASSWORD=changeyourpassword
volumes:
- ./mysql:/var/lib/mysql

shop-redis:
image: redis:alpine
restart: always
volumes:
- ./redis:/data

networks:
default:
external: true
name: ngpm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
APP_NAME=璃墨的小卖部
APP_ENV=local
APP_KEY=base64:rKwRuI6eRpCw/9e2XZKKGj/Yx3iZy5e7+FQ6+aQl8Zg=
APP_DEBUG=true
APP_URL=https://shop.limour.top

LOG_CHANNEL=stack

# 数据库配置
DB_CONNECTION=mysql
DB_HOST=shop-db
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=changeyourpassword

# redis配置
REDIS_HOST=shop-redis
REDIS_PASSWORD=
REDIS_PORT=6379

BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120

# 缓存配置
# file为磁盘文件 redis为内存级别
# redis为内存需要安装好redis服务端并配置
CACHE_DRIVER=redis

# 异步消息队列
# sync为同步 redis为异步
# 使用redis异步需要安装好redis服务端并配置
QUEUE_CONNECTION=redis

# 后台语言
## zh_CN 简体中文
## zh_TW 繁体中文
## en 英文
DUJIAO_ADMIN_LANGUAGE=zh_CN

# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin

# 是否开启https (前端开启了后端也必须为true)
# 后台登录出现0err或者其他登录异常问题,大概率是开启了https而后台没有开启,把下面的false改为true即可
ADMIN_HTTPS=true


【记录】使用one-api聚合Azure和OpenAI的API
https://hexo.limour.top/Aggregating-Azure-and-OpenAI-APIs-with-OneAPI
Author
Limour
Posted on
October 3, 2023
Updated on
December 3, 2023
Licensed under