mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-30 12:25:29 +08:00
doc: 移动 实践案例 到独立的一级目录
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
# 在 QChatGPT 上接入 Dify(NewAPI 中转方案)
|
||||
|
||||
::: info
|
||||
本文由社区贡献者编写。
|
||||
:::
|
||||
|
||||
[Dify](https://dify.ai/) 是一个开源的 AI 应用开发平台,支持多种 AI 模型和丰富的插件,用于快速搭建 AI Agent、Workflow 等应用。通过中间件,我们可以在 QChatGPT 上使用 Dify 功能。
|
||||
|
||||
::: warning
|
||||
本教程使用的为 Linux 系统且已配置好 QChatGPT 的消息平台为前提,如您完全没有听说过 Linux 或者没有听说过 Debian 请不要使用此教程。如 QChatGPT 没部署,请先配置好 QChatGPT 再来参考此教程。
|
||||
:::
|
||||
|
||||
## 安装并配置 Docker
|
||||
|
||||
Dify 推荐使用 Docker 安装,如果你已经使用 Docker 启动 QChatGPT,那么你可以跳过此步骤。
|
||||
|
||||
```bash
|
||||
# Debian使用:
|
||||
apt update
|
||||
apt install -y docker docker-compose-plugin
|
||||
# ubuntu使用:
|
||||
apt update
|
||||
apt install -y docker docker-compose-v2
|
||||
```
|
||||
|
||||
国内封禁了 docker 的镜像站,但是正常情况下又无法使用官方镜像站,因此需要修改为目前可用的镜像站 https://docker.1panel.live
|
||||
|
||||
使用 vim 编辑器编辑 `/etc/docker/daemon.json` 文件
|
||||
|
||||
```bash
|
||||
vim /etc/docker/daemon.json
|
||||
```
|
||||
|
||||
里面应该是空的
|
||||
然后按“I”键进入编辑模式将下方内容粘贴进去
|
||||
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": ["https://docker.1panel.live"]
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
然后按 `Esc` 键退出编辑模式,输入 `:wq` 保存并退出。
|
||||
|
||||
重启 docker 服务
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
使用 `docker info` 检查是否更换成功
|
||||
|
||||

|
||||
|
||||
## 安装并配置 Dify
|
||||
|
||||
首先安装 git
|
||||
|
||||
```bash
|
||||
apt install -y git
|
||||
```
|
||||
|
||||
使用 git 拉取 dify 源码,进入 Docker 目录
|
||||
|
||||
```bash
|
||||
git clone https://github.com/langgenius/dify.git
|
||||
cd dify/docker
|
||||
```
|
||||
|
||||
复制环境配置文件并启动
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||

|
||||
|
||||
时间较长,耐心等待。
|
||||
|
||||
等待容器全部运行成功之后,大概等2-3分钟之后,使用浏览器进入 `http://你的服务器地址` 进行首次初始化。
|
||||
|
||||
设置管理员账号邮箱和密码,设置完成后进入 dify。
|
||||
|
||||
点击左上角的用户,找到设置并点击
|
||||
|
||||

|
||||
|
||||
然后点击`模型供应商`
|
||||
|
||||

|
||||
|
||||
这里我已经根据自己需求添加好了。
|
||||
|
||||
前往工作室→创建空白应用,选择`聊天助手`
|
||||
|
||||
> 基础编排:可实现较少,但配置简单
|
||||
> 工作流编排:可基于工作流程实现复杂功能,但配置难,不适合新手
|
||||
>
|
||||
> 根据自身选择。
|
||||
|
||||

|
||||
|
||||
填写名称等基本信息,点击创建
|
||||
|
||||

|
||||
|
||||
右上角选择模型。
|
||||
设置完成后点击右上角的发布→更新。进行更新,如不更新则无法使用
|
||||
|
||||

|
||||
|
||||
然后点击访问api,点击右上角API密钥→创建密钥 复制生成的密钥内容
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Dify配置部分结束。
|
||||
|
||||
## 部署中间件 NewAPI
|
||||
|
||||
Dify 的 api 并不是使用的 openai api 的标准,因此需要使用中转。
|
||||
|
||||
使用的是 [new-api](https://github.com/Calcium-Ion/new-api)。
|
||||
|
||||
安装 wget
|
||||
|
||||
```bash
|
||||
apt install -y wget
|
||||
```
|
||||
|
||||
在~目录下新建目录存放new-api
|
||||
|
||||
```bash
|
||||
mkdir ~/new-api
|
||||
```
|
||||
|
||||
下载New-api
|
||||
|
||||
```bash
|
||||
cd new-api
|
||||
```
|
||||
|
||||
arm64使用:
|
||||
|
||||
```bash
|
||||
wget https://github.com/Calcium-Ion/new-api/releases/download/v0.2.9.7/one-api-arm64
|
||||
```
|
||||
|
||||
x86/64使用:
|
||||
|
||||
```bash
|
||||
wget https://github.com/Calcium-Ion/new-api/releases/download/v0.2.9.7/one-api
|
||||
```
|
||||
|
||||
(arm64一般为开发板,如你不知道什么是开发板或者不知道arm64则直接使用X86/64)
|
||||
|
||||
安装screen作为进程管理
|
||||
|
||||
```bash
|
||||
apt install -y screen
|
||||
```
|
||||
|
||||
使用
|
||||
|
||||
```bash
|
||||
screen -R 名称
|
||||
```
|
||||
|
||||
新建,如果存在相同名称则进入
|
||||
|
||||
```bash
|
||||
cd ~/new-api
|
||||
```
|
||||
|
||||
添加权限
|
||||
|
||||
```bash
|
||||
chmod 775 new-api
|
||||
```
|
||||
|
||||
运行new-api
|
||||
|
||||
```bash
|
||||
./new-api
|
||||
```
|
||||
|
||||
等待运行完成
|
||||
|
||||
```bash
|
||||
Ctrl+a+d
|
||||
```
|
||||
|
||||
退出当前窗口(后台运行)
|
||||
|
||||
使用浏览器进入:
|
||||
|
||||
```bash
|
||||
http://你的服务器地址:3000/
|
||||
```
|
||||
|
||||
默认用户名:root
|
||||
默认密码:123456
|
||||
|
||||
登录成功之后前往
|
||||
`用户管理→编辑→密码`
|
||||
修改root密码。
|
||||
修改完毕后点击
|
||||
`渠道→添加渠道`
|
||||
|
||||

|
||||
|
||||
类型处选择 dify,填写名称,点击 填入相关模型
|
||||
填写密钥,密钥为在dify配置中生成的密钥内容。
|
||||
|
||||

|
||||
|
||||
前往new-api的令牌页,点击添加令牌,根据提示信息填写基本信息 名称,过期信息及额度根据自身需要决定是否设置。
|
||||
|
||||

|
||||
|
||||
点击提交后,找到新建的令牌,将鼠标移动至`查看`并复制出现的 sk- 开头内容。
|
||||
|
||||
new-api基本配置完成其余内容自行根据需要配置。
|
||||
|
||||
## 配置 QChatGPT
|
||||
|
||||
使用 OpenAI provider,将 NewAPI 的 地址作为 API 地址,将 NewAPI 的 key 作为 API Key。
|
||||
|
||||

|
||||
|
||||
重启 QChatGPT 项目,接入 dify 已完成。
|
||||
@@ -0,0 +1,74 @@
|
||||
# 在 QChatGPT 上接入 OneAPI、LinkAI 等第三方 OpenAI 格式接口
|
||||
|
||||
::: info
|
||||
转载自:[https://rockchin.top/?p=295](https://rockchin.top/?p=295)
|
||||
:::
|
||||
|
||||
自从 OneAPI 流行之后,各种“牛鬼蛇神”模型都能以 OpenAI 的格式访问了,还有中转站也开始流行,OpenAI 的格式也成为了 AI App 平台等各种 AI 工具的访问格式,本文介绍如何将上述的支持 OpenAI 格式的接口接入 QChatGPT。
|
||||
|
||||
首先我们先按照 QChatGPT 的文档,部署好 消息平台、QChatGPT 主程序,并将其连接上,进行到 provider.json 配置这一步时,看此文档。
|
||||
|
||||
以下我们不再区分 LinkAI、OneAPI、中转站,统一以 OneAPI接口 代指 第三方OpenAI接口。
|
||||
|
||||
## 获取 OneAPI 接口地址和访问密钥
|
||||
|
||||
::: warning
|
||||
自己部署的 OneAPI 需要先设置渠道,具体请看 OneAPI 文档。配置好后再获取密钥。
|
||||
:::
|
||||
|
||||
以 OneAPI 为例,如果你把 OneAPI 部署在本地,使用 8080端口,那么接口地址就是 http://127.0.0.1:8080/v1
|
||||
|
||||
其他的请看其文档或咨询中转站负责人,总之一般来说地址后面都是需要加 /v1 的。
|
||||
|
||||
访问密钥,以 OneAPI 为例,去 “令牌” 页创建一个新的 key
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
回到令牌页点击复制,即可获取到 api key。
|
||||
|
||||
其他的中转站请看其文档或咨询负责人。
|
||||
|
||||
## 填写到 QChatGPT 配置文件
|
||||
|
||||
修改 data/config/provider.json 中的 provider 配置,使用 openai-chat-completions 请求器:
|
||||
|
||||

|
||||
|
||||
把你刚刚的地址填写到图中显示位置的 base-url 中,本例是我的 OneAPI 站(自用)。
|
||||
|
||||
接着把你刚刚的密钥填写到 keys 的 openai 组中:
|
||||
|
||||

|
||||
|
||||
请注意符合 JSON 语法。
|
||||
|
||||
最后配置所使用的模型,填写你 OneAPI 上提供的模型名称。
|
||||
|
||||

|
||||
|
||||
|
||||
注意,可用的模型名称已经预设了一些在 data/metadata/llm-models.json 元数据里,如果你使用的模型没有相应的元数据,需要自己添加。
|
||||
|
||||
## 添加不在预设中的模型
|
||||
|
||||
查看 data/metadata/llm-models.json 中 list 字段所有的元素,若没有任何元素的 name 是你要使用的模型名称,或其对应的 requester、token_mgr 不是 openai-chat-completions、openai,则需要添加。
|
||||
|
||||
参考 元数据配置,本例中我们添加的模型 requester 设置为 openai-chat-completions ,token_mgr 设置为 openai,例如:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "qwen",
|
||||
"requester": "openai-chat-completions",
|
||||
"token_mgr": "openai",
|
||||
"tool_call_supported": false,
|
||||
"vision_supported": false
|
||||
},
|
||||
```
|
||||
|
||||
name 为你的模型名称,对应 OneAPI 提供的模型名称,对应 上述 model 字段填写的值。
|
||||
|
||||
tool_call_supported:是否支持使用工具,根据实际模型情况设置
|
||||
|
||||
vision_supported:是否支持视觉,根据实际模型情况设置
|
||||
Reference in New Issue
Block a user