开篇:为什么我们需要一个“大模型统一网关”?
相信大家在使用AI模型时,如果这个模型不符合咱们的使用场景,就需要更新其他厂商的模型来使用,届时就会发现,更改模型不只是要更改模型名称,还需要更改对应的厂商 URL 以及 APIKEY,如果产品还不支持同时拥有多个厂商的URL,那我们使用起来那是相当麻烦(手动为每个应用适配?维护几十份配置文件?每次新模型出来就要改代码?企业内部多用户、多部门、多预算怎么管控?怎么实现充值、配额、计费管理?),那么今天我将教大家 从0搭建一个大模型统一网关程序,用来聚合我们的大模型,实现一个KEY一个URL即可随意切换使用大模型。
第一步:购买服务器(中等配置即可)

润雨云
44¥(划算便宜,稳定性良好)https://www.rainyun.com/NzM1MTc0_

购买完成之后获取咱们的
公网和密码即可
第二步:登录服务器(windows/mac)


终端输入命令:
ssh -p 22 root@公网IP地址
# 22 是登录端口,默认的值
第三步:安装服务器控制面板1Panel(小白推荐)
终端输入安装命令:
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
# 可以先不装docker
# 注意 设置好 1Panel 端口后需要去厂商开放对应的端口,比如我的设置的是12345厂商是腾讯,那我就得去腾讯开放一下 12345 端口

打开 1Panel 管理页面

安装Docker服务
选好镜像源直接一路回车即可

安装OpenResty组件

安装Mysql组件
推荐使用
8.0.42版本,一定要勾选上端口外部访问

创建数据库用户
newapi

安装Redis服务
推荐使用
最新版本,一定要勾选上端口外部访问

第四步:安装中转站New-API (https://blog.hallucodex.com/archives/Ngjb8Jzk )
创建一个
new-api文件夹mkdir /data/new-api -p && cd /data/new-api
编写
docker-compose.yaml文件SQL_DSN=newapi:xiaopaluapi@tcp(10.2.0.7:3306)/newapi
newapi 是数据库名称
xiaopaluapi 是数据库密码
10.2.0.7 是内网的IP地址
3306 是数据库端口
REDIS_CONN_STRING=redis://:xiaopaluapi@10.2.0.7:6379/0
xiaopaluapi 是redis密码
10.2.0.7 是内网的IP地址
6379 是redis端口
- "3000:3000"
前面的 3000 是对外映射的端口,后面的是内部启动端口,后面的不需要动,如果端口被占用只改前面的就行
version: '3.4' # For compatibility with older Docker versions
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
command: --log-dir /app/logs
ports:
- "3000:3000"
volumes:
- ./data:/data
- ./logs:/app/logs
environment:
- SQL_DSN=newapi:xiaopaluapi@tcp(10.2.0.7:3306)/newapi # Point to the mysql service, uncomment if using MySQL
- REDIS_CONN_STRING=redis://:xiaopaluapi@10.2.0.7:6379/0
- TZ=Asia/Shanghai
- ERROR_LOG_ENABLED=true # 是否启用错误日志记录 (Whether to enable error log recording)
- BATCH_UPDATE_ENABLED=true # 是否启用批量更新 (Whether to enable batch update)
- STREAMING_TIMEOUT=300 # 流模式无响应超时时间,单位秒,默认120秒,如果出现空补全可以尝试改为更大值
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
interval: 30s
timeout: 10s
retries: 3启动服务
docker compose up -d
在腾讯厂商中开放 3000 端口,如果你改了端口则开放你修改过的端口

第五步:打开NewAPI中转页面
浏览器打开:http://公网IP:3000

设置好管理员账号即可

第六步:设置我们的第一个渠道(硅基流动)


新建 API 渠道

设置好之后可以一键获取到模型
我们就搞一个
Pro/MiniMaxAI/MiniMax-M2.5模型为例

设置好模型之后点击测试
报错了不要慌,提示让我们设置价格,那我们就设置一下

如何设置模型价格
模型倍率:百万输入 / 2
模型补全倍率:百万输出 / 百万输入
提示缓存倍率:百万命中缓存 / 百万输入 (如果模型没有可以不写)
例如:Pro/MiniMaxAI/MiniMax-M2.5
百万输入:2.10
百万输出:8.40
命中缓存:0.21
那么这个模型的倍率就是:
模型倍率:2.10 / 2 = 1.05
模型补全倍率:8.4 / 2.1 = 4
提示缓存倍率:0.21 / 2.1 = 0.1

设置完成后再次点击设置

我们去操练场对话一下试试

第七步:设置我们的APIKEY应用到我们的程序
设置
令牌


接入我们的程序,
我提供给大家使用的程序
https://lobe.cli.hallucodex.com 直接放入我们的URL和KEY
注意:有的程序需要在后面加 /v1 有的程序不需要。



对话完成后,我们可以返回
NewAPI中查看调用记录

完整流程测试完成
国内模型大多数兼容OpenAI格式,可以使用OpenAI的格式直接调用。
第八步:购买域名并设置域名
推荐使用国外域名厂商
https://www.spaceship.com/zh/domains/ 支持支付宝支付



添加一条
A记录,然后IP选择我们服务器的公网IP地址

创建一个
API用于我们的1Panel设置DNS账户使用https://www.spaceship.com/zh/application/api-manager/ 创建好之后 记得保存,只会显示一次

在 1Panel 中设置DNS账户

创建 Acme 账户,填入邮箱就好

创建网站
域名:填写与你A记录一致的前缀
代理地址:127.0.0.1:3000
3000 是NewAPI端口,如果你改了,就换成你改过的。

申请证书

网站套用证书开启HTTPS

使用域名调用API


第九步:优化NewAPI充值以及分组使用体验(自用可以不用往下看了)
设置域名与充值比率
充值建议 1:1,最后以分组倍率成算结算,已是迄今为止最为方便管理的方法

设置分组倍率
如果你购买的API是 7¥ = 1$ 那么你的渠道就可以设置
"渠道名称": 7,然后将你的渠道设置为此分组,如需使用这个价格的渠道, 你的令牌就必须选择此分组才可使用。如果你购买的API是 3¥ = 1$ 那么你的渠道 就可以设置
"渠道名称": 3,然后将你的渠道设置为此分组,如需使用这个价格的渠道, 你的令牌就必须选择此分组才可使用。

剩余的功能可以自行摸索,都比较简单,大家多摸索就好了。