你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 ACS 作业路由器与 Azure OpenAI 集成。 使用 Azure OpenAI 将作业与代理配对。
先决条件
- 创建 Azure OpenAI 资源。 安装指南
- 创建 Azure 通信服务资源。 安装指南
- 克隆 GitHub 解决方案。 将 Azure OpenAI 与 ACS 作业路由器集成
- 已安装 Visual Studio Code。 Visual Studio Code
- 适用于 Visual Studio Code 的 Azure Functions 扩展。 适用于 Visual Studio Code 的 Azure Functions 扩展
概述
本快速入门演示了如何将 Azure OpenAI 与 ACS 作业路由器集成,以根据传入作业的性能指标智能选择最适合的工作器。
控制台应用程序
- 管理 ACS 资源,包括策略和队列。
- 模拟作业队列和分配。
Azure Function 项目
- 托管用于 Azure OpenAI 集成的 API。
- 管理工作器评分和作业标签。
本指南介绍两个主要项目:
- 用于与 ACS 作业路由器交互的 .NET 控制台应用程序。
- 用于 OpenAI 与 ACS 作业路由器集成的 Azure Function 项目。
控制台应用程序设置为预配以下 ACS 资源:
让 ACS 作业路由器了解如何为工作器生成产品/服务的分发策略。 此应用程序配置为预配最佳工作器模式分发策略,使用函数路由器规则对工作器进行评分。
附加了最佳工作器模式分发策略的队列。
注册到队列的五个工作器,将三个选定的性能指标值填充为标签。
在 ACS 作业路由器中创建作业,并让用户知道根据性能指标标签,哪个工作器的 Azure OpenAI 得分最高。
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 Function 部署。 Azure Function 部署
了解 Azure OpenAI 提示
- 了解 Azure OpenAI 提示工程技术。 提示工程技术
部署和执行
在安装了 Azure Function 扩展的 Visual Studio Code 中打开 OpenAiScoringFunction 项目。 选择“在 Azure 中创建函数应用...”
选择订阅后,输入函数应用的唯一名称。
创建函数应用后,右键单击应用并选择“部署函数应用...”
打开 Azure 门户并转到相应 Azure OpenAI 资源,然后转到 Azure AI Foundry 门户。 在此处,导航到“部署”选项卡,然后选择“+ 创建新部署”
选择可执行完成的模型
b. 为模型指定部署名称,然后选择“创建”
创建 Azure OpenAI 模型后,向下复制“终结点”、“密钥”和“区域”
在 Microsoft 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 |
转到函数应用的“概述”边栏选项卡。
选择新建的函数。
选择“获取函数 URL”按钮并复制 URL。
导航到你的 Azure 通信服务资源,单击“密钥”边栏选项卡并复制连接字符串。
打开 JR_AOAI_Integration 控制台应用程序,然后打开
appsettings.json
文件以更新以下配置设置。注意
“AzureFunctionUri”是函数 URL 中“?code=”之前的所有内容,“AzureFunctionKey”是函数 URL 中“?code=”之后的所有内容。
运行应用程序,并按照屏幕上的说明创建作业。
- 创建职位后,控制台应用程序将告知谁的评分最高并已收到录用通知。 查看发送到 OpenAI 模型的提示,以及为工作人员提供的并发送回职位路由器的分数。 转到你的函数并选择“监视器”选项卡,然后在控制台应用程序中创建职位时观察日志。
试验
可以在此项目中执行各种试验,例如:
- 尝试使用 PrePrompt 字符串(在 Azure Function 的环境变量中)进一步优化 Azure OpenAI 提供的分数。
- 将其他性能指标标签添加到工作器,更新 OpenAIScorerFunction 项目中的 OpenAiScorer 类以考虑新标签并更新提示、函数环境变量中的默认性能指标,并将新的性能指标添加到每个工作器下的
appSettings.json
文件中。 - 实现逻辑以在每个工作器完成作业时更新性能指标标签的值。 这可以通过向应用程序添加持久性或缓存以存储这些值来实现。 标签是作业路由器中的可路由属性。 如果更新了工作器的标签,则为该工作器发出的任何产品/服务都将被撤销。 考虑在工作器不需要产品/服务(AvailableForOffers – false,或工作器的容量被消耗时)时更新标签。