💡写在前面
用过AI大模型的都知道,现在市面上的AI大模型琳琅满目,ChatGPT、Gemini、文心一言、讯飞星火、通义千问等等,不胜枚举。如何高效、便捷、统一地使用并管理它们,也成了一个新的问题。
本期介绍的开源项目One-API,就是目前比较好的解决方案。
🍓项目简介
One-API是一个轻量级的中间件,它允许你通过单一的入口点访问所有你需要的API。该项目的核心理念是抽象化API的细节,以简化集成过程并提高代码的可维护性。通过配置文件,你可以定义如何路由请求到不同的后端API,并处理响应。
简单来说,它可以把你所有AI大模型的API进行集中统一管理、分发,统一出口,并且可以进行模型的重定向,比如把讯飞星火替换成ChatGPT来使用。
更进一步的,它集成了用户管理系统,可以使用它来搭建一个分发站点,做成盈利项目。
截图展示One-API目前已支持的大模型有:
OpenAI ChatGPT 系列模型(支持 Azure OpenAI API)
Anthropic Claude 系列模型 (支持 AWS Claude)
Google PaLM2/Gemini 系列模型
Mistral 系列模型
百度文心一言系列模型
阿里通义千问系列模型
讯飞星火认知大模型
智谱 ChatGLM 系列模型
360 智脑
等等。。。
One-API更多详细介绍可以访问项目地址自行了解:https://github.com/songquanpeng/one-api
话不多说,进入正题。
🍉我的软硬件环境
群晖920+(系统版本DSM7.2)
安装环境:Docker
勤劳的双手和聪明的大脑
🚥第一步:获取AI大模型API
目前免费的API还是很多的,比如讯飞星火、通义千问、Gemini,还有一些限量免费的第三方ChatGPT项目,如GPT_API_free、free_chatgpt_api等,网上教程很多,大家可以自行探索,总的来说,只要是常见的大模型API,无论是官方的还是第三方的,无论是收费的还是免费的,One-API都支持使用。
本文教程就以讯飞星火为例,API申请地址:https://www.xfyun.cn/
🚥第二步:部署One-API
建议使用compose进行构建,便于后期维护。本文主要列举这种方法。
群晖内新建一个oneapi文件夹。(文件夹名称随意,要注意和下面的路径映射保持一致)
进入群晖Container Manager(即docker),新增项目并输入compose代码(不熟悉这一步的可以看我之前教程里的相关内容:什么?你还没用上transmission4.0?(折腾群晖系列二)
项目名称自己随意,路径设置为你前面新建的文件夹,来源选择创建docker-compose.yml。
输入以下代码:
version: '3'
services:
one-api:
image: justsong/one-api #官方镜像地址
container_name: one-api #设置自定义的项目名称
restart: always
ports:
- "13655:3000" #设置端口映射,13655可自定义
environment:
- TZ=Asia/Shanghai
volumes:
- /volume1/docker/oneapi:/data #设置数据保存路径映射
输入后的效果
点击下一步,后面设置均为默认即可,最后点击完成。
耐心等待项目自动构建完成,如果你的网络连通性不好,该过程可能会有点慢。
项目提示构建完成后,你就可以在项目和容器内看到它了。
⚠️注意事项:
如果你的并发量较大,务必设置MySQL数据库,我这里并发量较小,就不设置了。
数据保存路径映射中的/volume1/docker/oneapi设置为你前面新建的文件夹地址。
更多环境变量可以访问项目原地址自行探索。
不使用compose使用群晖docker新建容器创建项目的,注意参照上文设置好端口和数据映射路径就可以。
使用 Docker 拉取的最新镜像可能是 alpha 版本,如果追求稳定性请手动指定版本。
另附docker run代码供参考:
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
# 使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数,不清楚如何修改请参见下面环境变量一节。
# 例如:
docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
🚥第三步:设置One-API
访问192.168.1.1:13655(你自己的IP和自定义的端口),进入One-API的web页面。
初始用户名:root,密码:123456。
⚠️登录后务必修改密码。
点击渠道→点击添加新的渠道
类型选择讯飞星火认知
名称随意填,分组默认即可。
模型版本填v3.5,模型选择SparkDesk-v3.5、gpt-3.5-turbo-0125、gpt-3.5-turbo这三项。
这里要注意,你如果需要进行模型重定向,那么你所需要重定向的所有模型,都要在这里模型版本里选上。就像下图,我们不仅要选讯飞星火的模型还要选上ChatGPT的模型,因为下面要进行重定向。如果你不需要重定向,那就只选你要用的模型即可。
模型重定向可参考如下(按需使用,用不到的留空即可):
{
"gpt-3.5-turbo-0125": "SparkDesk-v3.5",
"gpt-3.5-turbo": "SparkDesk-v3.5"
}
其中,冒号前面的部分填你想要替换为的模型,后面填被替换的模型,上面这两条也就是把"SparkDesk-v3.5"替换成了"gpt-3.5-turbo-0125"和"gpt-3.5-turbo",注意替换和被替换的关系,不要弄错。再就是注意换行的逗号不要漏。
无论是替换或被替换的模型,都要在前面的模型版本选项里勾选。
⚠️这里可能需要做一下解释,前面也提到了,模型重定向的作用是,例如把讯飞星火伪装成ChatGPT。因为在大模型的使用中,有些项目仅支持部分模型,比如只支持ChatGPT而不支持讯飞星火,这样的话就可以通过模型重定向来进行伪装,使讯飞星火也可以正常使用。其他模型设置方法同上。
填写密钥,这里填写你这讯飞星火官网获取的密钥,注意格式。
讯飞星火按照如下格式输入:APPID|APISecret|APIKey
代理按需填写,例如第三方ChatGPT的API,这需要在代理中填上相应网址。
点击提交并返回。
提交完成就可以在渠道页面里看到它了,点击测试确认是否可以连通,如果不能连通要反复确认前面是否设置错误。
点击令牌→点击添加新的令牌
名称自定义,模型范围按需选择,没有特殊需要全选上即可,过期时间选永不过期,设为无限额度,点击提交。
返回令牌页面,点击复制,即可复制你的API令牌了。
在设置→系统设置里,可以维护你的外网访问地址,如何进行外网访问,可以参考我这篇教程里相关内容:手把手教你用群晖搭建属于自己的邮箱服务器(折腾群晖系列一)
是否允许新用户注册,按需勾选。
到这里,One-API就配置结束了。要注意,如果你没有设置外网访问,那么你只能在局域网内使用API。
🚥第四步:API的使用
下面简单介绍两个项目来使用你前面配置的API:
http://botgem.com/
这个项目可以通过手机App来使用大模型,支持自定义API,在设置界面配置API Key和API Server(你的One-API地址)即可使用。
https://u.tools/
uToolos里的ChatGPT.好友,支持配置私有API线路。该插件可以无限创建基于ChatGPT的Ai好友,支持Ai语音对话、Ai绘画、Ai音乐、支持openaif最新的GPT0125系列模型、支持谷歌gemini--pro模型以及完美适配第三方中转api。
uTools的使用方法请自行百度。
更多使用API的项目请自行探索,后面如果有时间我大概可能也许会出一些教程,比如AI微信客服之类的使用场景,敬请期待~~
好的,到这里整个配置已经全部完成,你可以愉快地使用它了。
希望我的教程能够帮助到你,如果你感觉有用的话,三连请走一波。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~