跳到主要内容

向量存储 RAG

检索增强生成(简称 RAG)是一种利用你的数据训练大型语言模型(LLM)并对其进行查询的模式。

RAG 由向量存储提供支持,它是一种向量数据库,用于存储摄取数据的嵌入向量。

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

我们选择 Astra DB 作为此入门流程的向量数据库,但你可以使用 Langflow 的任何向量数据库选项。

先决条件

打开 Langflow 并启动一个新项目

  1. 在 Langflow 控制面板中,点击 New Flow
  2. 选择 Vector Store RAG
  3. 已创建 Vector Store RAG 流程。

构建向量 RAG 流程

向量存储 RAG 流程由两个独立的流程构成:一个用于数据摄取,一个用于查询。

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

Retriever Flow(屏幕顶部)将用户的查询嵌入为向量,然后将其与来自 Load Data Flow 的向量存储数据进行比较,以查找上下文相似性。

  • Chat InputPlayground 接收用户输入。
  • OpenAI Embeddings 将用户查询转换为向量形式。
  • Astra DB 使用查询向量执行相似性搜索。
  • Parser 处理检索到的数据块。
  • Prompt 将用户查询与相关上下文结合。
  • OpenAI 使用提示生成响应。
  • Chat Output 将响应返回给 Playground
  1. 配置 OpenAI 模型组件。

    1. 要为 OpenAI 组件创建全局变量,在 OpenAI API Key 字段中,点击 Globe 按钮,然后点击 Add New Variable
    2. Variable Name 字段中,输入 openai_api_key
    3. Value 字段中,粘贴你的 OpenAI API 密钥(sk-...)。
    4. 点击 Save Variable
  2. 配置 Astra DB 组件。

    1. Astra DB Application Token 字段中,添加你的 Astra DB 应用程序令牌。该组件会连接到你的数据库,并用现有的数据库和集合填充菜单。
    2. 选择你的 Database。如果你没有集合,选择 New database。填写 NameCloud providerRegion 字段,然后点击 Create数据库创建需要几分钟时间
    3. 选择你的 Collection。集合是在你的 Astra DB 部署中创建的,用于存储向量数据。
    信息

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

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

    1. 选择 New collection

    2. 填写 NameEmbedding generation methodEmbedding modelDimensions 字段,然后点击 Create

      你对 Embedding generation methodEmbedding model 的选择取决于你是想使用提供商通过 Astra 的 vectorize 服务生成的嵌入向量,还是想使用 Langflow 中的组件生成的嵌入向量。

      • 要使用提供商通过 Astra 的 vectorize 服务生成的嵌入向量,请从 Embedding generation method 下拉菜单中选择方法,然后从 Embedding model 下拉菜单中选择模型。
      • 要使用 Langflow 中组件生成的嵌入向量,请在 Embedding generation methodEmbedding model 字段中都选择 Bring your own。在此入门项目中,嵌入方法和模型的选项是连接到 Astra DB 组件的 OpenAI Embeddings 组件。
      • Dimensions 值必须与你的集合的维度匹配。如果你使用通过 Astra 的 vectorize 服务生成的嵌入向量,则此字段不是必需的。你可以在你的 Astra DB 部署中的 Collection 中找到此值。

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

如果你使用了 Langflow 的 Global Variables 功能,则 RAG 应用程序流程组件已配置好所需的凭据。

运行向量存储 RAG 流程

  1. 点击 Playground 按钮。在这里,你可以与使用你创建的数据库中的上下文的人工智能进行聊天。
  2. 输入一条消息并按 Enter 键。(试试输入类似“你知道哪些话题?”的内容)
  3. 聊天机器人将回复你已嵌入数据的摘要。
Search