了解过大模型的玩家都知道,我们使用的大部分 AI 工具只支持标准格式的 OpenAI API ,比如划词翻译、chatGPTNext等等。
虽然国内大模型宣称兼容 OpenAI 的接口,但是由于开发团队的不同,导致提供商提供的 API 接口并不一致,无法进行适配。
而今天要介绍的这款工具可以完美解决这个问题,通过这个项目可以把各大模型提供商所有的免费模型全部接入群晖,并转为标准 OpenAI 格式供他人使用。
你还不知道国内外提供商也有免费大模型供用户使用,这个项目也详细的帮我们整理罗列了出来!
项目地址
https://github.com/fruitbars/simple-one-api
介绍
Simple-One-API 项目旨在解决 one-api 过于复杂的问题,去掉了统计、流量、计费等功能,通过兼容多种大模型接口,并统一对外提供 OpenAI 接口,使用户可以方便地集成和调用多种大模型。
功能
- 支持配置多个模型,可以随机负载均衡
- 支持一个模型可配置多个
api_key
,并且可以随机负载均衡 - 支持设置一个对外总
api_key
- 支持
random
模型,后台自动寻找配置的可用的模型 - 支持模型名称重定向设置模型设置别名
- 支持全局设置模型名称重定向,并且支持all模式全部重定向
- 支持每一种模型服务设置服务的地址
- 兼容支持OpenAI的接口,同时支持/v1和/v1/chat/completions两种路径
- 对于不支持system的模型,simple-one-api会放到第一个prompt中直接兼容(更加统一,例如沉浸式翻译中如果system,不支持system的模型也能正常调用)
- 支持全局代理模式
- 支持每个service设置qps或qpm或者concurrency
- 支持
/v1/models
和/v1/models/:model
接口
免费模型申请
因为 Simple-One-API 可接入的模型过多,所以下面以讯飞 Spark 模型和扣子为例,其他的可以参考项目文档,有详细的说明。
讯飞
打开 https://xinghuo.xfyun.cn/sparkapi 进行注册,完成实名认证。
创建一个应用。
点击左侧星火认知大模型 -> Spark Lite 就可以领取无限量的 token。(只有Spark Lite才可以免费无限量使用)
接着把右侧的 APPID、APISecret、APIKey 复制保存下来供后面使用。
扣子
登录扣子 https://www.coze.cn/open/oauth/pats 创建个人令牌。
复制并保存 Secret token。
在扣子首页创建一个新的Bot。
复制保存Bot后面的一串数字,如下图738803xxxxxxxxxxx730
选择好模型后,点击发布。
勾选 Bot as API。
安装
打开群晖后台,在【File Station】套件中创建simpleOneAPI
文件夹来存放配置数据。
把下面的代码保存为config.json
文件。把 xinghuo 下的 appid、api_key、api_secret 设置为前面申请的讯飞相关密钥,把 cozecn 下的 models 设置为738803xxxxxxxxxxx730
,token为前面保存的 Secret token。
{ "debug": false, "load_balancing": "random", "services": { "xinghuo": [ { "models": ["spark-lite", "spark3.5-max"], "enabled": true, "credentials": { "appid": "xxx", "api_key": "xxx", "api_secret": "xxx" } } ], "cozecn": [ { "models": ["xxx"], "enabled": true, "credentials": { "token": "xxx" } } ] } }
再上传到simpleOneAPI
文件夹中。
点击文件属性,复制config.json
的文件夹路径。
保存下面的代码,把/path/to/config.json
替换为config.json
的文件夹路径。
version: '3.8' services: simple-one-api: image: fruitbars/simple-one-api container_name: simple-one-api ports: - "9090:9090" volumes: - /path/to/config.json:/app/config.json restart: unless-stopped
把文件保存为docker-compose.yml
文件,并上传到simpleOneAPI
文件夹。
打开群晖【Container Manager】,新增一个项目,路径选择刚刚创建的文件夹,并使用前面创建好的 docker-compose 文件。
等待项目启动完毕。
测试
最后找一款 API 测试工具。输入【群晖地址:9090/v1/chat/completions】,需要注意 body 体中的model
要与config.json
文件的 models 相对应。
如果没有 API 调试工具,也可以使用划词翻译等软件,只需配置 model 为config.json
文件中含有的类型,并把地址设置为群晖的地址即可。
后记
讯飞的 API 我自己尝试了多次都无法成功,一直提示websocket: bad handshake
,不知道是作者没适配还是其他什么原因,不过扣子是可以的。
如果想要在外网访问,可以直接使用 Nginx Proxy Manager 或其他反代工具反代 9090 端口,这样就可以通过域名访问在外网访问群晖搭建的接口服务了。
我是老宁
一个热爱技术的程序员和极客,群晖NAS深度玩家!
专注NAS相关技术分享,原创!干货!
觉得老宁的文章对你有帮助,记得点赞、收藏、加关注!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,