跳到主要内容

快速入门

通过构建一个基于 OpenAI 的聊天机器人应用程序来了解 NebulaAIFlow。构建完聊天机器人后,添加检索增强生成(RAG)功能以便与您自己的数据进行对话。

前置条件

  • OpenAI API 密钥
  • 一个 Astra DB 向量数据库,包含:
    • 一个具有数据库读写权限的 Astra DB 应用程序令牌
    • 在 Astra 中创建的集合或在 Astra DB 组件中创建的新集合

打开 NebulaAIFlow 并开始新项目

  1. 在 NebulaAIFlow 仪表板中,点击 新建流程,然后选择 空白流程。将打开一个空白工作区,您可以在其中构建流程。
提示

如果您不想创建空白流程,点击 新建流程,然后选择 基础提示以获取预构建的流程。 继续阅读运行基础提示流程

  1. 选择 基础提示

  2. 基础提示流程已创建。

构建基础提示流程

完成后的基础提示流程将如下所示:

完成的基础提示流程

要构建基础提示流程,请按照以下步骤操作:

  1. 点击 输入,选择 聊天输入组件,然后将其拖到画布上。 聊天输入组件接受用户对聊天的输入。
  2. 点击 提示,选择 提示组件,然后将其拖到画布上。 提示组件将用户输入与用户定义的提示结合在一起。
  3. 点击 输出,选择 聊天输出组件,然后将其拖到画布上。 聊天输出组件将流程的输出打印到聊天中。
  4. 点击 模型,选择 OpenAI组件,然后将其拖到画布上。 OpenAI模型组件将用户输入和提示发送到 OpenAI API 并接收响应。

现在您应该有一个如下所示的流程:

没有连接的基础提示流程

如果组件之间没有连接,它们就不会相互交互。 您希望数据通过组件之间的连接从聊天输入流向聊天输出。 每个组件在其左侧接受输入,在其右侧发送输出。 将鼠标悬停在连接端口上可以查看组件接受的数据类型。 有关组件输入和输出的更多信息,请参阅组件概述

  1. 要将聊天输入组件连接到 OpenAI 模型组件,请从蓝色的消息端口点击并拖动一条线到 OpenAI 模型组件的输入端口。
  2. 要将提示组件连接到 OpenAI 模型组件,请从蓝色的提示消息端口点击并拖动一条线到 OpenAI 模型组件的系统消息端口。
  3. 要将 OpenAI模型组件连接到聊天输出,请从蓝色的文本端口点击并拖动一条线到聊天输出组件的文本端口。

您完成的基础提示流程应该如下所示:

运行基础提示流程

将您的 OpenAI API 密钥添加到 OpenAI 模型组件,并向提示组件添加提示以指导模型如何响应。

  1. 将您的凭据添加到 OpenAI 组件。完成这些字段最快的方法是使用 NebulaAIFlow 的全局变量

    1. 在 OpenAI 组件的 OpenAI API 密钥字段中,点击 全局按钮,然后点击添加新变量。 或者,点击右上角的用户名,然后点击设置全局变量,然后点击添加新变量
    2. 命名您的变量。在值字段中粘贴您的 OpenAI API 密钥(sk-…​)。
    3. 应用到字段字段中,选择 OpenAI API 密钥字段以将此变量应用到所有 OpenAI 嵌入组件。
  2. 要向提示组件添加提示,请点击模板字段,然后输入您的提示。 提示指导机器人对输入的响应。 如果您不确定,可以使用 以 GenAI 专家的身份回答用户,热衷于帮助他们开始构建新的项目。

  3. 点击调试开始聊天会话。

  4. 输入查询,然后确保机器人根据您在提示组件中设置的提示进行响应。

您已经成功使用 OpenAI 在 NebulaAIFlow 工作区中创建了一个聊天机器人应用程序。

为您的应用程序添加向量 RAG

您使用 NebulaAIFlow 创建了一个聊天机器人应用程序,但让我们做一个实验。

  1. 问机器人:2024年谁获得了奥斯卡最佳影片奖?
  2. 机器人的回答类似于这样:

_10
抱歉,我没有 2024 年奥斯卡颁奖典礼的信息,包括最佳影片获奖者。
_10
我的知识截止到 2023 年 10 月。
_10
您可以查看最新新闻或奥斯卡官方网站获取最新信息。

好吧,这很遗憾,但您可以使用检索增强生成RAG 加载更多最新数据。

向量 RAG 允许您加载自己的数据并与之对话,为您的聊天机器人应用程序解锁更广泛的可能性。

使用 Astra DB 组件添加向量 RAG

在基础提示流程的基础上,使用 Astra DB 向量存储组件为您的聊天机器人应用程序添加向量 RAG。

使用 Astra DB 组件作为向量存储,为基础提示流程添加文档摄取功能。

提示

如果您不想创建空白流程,点击新建流程,然后选择向量 RAG以获取预构建的流程。

完成后,向基础提示流程添加向量 RAG 将如下所示:

向基础提示流程添加文档摄取

要构建流程,请按照以下步骤操作:

  1. 通过双击连接线断开聊天输入组件与 OpenAI 组件的连接。
  2. 点击向量存储,选择 Astra DB 组件,然后将其拖到画布上。 Astra DB 向量存储组件连接到您的 Astra DB 数据库。
  3. 点击数据,选择文件组件,然后将其拖到画布上。 文件组件从您的本地机器加载文件。
  4. 点击处理,选择拆分文本组件,然后将其拖到画布上。 拆分文本组件将加载的文本拆分成更小的块。
  5. 点击处理,选择解析数据组件,然后将其拖到画布上。 数据转消息组件将来自 Astra DB 组件的数据转换为纯文本。
  6. 点击嵌入,选择 OpenAI 嵌入组件,然后将其拖到画布上。 OpenAI 嵌入组件为用户的输入生成嵌入,这些嵌入与数据库中的向量数据进行比较。
  7. 将新组件连接到现有流程中,使您的流程看起来像这样:

向基础提示流程添加文档摄取

  1. 配置 Astra DB 组件。

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

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

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

    1. 选择新建集合

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

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

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

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

使用检索的上下文运行聊天机器人

  1. 修改提示组件以包含 {user_question}{context} 变量。 {context} 变量为机器人提供了除 LLM 训练内容之外的额外上下文来回答 {user_question}

_10
基于以下上下文
_10
{context}
_10
回答问题
_10
{user_question}

  1. 文件组件中,从您的本地机器上传一个包含您想要摄取到 Astra DB 组件数据库的数据的文本文件。 本示例上传了一个关于奥斯卡获奖者的最新 CSV 文件。
  2. 点击调试开始聊天会话。
  3. 问机器人:2024年谁获得了奥斯卡最佳影片奖?
  4. 机器人的回答应该类似于这样:

_10
2024年奥斯卡最佳影片奖授予了《奥本海默》,
_10
该片由艾玛·托马斯、查尔斯·罗文和克里斯托弗·诺兰制作。

添加 Astra DB 向量存储让您的聊天机器人的知识更新到了 2024 年。 您已经成功使用 Astra DB 组件为您的聊天机器人应用程序添加了 RAG。

下一步

本示例使用了电影数据,但 RAG 模式可以用于您想要加载和聊天的任何数据。

Astra DB 数据库成为智能体用来做决策的大脑。

将此流程作为 API 发布,并从您的外部应用程序调用它。

有关 Astra DB 组件的更多信息,请参阅 Astra DB 向量存储