虽然 LLMs 的工作方式对许多开发人员来说可能是难以捉摸的,但 LLM 应用程序的工作方式并非如此 - 它们基本上涉及一系列对外部服务(如 LLMs/数据库/搜索引擎)的调用,或者涉及中间数据处理,所有这些都通过连接在一起。因此,LLM 应用程序只是函数调用的有向无环图(DAGs)。这些 DAGs 在 prompt flow 中被称为 flows。

Flows

在 prompt flow 中,一个 flow 是一组函数(我们称之为 tools)的 DAG,这些函数/工具通过输入/输出依赖关系连接,并根据拓扑结构由 prompt flow 执行器执行。

一个 flow 被表示为一个 YAML 文件,并且可以使用我们的 Prompt flow for VS Code 扩展进行可视化。以下是一个示例:

Flows - 图1

流类型

Prompt flow 有三种流类型:

  1. 标准流(Standard flow)和聊天流(Chat flow): 这两者都是用于开发 LLM 应用程序的。两者之间的主要区别在于“Chat Flow”为聊天应用提供的额外支持。例如,您可以为流定义 chat_history、chat_input 和 chat_output。作为回应,prompt flow 在流的开发过程中将提供类似聊天的体验(包括会话历史记录)。此外,它还为部署目的提供了一个示例聊天应用程序。

  2. 评估流(Evaluation flow): 用于测试/评估 LLM 应用程序(标准/聊天流)的质量。通常在标准/聊天流的输出上运行,并计算一些指标,用于确定标准/聊天流的性能。例如,答案是否准确?答案是否基于事实?

何时使用标准流 vs. 聊天流?

作为一般指导方针,如果您正在构建一个需要保持对话历史记录的聊天机器人,请尝试使用聊天流。在大多数其他情况下,标准流应该满足您的需求。

我们的示例还应该让您了解何时使用何种类型: