跳到主要内容

Vector store RAG

检索增强生成(Retrieval Augmented Generation,简称 RAG)是一种使用您的数据训练大语言模型(LLM)并进行查询的模式。

RAG 基于向量存储支持,这是一个存储已摄取数据嵌入向量的向量数据库。

这使得向量搜索成为可能,这是一种更强大、更具上下文感知能力的搜索方式。

我们为这个入门流程选择了 Astra DB 作为向量数据库,但您也可以使用 Langflow 的任何其他向量数据库选项。

前提条件

打开 Langflow 并开始新项目

  1. 在 Langflow 仪表板中,点击新建流程
  2. 选择向量存储 RAG
  3. 向量存储 RAG 流程已创建。

构建向量 RAG 流程

向量存储 RAG 流程由两个独立的流程组成,分别用于数据摄取和查询。

Vector RAG starter flow with Astra DB

加载数据流程(屏幕底部)创建一个可搜索的索引,用于查询上下文相似性。 此流程使用本地文件中的数据填充向量存储。 它从本地文件摄取数据,将其分割成块,在 Astra DB 中进行索引,并使用嵌入模型组件为这些块计算嵌入向量。

检索器流程(屏幕顶部)将用户的查询嵌入为向量,然后将这些向量与加载数据流程中的向量存储数据进行比较,以找到上下文相似性。

  • 聊天输入接收来自运行环境的用户输入。
  • 嵌入模型将用户查询转换为向量形式。
  • Astra DB 使用查询向量执行相似性搜索。
  • 解析器处理检索到的数据块。
  • 提示词将用户查询与相关上下文相结合。
  • 语言模型使用提示词和 OpenAI LLM 生成响应。
  • 聊天输出将响应返回到运行环境
  1. 将您的 OpenAI API 密钥添加到语言模型组件中。

    您可以选择为 OpenAI API 密钥创建一个全局变量

    1. OpenAI API Key 字段中,点击 地球图标,然后点击添加新变量
    2. 变量名称字段中,输入 openai_api_key
    3. 字段中,粘贴您的 OpenAI API 密钥(sk-...)。
    4. 点击保存变量
  2. 配置 Astra DB 组件。

    1. Astra DB Application Token 字段中,添加您的 Astra DB 应用程序令牌。 该组件会连接到您的数据库并在菜单中填充现有的数据库和集合。
    2. 选择您的数据库。 如果您没有集合,请选择新建数据库。 填写名称云提供商区域字段,然后点击创建数据库创建需要几分钟时间
    3. 选择您的集合。集合在您的 Astra DB 部署中创建,用于存储向量数据。
    信息

    如果您选择了通过 Astra 的向量化服务使用 Nvidia 嵌入的集合,嵌入模型端口将被移除,因为您已经使用 Nvidia NV-Embed-QA 模型为此集合生成了嵌入向量。该组件从集合中获取数据,并使用相同的嵌入向量进行查询。

  3. 如果您没有集合,请在该组件内创建一个新集合。

    1. 选择新建集合

    2. 填写名称嵌入生成方法嵌入模型维度字段,然后点击创建

      您对嵌入生成方法嵌入模型的选择取决于您是想使用通过 Astra 向量化服务由提供商生成的嵌入向量,还是由 Langflow 中的组件生成的嵌入向量。

      • 要使用通过 Astra 向量化服务由提供商生成的嵌入向量,请从嵌入生成方法下拉菜单中选择模型,然后从嵌入模型下拉菜单中选择模型。
      • 要使用由 Langflow 组件生成的嵌入向量,请在嵌入生成方法嵌入模型字段中都选择自带模型。在这个入门项目中,嵌入方法和模型的选项是连接到 Astra DB 组件的 OpenAI Embeddings 组件。
      • 维度值必须与您集合的维度匹配。如果您使用通过 Astra 向量化服务生成的嵌入向量,则不需要此字段。您可以在 Astra DB 部署集合中找到此值。

      更多信息请参见 DataStax Astra DB Serverless 文档

如果您使用了 Langflow 的全局变量功能,RAG 应用程序流程组件已经配置了必要的凭据。

运行向量存储 RAG 流程

  1. 要运行流程,请点击 运行环境。 在运行环境中,您可以与使用您创建的数据库上下文的 LLM 进行聊天。
  2. 输入消息并按 Enter 键。尝试输入类似"你了解哪些主题?"的内容。
  3. 机器人将响应您嵌入数据的摘要。
Search