使用业务流程工作流连接不同的服务

业务流程工作流是一项功能,可让你在一个项目中连接 LUIS、对话语言理解和自定义问题解答等不同方面的项目。 然后,可以使用此项目在一个终结点下进行预测。 业务流程项目会对应当调用哪个项目进行预测,然后自动将请求路由到该项目,并返回其响应。

在本教程中,你将了解如何将自定义问题解答知识库与对话语言理解项目连接起来。 然后,你将使用用于业务流程的 .NET SDK 示例调用该项目。

本教程将包括创建“聊天”知识库和“电子邮件命令”项目。 “聊天”将通过静态响应来应对常见的礼节和问候。 “电子邮件命令”将在电子邮件助手的一些简单操作之间预测。 然后,本教程将介绍如何使用示例解决方案在 .NET 环境中使用 SDK 调用 Orchestrator。

先决条件

  • 创建语言资源,并在 Azure 门户中选择自定义问答功能以获取密钥和终结点。 部署后,选择”转到资源”。
    • 你需要从你创建的资源获取密钥和终结点,以便将机器人连接到 API。 稍后需在本教程中将密钥和终结点粘贴到下方的代码内。 从资源中的“密钥和终结点”选项卡复制它们。
    • 启用自定义问题解答时,必须选择要连接到的 Azure 搜索资源。
    • 确保对话语言理解支持你的资源的区域。
  • 下载 OrchestrationWorkflowSample 示例

创建自定义问题解答知识库

  1. 登录到 Language Studio 并选择语言资源。

  2. 在主页中查找并选择“自定义问题解答”卡。

  3. 选择“创建新项目”,添加名称 chitchat 以及语言“英语”,然后单击“创建项目”。

  4. 当项目加载时,选择“添加源”并选择“聊天”。 为之前的聊天选择“专业”个性

    聊天内容弹出窗口的屏幕截图。

  5. 从左侧导航菜单中转到“部署知识库”,然后选择“部署”并确认显示的弹出窗口。

现在,你已部署完用于聊天的知识库。 可以在“编辑知识库”页中浏览预期的问题和答案类型。

创建对话语言理解项目

  1. 在 Language Studio 中,转到对话语言理解服务。

  2. EmailProject.json下载 EmailProject.json 示例文件。

  3. 选择“导入”按钮。 浏览到已下载的“EmailProject.json”文件,然后按“完成”。

    屏幕截图显示导入 Json 文件的位置。

  4. 加载项目后,选择左侧的“训练作业”。 按“启动训练作业”,提供模型名称 v1,然后按“训练”。

    训练页的屏幕截图。

  5. 训练完成后,单击左侧的“部署模型”。 选择“添加部署”,创建名为 Testing 的新部署,并将模型 v1 分配给该部署。

    显示“模型部署”页的屏幕截图。

现在,你已完成了为电子邮件命令部署对话语言理解项目。 可以在“数据标记”页中浏览不同的命令。

创建业务流程工作流项目

  1. 在 Language Studio 中,转到业务流程工作流服务。
  2. 选择“创建新项目”。 使用名称“Orchestrator”和语言“英语”,然后依次单击“下一步”、“完成”。
  3. 创建项目后,选择“架构定义”页中的“添加”。
  4. 选择“是的,我想将其连接到现有项目”。 添加意向名称“EmailIntent”并选择“对话语言理解”作为连接服务。 单击“添加意向”之前,选择最近创建的“EmailProject”项目作为项目名称。

业务流程工作流中的连接意向弹出窗口的屏幕截图。

  1. 添加另一个意向,但现在选择“问题解答”作为服务,然后选择“chitchat”作为项目名称。
  2. 与对话语言理解类似,请转到“训练作业”,并启动名称为“v1”的新训练作业,然后按“训练”。
  3. 训练完成后,单击左侧的“部署模型”。 选择“添加部署”,创建名为 Testing 的新部署,并将模型 v1 分配给该部署,然后按“下一步”。
  4. 在下一页上,为“EmailIntent”选择部署名称“Testing”。 这会告知业务流程协调程序在路由到 EmailProject 时调用其中的 Testing 部署。 默认情况下,自定义问题解答项目只有一个部署。

业务流程工作流的部署弹出窗口的屏幕截图。

现在,业务流程项目已准备就绪,可供使用。 任何传入请求都将路由到使用对话语言理解中的 EmailIntent 和 EmailProject,或者路由到 ChitChatIntent 和 chitchat 知识库。

使用对话 SDK 调用业务流程项目

  1. 在下载的示例中,使用 Visual Studio 打开 OrchestrationWorkflowSample.sln。

  2. 在 OrchestrationWorkflowSample 解决方案中,确保安装所有必需的包。 在 Visual Studio 中,转到“工具”、“NuGet 包管理器”并选择“包管理器控制台”,然后运行以下命令。

dotnet add package Azure.AI.Language.Conversations

或者,可以在 NuGet 包管理器中搜索“Azure.AI.Language.Conversations”并安装最新版本。

  1. Program.cs 中,替换 {api-key} 变量和 {endpoint} 变量。 使用前面创建的语言资源的密钥和终结点。 可以在 Azure 的语言资源中的“密钥和终结点”选项卡中找到它们。
Uri endpoint = new Uri("{endpoint}");
AzureKeyCredential credential = new AzureKeyCredential("{api-key}");
  1. 按下面所示将项目和部署参数替换为 Orchestrator 和 Testing(如果尚未设置它们)。
string projectName = "Orchestrator";
string deploymentName = "Testing";
  1. 在 Visual Studio 中运行该项目或按 F5。
  2. 输入查询,例如“read the email from matt”或“hello how are you”。 现在,你将观察到对每个查询的不同响应(对第一个查询的对话语言理解 EmailProject 响应,以及为第二个查询返回的 chitchat 知识库答案)。

对话语言理解:屏幕截图显示来自“对话语言理解”的示例响应。

自定义问题解答:屏幕截图显示来自“自定义问题解答”的示例响应。

现在可以将其他项目连接到业务流程协调程序,并开始使用各种不同项目构建复杂的体系结构。

后续步骤