Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

RAG API(与文件对话)

基于 Langchain 和 FastAPI 的检索增强生成 (RAG) API,用于文档索引与检索。此 API 与 LibreChat 集成,可根据用户上传的文件提供具备上下文感知的响应。

RAG (Retrieval-Augmented Generation) API 是一个强大的工具,可与 LibreChat 集成,根据用户上传的文件提供具有上下文感知的响应。

它利用 LangChain、PostgresQL + PGVector 和 Python FastAPI 来索引并检索相关文档,从而增强对话体验。

有关更多详细信息,请参阅此处提供的配置指南:RAG API Configuration

image


目前,此功能可通过 Agents 以及自定义 endpoint、OpenAI、Azure OpenAI、Anthropic 和 Google 使用。

OpenAI Assistants 通过“检索 (Retrieval)”功能拥有其自身的 RAG 实现。点击此处了解更多信息。

尽管如此,实现对 Assistants API 的 RAG API 使用仍然很有用,因为 OpenAI 会对文件存储和“检索”(Retrieval)的使用收费,这将在未来的更新中引入。

仍然对 RAG 感到困惑? 阅读我在下方撰写的章节,其中更详细地解释了基本概念,并附带了一个有用的视频链接。

什么是 RAG?

RAG,即检索增强生成(Retrieval-Augmented Generation),是一种旨在提高大语言模型(LLMs)生成响应的质量和准确性的 AI 框架。它通过将 LLM 基于外部知识源进行锚定,从而补充模型内部的信息表示。

功能特性

  • 文档索引 (Document Indexing):RAG API 会对用户上传的文件进行索引,创建用于高效检索的嵌入 (embeddings)。
  • 语义搜索:它对索引文档执行语义搜索,根据用户的输入查找最相关的信息。
  • 上下文感知响应:通过利用检索到的信息增强用户的提示词,该 API 使 LibreChat 能够生成更准确且与上下文相关的响应。
  • 异步处理:API 支持异步操作,以提高性能和可扩展性。
  • 灵活的配置:它允许自定义各种参数,例如分块大小 (chunk size)、重叠 (overlap) 和嵌入模型 (embedding models)。

RAG 的主要优势

  1. 获取最新且可靠的事实:RAG 通过从外部知识库中检索相关事实,确保 LLM 能够获取最新且可靠的信息。
  2. 透明度与信任:用户可以访问模型的来源,从而验证生成响应的准确性并建立对系统的信任。
  3. 减少数据泄露和幻觉:通过将 LLM 基于一组外部、可验证的事实,RAG 降低了模型泄露敏感数据或生成不正确或误导性信息的可能性。
  4. 降低计算和财务成本:RAG 减少了对模型参数进行持续训练和更新的需求,从而可能降低在企业环境中运行基于 LLM 的聊天机器人的计算和财务成本。

RAG 的工作原理

RAG 由两个主要阶段组成:检索和内容生成。

  1. 检索阶段:算法从外部知识库中搜索并检索与用户提示或问题相关的信息片段。在开放域的消费者场景中,这些事实可以来自互联网上已索引的文档。在封闭域的企业场景中,通常会使用范围更窄的来源,以提高安全性和可靠性。
  2. 生成阶段:检索到的外部知识会被附加到用户的提示词中,并传递给 LLM。随后,LLM 会结合增强后的提示词及其训练数据的内部表示,为用户合成一个量身定制且引人入胜的回答。该回答可以连同其来源链接一起传递给聊天机器人。

挑战与持续研究

虽然 RAG 目前是让 LLM 基于最新、可验证的信息并降低持续再训练和更新成本的最知名工具之一,但它并不完美。一些挑战包括:

  1. 识别无法回答的问题:LLMs 需要经过明确训练,以识别其无法根据现有信息回答的问题。这可能需要在数千个可回答和不可回答问题的示例上进行微调。
  2. 改进检索与生成:当前的研究重点在于对 RAG 流程的两端进行创新:一是改进检索过程,以获取最相关的信息来提供给 LLM;二是优化这些信息的结构,从而从 LLM 中获得内容最丰富的响应。

总之,RAG 是一个强大的框架,它通过将 LLM 基于外部、可验证的知识,增强了其能力。它有助于确保回答更准确、更及时且更值得信赖,同时降低了与持续模型再训练相关的成本。随着该领域研究的进展,我们可以期待由 LLM 驱动的对话式 AI 系统在质量和效率上得到进一步提升。

关于 RAG 的更详细解释,您可以观看 IBM 在 Youtube 上发布的这段信息量丰富的视频:

结论

RAG API 是 LibreChat 的一项强大补充功能,能够基于用户上传的文件提供具备上下文感知能力的响应。通过利用 Langchain 和 FastAPI,它提供了高效的文档索引、检索和生成能力。凭借其灵活的配置选项和无缝集成,RAG API 增强了 LibreChat 中的对话体验。

有关 RAG API 的更多详细信息,包括 API endpoint、请求/响应格式以及高级配置,请参阅官方 RAG API 文档。

这篇指南怎么样?