Skip to main content

向量存储RAG

检索增强生成(Retrieval Augmented Generation,简称 RAG)是一种在您的数据上训练 LLM 并查询它的模式。

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

这实现了向量搜索,这是一种更强大且具有上下文感知的搜索。

我们选择了 Astra DB 作为此起始流程的向量数据库,但您可以使用 Blaflow 的任何向量数据库选项。

前提条件

打开 Blaflow 并开始新项目

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

构建向量 RAG 流程

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

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

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

  • 聊天输入试运行接收用户输入。
  • OpenAI 嵌入将用户查询转换为向量形式。
  • Astra DB使用查询向量执行相似性搜索。
  • 解析器处理检索到的数据块。
  • 提示词将用户查询与相关上下文组合。
  • OpenAI使用提示词生成响应。
  • 聊天输出将响应返回给试运行 d
  1. 配置OpenAI模型组件。

    1. 要为OpenAI组件创建全局变量,在OpenAI API 密钥字段中,点击 Globe按钮,然后点击添加新变量
    2. 变量名称字段中,输入openai_api_key
    3. 字段中,粘贴您的 OpenAI API 密钥(sk-...)。
    4. 点击保存变量
  2. 配置Astra DB组件。

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

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

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

    1. 选择新建集合

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

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

      • 要使用通过 Astra 的 vectorize 服务由提供商生成的嵌入,从嵌入生成方法下拉菜单中选择模型,然后从嵌入模型下拉菜单中选择模型。
      • 要使用由 Blaflow 中的组件生成的嵌入,为嵌入生成方法嵌入模型字段选择Bring your own。在此起始项目中,嵌入方法和模型的选项是连接到Astra DB组件的OpenAI 嵌入组件。
      • 维度值必须与您的集合维度匹配。如果您使用通过 Astra 的 vectorize 服务生成的嵌入,此字段不是必需的。您可以在 Astra DB 部署集合中找到此值。

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

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

运行向量存储 RAG 流程

  1. 点击试运行按钮。在这里,您可以与使用您创建的数据库上下文的 AI 聊天。
  2. 输入消息并按 Enter 键。(尝试类似"你知道什么主题?"的问题)
  3. 机器人将用您已嵌入的数据摘要进行响应。