Skip to main content

检索增强生成 (RAG) 支持

warning

如果您使用的是 Ollama,请注意其 默认上下文长度为 2048 个 token。这会严重限制 检索增强生成 (RAG) 的性能,尤其是在进行网页搜索时,因为检索到的数据可能 完全无法使用 或只能被部分处理。

检索增强生成 (RAG) 是一种尖端技术,通过引入来自不同来源的上下文来增强聊天机器人的对话能力。它的工作原理是从广泛的来源(如本地和远程文档、网页内容,甚至是 YouTube 视频等流媒体来源)中检索相关信息。检索到的文本随后会与预定义的 RAG 模板结合,并作为前缀添加到用户的提示词中,从而提供更具参考价值且与上下文相关的响应。

RAG 的核心优势之一是它能够访问并集成来自多种来源的信息,使其成为处理复杂对话场景的理想解决方案。例如,当用户提出与特定文档或网页相关的问题时,RAG 可以从该来源检索并整合相关信息到聊天响应中。RAG 还可以从 YouTube 视频等流媒体来源检索并整合信息。通过分析这些视频的转录文本或字幕,RAG 可以提取相关信息并将其整合到聊天响应中。

本地和远程 RAG 集成​

本地文档必须首先通过工作区区域的“文档”部分上传,然后才能在查询前使用 # 符号进行访问。点击聊天框上方出现的格式化 URL。选中后,发送消息 按钮上方会出现一个文档图标,表示检索成功。

您还可以通过在提示词开头输入 # 后跟 URL,将文档加载到工作区并进行访问。这有助于将网页内容直接整合到您的对话中。

用于 RAG 的网页搜索​

warning

针对 Ollama 用户的上下文长度警告: 网页内容即使在提取后,通常也包含 4,000 到 8,000+ 个 token,其中包括主体内容、导航元素、页眉、页脚和元数据。如果只有 2048 个 token 的可用空间,您只能获取不到一半的页面内容,且往往会错过最相关的信息。即使是 4096 个 token,对于全面的网页内容分析也经常显得不足。

解决方法: 导航至 管理员面板 > 模型 > 设置(针对您的 Ollama 模型)> 高级参数,并将 上下文长度增加到 8192+(甚至 16000 以上)个 token。此设置专门适用于 Ollama 模型。对于 OpenAI 和其他集成模型,请确保您使用的是具有足够内置上下文长度的模型(例如,具有 128k token 的 GPT-4 Turbo)。

对于网页内容集成,请在聊天查询中以 # 开头,后跟目标 URL。点击聊天框上方框中出现的格式化 URL。选中后,发送消息 按钮上方会出现一个文档图标,表示检索成功。Open WebUI 会尽可能地从该 URL 获取并解析信息。

tip

网页通常包含导航和页脚等无关信息。为了获得更好的效果,请链接到页面的原始文本(raw)或阅读器友好版本。

RAG 模板自定义​

可以在 管理员面板 > 设置 > 文档 菜单中自定义 RAG 模板。

RAG 嵌入支持​

可以直接在 管理员面板 > 设置 > 文档 菜单中更改 RAG 嵌入模型。此功能支持 Ollama 和 OpenAI 模型,使您能够根据需求增强文档处理能力。

RAG 功能中的引用​

RAG 功能允许用户通过添加参考点引用,轻松跟踪提供给 LLM 的文档上下文。这确保了在聊天中使用外部来源时的透明度和可靠性。

增强型 RAG 流水线​

我们的 RAG 嵌入功能包含可切换的混合搜索子功能,通过 BM25 增强 RAG 功能,并由 CrossEncoder 提供重排序支持,同时还支持可配置的相关性评分阈值。这为您的特定用例提供了更精确、更量身定制的 RAG 体验。

YouTube RAG 流水线​

通过视频 URL 总结 YouTube 视频的专用 RAG 流水线,能够直接与视频转录文本进行顺畅交互。这一创新功能允许您将视频内容整合到聊天中,进一步丰富您的对话体验。

文档解析​

多种解析器可从本地和远程文档中提取内容。欲了解更多信息,请参阅 get_loader 函数。

临时聊天限制

使用 临时聊天 时,文档处理仅限于 前端 操作,以确保您的数据保持私密且不存储在服务器上。因此,高级后端解析(用于处理复杂 DOCX 文件等格式)将被禁用,这可能导致看到的是原始数据而非解析后的文本。如需完整的文档支持,请使用标准聊天会话。

Google Drive 集成​

当与启用了 Google Picker API 和 Google Drive API 的 Google Cloud 项目关联时,此功能允许用户直接从聊天界面访问其云端硬盘文件,并上传文档、幻灯片、表格等作为聊天的上下文。可以在 管理员面板 > 设置 > 文档 菜单中启用。必须设置 GOOGLE_DRIVE_API_KEY 和 GOOGLE_DRIVE_CLIENT_ID 环境变量才能使用。

详细步骤​

  1. 创建一个 OAuth 2.0 客户端,并将“已授权的 JavaScript 来源”和“已授权的重定向 URI”配置为您访问 Open-WebUI 实例所使用的 URL(如果有端口请包含端口)。
  2. 记录下与该 OAuth 客户端关联的“客户端 ID”。
  3. 确保为您的项目启用了 Google Drive API 和 Google Picker API。
  4. 将您的应用(项目)设置为“测试”状态,并将您的 Google Drive 电子邮件添加到“用户列表”中。
  5. 设置权限范围,包含这些 API 提供的所有内容。由于应用处于“测试”模式,Google 不需要验证即可允许应用访问有限测试用户的数据。
  6. 前往 Google Picker API 页面,点击“创建凭据”按钮。
  7. 创建一个 API 密钥,在“应用限制”下选择“网站”。然后添加您的 Open-WebUI 实例 URL,设置与第 1 步中的“已授权的 JavaScript 来源”和“已授权的重定向 URI”相同。
  8. 为该 API 密钥设置“API 限制”,使其仅能访问 Google Drive API 和 Google Picker API。
  9. 设置环境变量 GOOGLE_DRIVE_CLIENT_ID 为第 2 步中 OAuth 客户端的客户端 ID。
  10. 设置环境变量 GOOGLE_DRIVE_API_KEY 为第 7 步中生成的 API 密钥值(注意:不是第 2 步中的 OAuth 客户端密钥)。
  11. 设置 GOOGLE_REDIRECT_URI 为您的 Open-WebUI 实例 URL(如果有端口请包含端口)。
  12. 使用这三个环境变量重新启动您的 Open-WebUI 实例。
  13. 重启后,确保在 管理员面板 < 设置 < 文档 < Google Drive 下启用了 Google Drive。