one-api是一款OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用。
基于One API的二次开发版本,支持Midjourney,仅供个人管理渠道使用,请勿用于商业API分发!区别在于在one-api二开优化的版本,本项目为个人学习使用,不保证稳定性,且不提供任何技术支持。
安装也非常简单,主要用于系统的API中转使用,如本站MJ中转接口网址 https://mj.cxhao.com GPT4.0中转接口网站 https://api.cxhao.com,比如你安装了本系统也可通过这两网址再中转到你的系统使用,省去了自建API渠道接口过程,你也要以自行对接OPENAI官方或者MJ官方及国内的大模型如百度文心 星火等模型。
演示网址:https://mj.cxhao.com
安装的同时也教大家如何搭建自己的中转接口网址,同时教大家使用如何二次中转调用,后面也出一期如何搭建自己的midjourney-proxy中转平台配合分发系统使用
安装教程:
1、执行前先建好自己的数据库,下方执行中的root:123456为数据库用户名和密码
2、宝塔开放3000端口
3、执行以下命令
# 使用 SQLite 的部署命令:
docker run --name new-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /www/wwwroot/new-api:/data calciumion/new-api:latest
# 使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数。
# 例如:
# 注意:数据库要开启远程访问,并且只允许服务器IP访问
------------------------------------------------------------------------------------
# 例如执行以下命令(注意修改数据用户名和密码):
docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(宝塔的服务器地址:宝塔数据库端口)/宝塔数据库名称" -e TZ=Asia/Shanghai -v /www/wwwroot/new-api:/data calciumion/new-api:latest
如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的
1 | justsong/one-api |
替换为
1 | ghcr.io/songquanpeng/one-api |
即可。
更新命令:
1 | docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR |
4、执行命令后docker管理器查看是否启动,这里因为原来安装过现在是停止状态,重执行 docker start one-api(后面为对应ID名称)后启动正常
5、新建网址,建立反代,端口注意是3000
两个版本区别在于原版菜单在上,二开版菜单在左边
6、建好以后就能正常访问,用户名root 密码123456
页头页脚和首页修改
首页支持HTML代码,如果不会可到微信编辑器编辑一段好看的图文自己加上
下面是如何使用二次中转教程,很简单新建渠道时,只需要把要中转的网址填上,也可使用第三方的网址
可使用如本站MJ中转接口网址 https://mj.cxhao.com
GPT4.0+MJ中转接口网站 https://api.cxhao.com
然后把充值的费率修改一下即可使用
该系统为支持多种大模型:
OpenAI ChatGPT 系列模型(支持 Azure OpenAI API)
Anthropic Claude 系列模型
Google PaLM2/Gemini 系列模型
Mistral 系列模型
百度文心一言系列模型
阿里通义千问系列模型
讯飞星火认知大模型
智谱 ChatGLM 系列模型
360 智脑
腾讯混元大模型
Moonshot AI
百川大模型
字节云雀大模型 (WIP)
MINIMAX
Groq
Ollama
零一万物
支持配置镜像以及众多第三方代理服务。
支持通过负载均衡的方式访问多个渠道。
支持 stream 模式,可以通过流式传输实现打字机效果。
支持多机部署,详见此处。
支持令牌管理,设置令牌的过期时间和额度。
支持兑换码管理,支持批量生成和导出兑换码,可使用兑换码为账户进行充值。
支持渠道管理,批量创建渠道。
支持用户分组以及渠道分组,支持为不同分组设置不同的倍率。
支持渠道设置模型列表。
支持查看额度明细。
支持用户邀请奖励。
支持以美元为单位显示额度。
支持发布公告,设置充值链接,设置新用户初始额度。
支持模型映射,重定向用户的请求模型,如无必要请不要设置,设置之后会导致请求体被重新构造而非直接透传,会导致部分还未正式支持的字段无法传递成功。
支持失败自动重试。
支持绘图接口。
支持 Cloudflare AI Gateway,渠道设置的代理部分填写 https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai 即可。
支持丰富的自定义设置,
支持自定义系统名称,logo 以及页脚。
支持自定义首页和关于页面,可以选择使用 HTML & Markdown 代码进行自定义,或者使用一个单独的网页通过 iframe 嵌入。
支持通过系统访问令牌调用管理 API,进而在无需二开的情况下扩展和自定义 One API 的功能,详情请参考此处 API 文档。。
支持 Cloudflare Turnstile 用户校验。
支持用户管理,支持多种用户登录注册方式:
邮箱登录注册(支持注册邮箱白名单)以及通过邮箱进行密码重置。
GitHub 开放授权。
微信公众号授权(需要额外部署 WeChat Server)。
支持主题切换,设置环境变量 THEME 即可,默认为 default,欢迎 PR 更多主题,具体参考此处。
配合 Message Pusher 可将报警信息推送到多种 App 上。
此分叉版本的主要变更如下:
全新的UI界面(部分界面还待更新)
添加Midjourney-Proxy(Plus)接口的支持,对接文档,支持的接口如下:
/mj/submit/imagine
/mj/submit/change
/mj/submit/blend
/mj/submit/describe
/mj/image/{id} (通过此接口获取图片,请必须在系统设置中填写服务器地址!!)
/mj/task/{id}/fetch (此接口返回的图片地址为经过One API转发的地址)
/task/list-by-condition
/mj/submit/action (仅midjourney-proxy-plus支持,下同)
/mj/submit/modal
/mj/submit/shorten
/mj/task/{id}/image-seed
/mj/insight-face/swap (InsightFace)
支持在线充值功能,可在系统设置中设置,当前支持的支付接口:
易支付
支持用key查询使用额度:
配合项目neko-api-key-tool可实现用key查询使用
渠道显示已使用额度,支持指定组织访问
分页支持选择每页显示数量
兼容原版One API的数据库,可直接使用原版数据库(one-api.db)
支持模型按次数收费,可在 系统设置-运营设置 中设置
支持渠道加权随机
数据看板
可设置令牌能调用的模型
支持Telegram授权登录。
系统设置-配置登录注册-允许通过Telegram登录
对@Botfather输入指令/setdomain
选择你的bot,然后输入http(s)://你的网站地址/loginTelegram Bot 名称是bot username 去掉@后的字符串
此版本额外支持以下模型:
第三方模型 gps (gpt-4-gizmo-*)
智谱glm-4v,glm-4v识图
Anthropic Claude 3 (claude-3-opus-20240229, claude-3-sonnet-20240229)
Ollama,添加渠道时,密钥可以随便填写,默认的请求地址是http://localhost:11434,如果需要修改请在渠道中修改
Midjourney-Proxy(Plus)接口,对接文档
零一万物
您可以在渠道中添加自定义模型gpt-4-gizmo-*,此模型并非OpenAI官方模型,而是第三方模型,使用官方key无法调用。
渠道重试功能已经实现,可以在渠道管理中设置重试次数,需要开启缓存功能,否则只会使用同优先级重试。
如果开启了缓存功能,第一次重试使用同优先级,第二次重试使用下一个优先级,以此类推。
缓存设置方法
REDIS_CONN_STRING:设置之后将使用 Redis 作为缓存使用。
例子:REDIS_CONN_STRING=redis://default:redispw@localhost:49153
MEMORY_CACHE_ENABLED:启用内存缓存(如果设置了REDIS_CONN_STRING,则无需手动设置),会导致用户额度的更新存在一定的延迟,可选值为 true 和 false,未设置则默认为 false。
例子:MEMORY_CACHE_ENABLED=true
评论(0)