你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:将 Azure OpenAI 与 ACS 作业路由器集成

将 ACS 作业路由器与 Azure OpenAI 集成。 使用 Azure OpenAI 将作业与代理配对。

先决条件

概述

本快速入门演示了如何将 Azure OpenAI 与 ACS 作业路由器集成,以根据传入作业的性能指标智能选择最适合的工作器。

控制台应用程序

  • 管理 ACS 资源,包括策略和队列。
  • 模拟作业队列和分配。

Azure Function 项目

  • 托管用于 Azure OpenAI 集成的 API。
  • 管理工作器评分和作业标签。

本指南介绍两个主要项目:

  • 用于与 ACS 作业路由器交互的 .NET 控制台应用程序。
  • 用于 OpenAI 与 ACS 作业路由器集成的 Azure Function 项目。

控制台应用程序设置为预配以下 ACS 资源:

  • 让 ACS 作业路由器了解如何为工作器生成产品/服务的分发策略。 此应用程序配置为预配最佳工作器模式分发策略,使用函数路由器规则对工作器进行评分。

  • 附加了最佳工作器模式分发策略的队列。

  • 注册到队列的五个工作器,将三个选定的性能指标值填充为标签。

  • 在 ACS 作业路由器中创建作业,并让用户知道根据性能指标标签,哪个工作器的 Azure OpenAI 得分最高。

    具有 Azure OpenAI 集成 SequenceDiagram 的职位路由器的屏幕截图。

Azure Function 项目设置为与已部署的 Azure OpenAI 模型进行交互:

  • Azure Function 接收来自 ACS 作业路由器的请求,其负载包含工作器标签(性能指标)。
  • Azure Function 从请求中提取这些值。
  • Azure Function 预先配置了一个提示,向 Azure OpenAI 模型解释如何解释这些性能指标中的每一项,并要求 Azure OpenAI 根据这些值对每个工作器进行评分,以找到最适合新工作的代理。

    注意

    可以针对任何期望的结果更新提示。 例如,可以修改提示以将平均处理时间作为最重要的数据点进行去哪喝昂,或要求模型针对客户满意度进行优化。

  • Azure Function 使用配置的提示和工作器性能指标发送请求,Azure OpenAI 使用包含 Azure OpenAI 生成分数的 JSON 对象进行响应。
  • 然后,Azure Function 将这些分数发送回 ACS 作业路由器。
  • ACS 作业路由器随后向 Azure OpenAI 评分最高的工作器发送产品/服务。

此项目中使用的性能指标

在本指南中,我们基于典型的联系中心性能数据点选择了三个性能指标。 工作器评估依据:

  • CSAT:客户满意度。
  • 结果:问题解决率。
  • AHT:平均处理时间。

了解 ACS 作业路由器

了解 Azure Function 部署

了解 Azure OpenAI 提示

部署和执行

  1. 在安装了 Azure Function 扩展的 Visual Studio Code 中打开 OpenAiScoringFunction 项目。 选择“在 Azure 中创建函数应用...”

    VS Code 中 CreateFunctionApp 的屏幕截图。

  2. 选择订阅后,输入函数应用的唯一名称。

    在 VS Code 中选择订阅的屏幕截图。

  3. 创建函数应用后,右键单击应用并选择“部署函数应用...”

  4. 打开 Azure 门户并转到相应 Azure OpenAI 资源,然后转到 Azure AI Foundry 门户。 在此处,导航到“部署”选项卡,然后选择“+ 创建新部署”

    1. 选择可执行完成的模型

      Azure OpenAI 服务模型

    2. b. 为模型指定部署名称,然后选择“创建”

      创建 Azure OpenAI 模型的屏幕截图。

  5. 创建 Azure OpenAI 模型后,向下复制“终结点”、“密钥”和“区域”

    Azure OpenAI 的密钥和终结点页的屏幕截图。

  6. 在 Microsoft Azure 门户中,导航到新创建的函数应用环境变量边栏选项卡并创建以下变量:

    Azure 函数环境设置示例的屏幕截图。

名称 说明
OpenAIBaseURI {Endpoint} OpenAI 资源的终结点 URI
OpenAIAPIKey {Key} OpenAI 资源的密钥
DeploymentName {DeploymentName} OpenAI 资源的部署名称
Preprompt 你正在帮助将客户与联系人中心中的代理配对。 你将根据以下性能指标评估最佳可用代理。 CSAT 将平均客户满意度分数保持在 1 到 3 之间,越高越好。 结果为 0 到 1 之间的分数,越高越好。 AHT 是平均处理时间,越低越好。 如果提供的 AHT 为 00:00,请在评分中将其忽略。 包含 Azure OpenAI 模型预处理说明的提示
Postprompt 仅使用代理 ID 作为密钥的 json 对象进行响应,并根据该客户的适合性,使用 0 到 1 范围内的值进行评分。 不要包含任何其他信息。 包含 Azure OpenAI 模型后处理说明的提示
DefaultCSAT 1.5 缺少此标签的工作器的默认 CSAT 分数
DefaultOutcome 0.5 缺少此标签的工作器的默认结果分数
DefaultAHT 10:00 缺少此标签的工作器的默认 AHT
  1. 转到函数应用的“概述”边栏选项卡。

    1. 选择新建的函数。

      部署的函数的屏幕截图。

    2. 选择“获取函数 URL”按钮并复制 URL。

      获取函数 URL 的屏幕截图。

  2. 导航到你的 Azure 通信服务资源,单击“密钥”边栏选项卡并复制连接字符串。

  3. 打开 JR_AOAI_Integration 控制台应用程序,然后打开 appsettings.json 文件以更新以下配置设置。

    注意

    “AzureFunctionUri”是函数 URL 中“?code=”之前的所有内容,“AzureFunctionKey”是函数 URL 中“?code=”之后的所有内容。

    AppSettings 的屏幕截图。

  4. 运行应用程序,并按照屏幕上的说明创建作业。

    • 创建职位后,控制台应用程序将告知谁的评分最高并已收到录用通知。 查看发送到 OpenAI 模型的提示,以及为工作人员提供的并发送回职位路由器的分数。 转到你的函数并选择“监视器”选项卡,然后在控制台应用程序中创建职位时观察日志。

函数输出的屏幕截图。

试验

可以在此项目中执行各种试验,例如:

  • 尝试使用 PrePrompt 字符串(在 Azure Function 的环境变量中)进一步优化 Azure OpenAI 提供的分数。
  • 将其他性能指标标签添加到工作器,更新 OpenAIScorerFunction 项目中的 OpenAiScorer 类以考虑新标签并更新提示、函数环境变量中的默认性能指标,并将新的性能指标添加到每个工作器下的 appSettings.json 文件中。
  • 实现逻辑以在每个工作器完成作业时更新性能指标标签的值。 这可以通过向应用程序添加持久性或缓存以存储这些值来实现。 标签是作业路由器中的可路由属性。 如果更新了工作器的标签,则为该工作器发出的任何产品/服务都将被撤销。 考虑在工作器不需要产品/服务(AvailableForOffers – false,或工作器的容量被消耗时)时更新标签。