在NextChat中通过OneAPI使用SiliconCloud API

本文介绍了如何利用 SiliconFlow 送出的丰厚 token 福利,部属自己的大语言模型前端到 NAS 上,从而组建个人的 AI 小站。

嘿,各位编程界的小伙伴们,是不是觉得现在的大模型让你的工作轻松不少?甚至还能渗入我们的日常生活,变为智能助手,帮咱们搞定那些繁琐的小任务?比如写好评写到词穷、写英语作业输给自家宝贝、或是要开学了突然想起来还欠学校一篇作文(嗯,这个真不行,诚信第一嘛)。既然技术已经这么给力,不来个全家共享的智能小站岂不是可惜?

但话说回来,要想搭建这“神器”,咱还得考虑成本、稳定性和易用性。经过一番摸索,从阿里云函数到飞书机器人,再到各种第三方服务,结果要么钱包遭罪,要么体验打折。正当愁眉不展之际,618大促横空出世,朋友圈里飘来一线生机——硅基流动慷慨解囊,3亿 token 等着被领走 !简直是技术宅春天里的小确幸啊。(以实际当时的活动为准)

话不多说,直接动手,我按照下面的架构图,把 ChatBot 搭载到了个人的 NAS 上,并支持从公网访问,体验感直接拉满:

实际使用效果为:

第一步:趁羊毛未被薅秃,速速上车注册

既然决定要搭这趟技术快车,那么首要任务就是注册硅基流动账号。想象一下,你是在为全家的智慧生活打地基呢!跟着流程走,轻轻松松几步,你就在羊毛大军中占了一席之地。

进入 SiliconCloud 落地页,并点击右侧的“登录”进入,保存好生成的 api-key:

第二步:OneApi:让 API 飞一会儿

OneApi 是一个可以做 api 管理、派发及账户计费等功能的开源项目,并且拥有非常方便的前端来修改配置。

下面以群晖 docker 部属的方式为例,不用 NAS 的同学可以直接本地 docker 部属或从源码构建部属。

2.1 部属服务

  1. 在群晖的 docker 套件里点击"注册表"选项卡,搜索"one-api",点 star 数最多的那个下载镜像即可:

  1. 在“映像”选项卡里,双击启动容器,然后进行一系列启动参数的配置:
  1. “网络设置”里使用 bridge 模式,避免和其他服务出现端口冲突,后面我们手动做一次端口转发就行。
  2. “常规设置”里看需要勾选“启动自动重新启动”选项。
  3. “端口设置”中本地端口填入自己喜欢的 host 端口,我这里填入 8887。如果是本地 docker 部属的话,需要加一个 -p 8887:3000 ,是一样的意思。(OneApi 默认的 web 管理页是 3000 端口)
  4. 然后一路“下一步”,点完成,启动容器即可。
  1. 浏览器访问管理页:群晖用户访问 <qunhui_ip>:8887 ,本地 docker 部属用户访问 127.0.0.1:8887 。(我这里群晖的 ip 是 192.168.200.4),显示出以下页面即表示成功:

  1. 默认用户名是 root ,密码是 123456 ,进去后自己改密码哦~

2.2 配置api

  1. 上面已经部属好 OneApi 的服务,接下来要配置 api 渠道,使它和 SiliconFlowCloud 打通:
  1. 依次点击:渠道-添加新的渠道
  2. 在类型中选项 OpenAI(因为 SiliconFlowCloud 兼容OpenAI,直接这么选方便很多)
  3. 名称可以自己起一个,没什么大用。
  4. 分组如果没有特别需求的话,可以不管,用默认的 “default” 就行。
  5. “模型”一栏是关键,需要按 SiliconFlowCloud 文档中的说明,写入自己想接入的模型,我的配置为(我这里为了清晰,把硅基流动的模型前都加了个 siliconflow/ 的前缀以做区分,并在“模型重定向”里做了映射):
  6. 密钥填入上一步在 SiliconFlowCloud 中获取的密钥。
  7. 代理填入:https://api.siliconflow.cn ,因为这里并不是真的向 OpenAI 发请求,需要填入 SiliconFlow 的 api 地址。

  1. 提交后点击测试,它会按配置发一个简单的请求,配置正确会显示为:

至此,OneApi 到 SiliconFlowCloud 的链路打通了,但根据架构图,还要有一个向 NextChat 的链路。依次点击令牌-添加新的令牌,复制一下这个令牌的 key 即可(这个就是构架图中的 one-api-key)。

第三步:部署 ChatGPT-Next-Web

最后,为了让全家都能享受到这份智能福利,ChatGPT-Next-Web 作为一个优秀的 ChatBot 前端,我们赶紧也接进来:

  1. 群晖用户打开 docker 套件,在注册表选项卡中搜索 chatgpt-next-web ,下载 star 数最多的镜像:

  1. 镜像选项卡中找到刚刚下载的镜像,双击打开容器配置,做以下配置:
  1. “网络配置”仍然使用桥接模式。
  2. “常规设置”里看需要勾选“启动自动重新启动”选项。然后点击“高级设置”,配置一些环境变量:
  3. CODE 表示密码,强烈建议设置,避免被人偷 token 哦。
  4. CUSTOM_MODELS 是最关键的一个,按上面配置的话,填入 -all,+siliconflow/alibaba/Qwen1.5-110B-Chat,siliconflow/mixtralai/Mixtral-8x22B-Instruct-v0.1,siliconflow/meta/llama3-70B-chat,siliconflow/deepseek-ai/deepseek-v2-chat,siliconflow/zhipuai/glm4-9B-chat
  表示先移除所有 NextChat 自己的模型列,再加入上面我们在 OneApi 里配置的模型。总体配置为:

  1. “端口设置”中本地端口填入自己喜欢的 host 端口,我这里填入 8888。如果是本地docker 部属的话,需要加一个 -p 8888:3000 ,是一样的意思。(NextChat 默认的 web 页也是 3000 端口,你说巧不巧,要是网络用 host 模式就冲突了)
  2. 最后一路“下一步”过去,启动容器即可。
  3. 群晖用户浏览器打开 http://192.168.200.4:8888 ,个人用户打开 http://127.0.0.1:8888 ,如果之前设置了密码,需要登陆一下。
  4. 选择一个模型后,尝试发送一个对话,如果正常回复了,那么恭喜你已经成功啦,享受 AI 提供的便利吧~

📘

NOTE:对于个人 docker 部属用户,在容器启动时添加:-e BASE_URL=http://192.168.200.4:8887 -e OPENAI_API_KEY=xxx 等等即可。

第四步(可选):优化使用

  1. 这里的部属已经可以做到本地/局域网使用了,如果要进一步提升体验,可以找运营商开通公网 ip,使用各家的 ddns 服务做域名解析,把 NAS、软路由上的服务放在公网随时随地访问(记得一定要改 OneApi 的默认密码和 NextChat 的密码)
  2. 可以自行添加一些面具,以适应不同的使用场景。

原文由 wyg1997 刊载于 搭建私有 AI 大模型:带着全家踏上 AI 智能之旅 ,已获得原文作者授权,转载请联系原文作者。