了解过大模型的玩家都知道,我们使用的大部分 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 端口,这样就可以通过域名访问在外网访问群晖搭建的接口服务了。

最后修改:2024 年 08 月 12 日
如果觉得我的文章对你有用,就给个赏~~写文章,费烟~