使用提示流生成助手
将数据上传到 Azure AI Studio 并使用 Azure AI 搜索集成创建数据索引后,可以使用提示流实现 RAG 模式以生成 copilot 应用程序。
提示流是一个开发框架,用于定义协调与 LLM 交互的流。
流始于一个或多个输入,通常是用户输入的问题或提示,如果是迭代对话,则为到目前为止的聊天历史记录。
然后,该流被定义为一系列连接的工具,其中的每个工具需对输入和其他环境变量执行特定的操作。 可以在提示流中加入多种类型的工具来执行如下任务:
- 运行自定义 Python 代码
- 在索引中查找数据值
- 创建提示变体 - 使你能够为大型语言模型 (LLM) 定义多个版本的提示、不同的系统消息或提示措辞,并比较和评估每个变体的结果。
- 向 LLM 提交提示以生成结果。
最后,流具有一个或多个输出,通常返回 LLM 生成的结果。
在提示流中使用 RAG 模式
在提示流中使用 RAG 模式的关键是使用索引查找工具从索引中检索数据,以便流中的后续工具可以使用结果来扩充用于从 LLM 生成输出的提示。
使用示例创建聊天流
提示流提供了各种示例,可将其用作创建应用程序的起点。 若要在应用程序中合并 RAG 和语言模型,可克隆“基于数据的多轮问答”示例。
该示例包含用于包含 RAG 和语言模型的必要元素:
- 将历史记录追加到聊天输入,以问题的上下文化形式定义提示。
- 使用搜索索引从数据中查找相关信息。
- 通过使用从索引检索到的数据来生成提示上下文,从而扩充问题。
- 通过添加系统消息和构建聊天历史记录来创建提示变体。
- 将提示提交给生成自然语言响应的语言模型。
让我们更详细地探索其中每个元素。
使用历史记录修改查询
流中的第一步是大型语言模型 (LLM) 节点,该节点采用聊天历史记录和用户的最后一个问题,并生成包含所有必要信息的新问题。 通过执行此操作,可生成由流其余部分处理的更简洁的输入。
查找相关信息
接下来,使用索引查找工具查询使用集成的 Azure AI 搜索功能创建的搜索索引,并从数据源中查找相关信息。
提示
详细了解索引查找工具。
生成提示上下文
索引查找工具的输出是在生成对用户的响应时要使用的已检索上下文。 你想要在发送到语言模型的提示中使用该输出,这意味着你想要将该输出分析为更合适的格式。
索引查找工具的输出可包含前 n 个结果(具体取决于设置的参数)。 生成提示上下文时,可使用 Python 节点循环访问数据源中的已检索文档,并将其内容和源合并到一个文档字符串中。 该字符串将在流的下一步中发送到语言模型的提示中使用。
定义提示变体
构造要发送到语言模型的提示时,可使用变体来表示不同的提示内容。
在聊天流中包含 RAG 时,目标是建立聊天机器人的响应基础。 除了从数据源中检索相关上下文之外,你还可通过指示聊天机器人使用上下文并以事实为目标来影响其响应的基础性。
使用提示变体,可在提示中提供不同的系统消息,以探索哪些内容提供了最大的基础性。
根据上下文聊天
最后,使用 LLM 节点将提示发送到语言模型,以使用从数据源检索的相关上下文生成响应。 此节点的响应也是整个流的输出。
配置示例聊天流以使用索引的数据和所选语言模型后,可部署该流并将其与应用程序集成,为用户提供一种 copilot 体验。