feat: optimize rag

This commit is contained in:
Hk-Gosuto
2024-07-07 15:41:58 +08:00
parent f260f11755
commit 712022d8c7
19 changed files with 332 additions and 176 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@@ -1,25 +1,24 @@
# RAG 功能配置说明
> [!WARNING]
> 该功能目前在预览阶段,可能会有较多的问题,请在仔细阅读本文档后再使用。
> 新版本将向量库从 qdrant 变更为 supabase请注意相关参数变更
## 效果图
![example](./images/rag-example.jpg)
![image-20240707152914436](C:\project\github\ChatGPT-Next-Web-LangChain\docs\images\rag-example-2.jpg)
## 原理
以下为早期实现原理,部分逻辑与最新版本存在差异,仅供参考
![example](./images/rag.png)
## 已知问题
## 使用须知
- 由于接口中使用 nodejs 运行时,在 vercel 环境下接口可能会超时,建议使用 docker 部署
- 已开启的插件可能会影响到数据检索,可以关闭部分插件后再使
- 由于其他插件会影响到模型对 RAG 检索插件的调用,所以目前的做法是上传文件后默认只保留 RAG 插件的开启,其他插件将被禁
- 已创建的向量数据不会删除
- 同一聊天窗口内即使“清除聊天”也可以访问已经上传的文件内容
- RAG 插件需要一定的话术来让模型触发查询
- 上传文件部分的 UI 交互可能会变更
- 暂不支持文档总结
## 支持的文件类型
@@ -34,9 +33,9 @@
## 配置
1. 登录 https://cloud.qdrant.io 并创建一个账户
2. 在控制面板中创建一个 Cluster
3. 获取 Cluster 的 Cluster URL 和 API Key
1. 登录 https://supabase.com 并创建一个账户
2. 在控制面板中创建一个项目
3. `Project Settings` `API Settings` 中获取 `URL``service_role secret`
4. 完善下面的环境变量配置后即可使用
## 环境变量
@@ -45,13 +44,13 @@
如果你想启用 RAG 功能,将此环境变量设置为 1 即可。
### `QDRANT_URL`
### `SUPABASE_URL`
qdrant 服务的 Cluster URL
supabase 项目 url
### `QDRANT_API_KEY`
### `SUPABASE_PRIVATE_KEY`
qdrant 服务的 ApiKey
supabase 项目 service_role secret
### `RAG_CHUNK_SIZE` (可选)
@@ -69,6 +68,15 @@ qdrant 服务的 ApiKey。
向量化时使用的向量模型默认text-embedding-3-large。
可选项:
- text-embedding-3-small
- text-embedding-3-large
- text-embedding-ada-002
- text-embedding-ada-002
### `OLLAMA_BASE_URL` (可选)
新增支持 ollama embedding 模型支持。
此处配置为 ollama 服务地址http://localhost:11434
配置后请修改参数 `RAG_EMBEDDING_MODEL` 为 ollama 的 embedding 模型名。