进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

2024-07-31 10:16:13 33点赞 351收藏 22评论

了解过大模型的玩家都知道,我们使用的大部分 AI 工具只支持标准格式的 OpenAI API ,比如划词翻译、chatGPTNext等等。

虽然国内大模型宣称兼容 OpenAI 的接口,但是由于开发团队的不同,导致提供商提供的 API 接口并不一致,无法进行适配。

而今天要介绍的这款工具可以完美解决这个问题,通过这个项目可以把各大模型提供商所有的免费模型全部接入群晖,并转为标准 OpenAI 格式供他人使用。

你还不知道国内外提供商也有免费大模型供用户使用,这个项目也详细的帮我们整理罗列了出来!

项目地址

https://github.com/fruitbars/simple-one-api

介绍

Simple-One-API 项目旨在解决 one-api 过于复杂的问题,去掉了统计、流量、计费等功能,通过兼容多种大模型接口,并统一对外提供 OpenAI 接口,使用户可以方便地集成和调用多种大模型。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

功能

  • 支持配置多个模型,可以随机负载均衡

  • 支持一个模型可配置多个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 进行注册,完成实名认证。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 创建一个应用。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 点击左侧星火认知大模型 -> Spark Lite 就可以领取无限量的 token。(只有Spark Lite才可以免费无限量使用)

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 接着把右侧的 APPID、APISecret、APIKey 复制保存下来供后面使用。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

扣子

🔻 登录扣子 https://www.coze.cn/open/oauth/pats 创建个人令牌。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 复制并保存 Secret token。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 在扣子首页创建一个新的Bot。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 复制保存Bot后面的一串数字,如下图738803xxxxxxxxxxx730

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 选择好模型后,点击发布。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 勾选 Bot as API。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

安装

🔻 打开群晖后台,在【File Station】套件中创建simpleOneAPI文件夹来存放配置数据。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 把下面的代码保存为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文件夹中。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 点击文件属性,复制config.json的文件夹路径。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 保存下面的代码,把/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文件夹。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 打开群晖【Container Manager】,新增一个项目,路径选择刚刚创建的文件夹,并使用前面创建好的 docker-compose 文件。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

🔻 等待项目启动完毕。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

测试

最后找一款 API 测试工具。输入【群晖地址:9090/v1/chat/completions】,需要注意 body 体中的model要与config.json文件的 models 相对应。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

如果没有 API 调试工具,也可以使用划词翻译等软件,只需配置 model 为config.json文件中含有的类型,并把地址设置为群晖的地址即可。

进阶玩家必备!讯飞、百度、扣子大模型全部免费接入群晖,实现大模型 API 格式统一

后记

讯飞的 API 我自己尝试了多次都无法成功,一直提示websocket: bad handshake,不知道是作者没适配还是其他什么原因,不过扣子是可以的。

如果想要在外网访问,可以直接使用 Nginx Proxy Manager 或其他反代工具反代 9090 端口,这样就可以通过域名访问在外网访问群晖搭建的接口服务了。

我是老宁

一个热爱技术的程序员和极客,群晖NAS深度玩家!

专注NAS相关技术分享,原创!干货!

觉得老宁的文章对你有帮助,记得点赞、收藏、加关注

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
22评论

  • 精彩
  • 最新
  • 请教下,“测试”这一个环节的作用,能不做吗?这一段完全看不懂

    校验提示文案

    提交
    看看搭建的服务正不正确,就是模拟发送请求

    校验提示文案

    提交
    收起所有回复
  • 请问:群晖地址:9090/v1/chat/completions 这个接口的参考是哪里呢?是来自扣子的对话API吗? 我用Postman输入示例:{
    "stream": false,
    "messages": {
    {
    "role": "user",
    "content": "你好"
    }
    },
    "model": "7xxxx"
    }

    提示:
    {
    "error": "invalid character '{' looking for beginning of object key string"
    }

    校验提示文案

    提交
  • 搞定,是没有看清Body中的[],实际请求body为:
    {
    "stream": false,
    "messages": [
    {
    "role": "user",
    "content": "你好"
    }
    ],
    "model": "74xxx"
    }

    校验提示文案

    提交
  • postman报错,啥情况啊?
    Error: write EPROTO 1005184:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:..\..\..\..\src\third_party\boringssl\src\ssl\tls_record.cc:231:

    校验提示文案

    提交
  • 大佬,这一段是什么意思啊:
    测试
    最后找一款 API 测试工具。输入【群晖地址:9090/v1/chat/completions】,需要注意 body 体中的model要与config.json文件的 models 相对应。
    没用过这样的测试工具,能不能求教怎么操作?

    校验提示文案

    提交
    postman

    校验提示文案

    提交
    收起所有回复
  • 按照大佬教程配置,最后postman测试返回 "error": "unexpected end of JSON input",不知道是哪里出错了,求助!

    校验提示文案

    提交
    看看后端日志报啥错

    校验提示文案

    提交
    2024/08/18 11:54:24 stdout 2024-08-18T03:54:24.646Z ERROR handler/openai_handler.go:118 ParseChatCompletionRequest error: unexpected end of JSON input
    2024/08/18 11:54:24 stdout 2024-08-18T03:54:24.646Z ERROR handler/openai_handler.go:106 EOF
    2024/08/18 11:54:24 stdout 2024-08-18T03:54:24.646Z ERROR handler/openai_handler.go:89 invalid authorization header format

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 大佬,是了很多次,项目构建不成功……指导一下吧谢谢
    error pulling image configuration:dornload failed after atternpts=6:dial tep 69.63.180.173:443

    校验提示文案

    提交
    去加我v

    校验提示文案

    提交
    我也一样提示,不成功

    校验提示文案

    提交
    收起所有回复
  • 绝绝子,真是好东西

    校验提示文案

    提交
  • 讯飞可用

    校验提示文案

    提交
  • 然后呢?可以干嘛?

    校验提示文案

    提交
    可以创建访问大模型的api,所有需要调用api的应用都可以用,大模型你说能干什么

    校验提示文案

    提交
    收起所有回复
  • 作者还写了一份详细的文档在飞书:去看看

    校验提示文案

    提交
  • simple-one-api能接入插头GPT吗?小白问题,看介绍没写

    校验提示文案

    提交
    插头GPT?

    校验提示文案

    提交
    chatgpt?

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
351
扫一下,分享更方便,购买更轻松