今天推荐的这个系统,是一个OpenAI的接口管理分发系统,我看了代码全开源,可用于二次分发管理key,可以花钱购买key,已经打包好Docker,可以一键安装,
不过我不是用key安装的,下面我说一下我的安装方式。
开发环境
go 语言
mysql 5.5以上
redis
node 环境,需要安装 pm2对进程管理。
演示截图
功能支持
OpenAI 官方通道
自定义渠道:例如各种未收录的第三方代理服务
支持通过负载均衡的方式访问多个渠道。
支持 stream 模式,可以通过流式传输实现打字机效果。
支持多机部署
支持令牌管理,设置令牌的过期时间和额度。
支持兑换码管理,支持批量生成和导出兑换码,可使用兑换码为账户进行充值。
支持通道管理,批量创建通道。
支持用户分组以及渠道分组,支持为不同分组设置不同的倍率。
支持渠道设置模型列表。
支持查看额度明细。
支持用户邀请奖励。
支持以美元为单位显示额度。
支持发布公告,设置充值链接,设置新用户初始额度。
支持模型映射,重定向用户的请求模型。
支持失败自动重试。
支持绘图接口。
支持丰富的自定义设置,
支持自定义系统名称,logo 以及页脚。
支持自定义首页和关于页面,可以选择使用 HTML & Markdown 代码进行自定义,或者使用一个单独的网页通过 iframe 嵌入。
支持通过系统访问令牌访问管理 API。
支持 Cloudflare Turnstile 用户校验。
支持用户管理,支持多种用户登录注册方式
搭建方式
我这里选用的是nginx的搭建方式,首先下载项目到服务器的项目目录下,然后执行一下命令
# 构建前端
cd one-api/web
npm install
npm run build
# 构建后端
cd ..
go mod download
go build -ldflags "-s -w" -o one-api
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs #启动命令
启动后访问 http://127.0.0.1:3000 即可登录,初始登录用户名:root , 密码:123456
部署环境变量
REDIS_CONN_STRING:设置之后将使用 Redis 作为请求频率限制的存储,而非使用内存存储。
例子:REDIS_CONN_STRING=redis://default:redispw@localhost:49153
SQL_DSN:设置之后将使用指定数据库而非 SQLite,请使用 MySQL 8.0 版本。
例子:SQL_DSN=root:123456@tcp(localhost:3306)/oneapi
注意需要提前建立数据库 oneapi,无需手动建表,程序将自动建表。
目前我只部署了这两个,一个是 redis,一个是 mysql 将数据写入数据库中。
PM2安装
yarn global add pm2
安装后在项目目录生成启动文件 pm2 init simple,之后会生成 ecosystem.config.js 配置文件,修改为以下内容。
module.exports = {
apps : [{
name : "one-api",
script : "./one-api --port 3000 --log-dir ./logs",
watch: true
}]
}
启动:pm2 start ecosystem.config.js
停止:pm2 stop ecosystem.config.js
至此整个项目即可启动起来。