你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文演示如何将对话 OpenAI 机器人与 Azure 通信服务聊天集成。 OpenAI 聊天机器人使用与语义内核集成的 Microsoft Bot Framework。 OpenAI 机器人从内部知识库检索和汇总响应,以自然语言回答用户问题。
步骤 1:使用 Azure AI Foundry 部署基本模型
在 Azure AI Foundry 门户中,按照 “创建项目”一 文创建新项目。 出现提示时,创建新的中心并接受所有默认设置。
打开项目,转到 “包含”功能,选择 Azure OpenAI 服务,并保存 API 密钥和服务终结点 URL。
在左侧菜单中,导航到 “我的资产”→模型 + 终结点。 然后单击“ + 部署模型 ”,然后选择“ 部署基本模型”。
选择 gpt-4o ,然后单击“ 确认”。
输入所选的部署名称,然后单击 “连接”并部署。
部署完成后,返回到 Models + 终结点 ,验证模型是否正在运行。 在此示例中,部署的模型为 gpt-4o。
步骤 2:创建 Web 应用资源
在 Azure 门户中,选择“创建资源”。 在搜索框中,输入“Web 应用”。 选择“Web 应用”磁贴。
在“创建 Web 应用”中,选择或输入应用的详细信息,包括要在其中部署该应用的区域。
选择“查看 + 创建”以验证部署并查看部署详细信息。 然后选择创建。
创建 Web 应用资源时,复制资源详细信息中显示的主机名 URL。 该 URL 是为 Web 应用创建的终结点的一部分。
步骤 3:创建 Azure 机器人服务资源
在 Azure 门户中,选择“创建资源”。 在搜索框中,输入 机器人。 选择“Azure 机器人”磁贴。
在 “创建 Azure 机器人”中,选择 “多租户 ”作为应用类型,新建 Microsoft 应用 ID 作为创建类型。
选择“查看 + 创建”以验证部署并查看部署详细信息。 然后选择创建。
获取机器人应用 ID 并创建密码。 记录这些值以用于以后的配置。
步骤 4:为机器人创建消息终结点
Azure 机器人服务通常要求机器人应用程序 Web 应用控制器以 /api/messages 形式公开一个终结点。 终结点处理发送到机器人的所有消息。
接下来,在机器人资源中创建 Web 应用消息传递终结点:
在 Azure 门户中,转到您的 Azure Bot 资源。 在资源菜单中,选择“ 配置”。
在“配置”中,对于消息传送终结点,粘贴在上一部分中复制的 Web 应用的主机名 URL。 使用
/api/messages附加 URL。选择应用。
步骤 5:创建 Azure 通信服务资源
在 Azure 门户中,选择“ 创建资源”。 在搜索框中,输入 通信服务。 选择 “通信服务 ”磁贴。
在 “创建 Azure 通信服务”中,可以指定订阅、资源组、通信服务资源的名称以及与资源关联的地理位置。
选择“查看 + 创建”以验证部署并查看部署详细信息。 然后选择 创建。
转到该资源。 选择 “设置 - 标识和用户访问令牌>聊天”,然后单击“ 生成”。 保存 标识 和 用户访问令牌 以供将来使用。
步骤 6:启用通信服务聊天通道
获取通信服务资源后,可以在机器人资源中设置通信服务通道。 此过程为机器人生成 Azure 通信服务用户 ID。
在 Azure 门户中,转到你的 Azure 机器人资源。 在资源菜单中,选择“通道”。 在可用频道列表中,选择 “通信服务 - 聊天”。
选择“连接”,查看订阅中可用的通信服务资源列表。
在“新建连接”窗格中选择通信服务聊天资源,然后选择“应用”。
验证资源详细信息后,机器人 Azure 通信服务用户 ID 将显示在 Bot Azure 通信服务 ID 列中。 保存 ID 供以后使用。
步骤 7:部署 Web 应用
在 Visual Studio Code (VS Code) 中打开
ChatBot示例存储库 文件夹。 请确保使用 VS Code,因为它在代码部署时支持 Microsoft Entra ID。将示例存储库中的占位符替换为实际值:
- 在
SemanticKernelService.cs文件中,填充变量modelId的值,endpoint以及apiKey。 - 在
appsettings.json文件中,使用您在MicrosoftAppId记录的MicrosoftAppPassword和bot app id来填充变量bot password和的值。
- 在
在 VS Code 中安装 Azure 应用服务扩展。
在 VS Code 中登录到 Azure 帐户。 若要访问登录面板,请单击窗口一侧的活动栏中的 Azure 图标。
在 VS Code 中安装 Azure 应用服务扩展。
通过在“ChatBot”项目的根目录中运行以下命令来生成项目。
dotnet publish -c Release -o ./bin/Publish
此命令生成 bin 和 obj 文件夹。
若要部署 Web 应用,请右键单击新
/bin/Publish文件夹,然后选择“ 部署到 Web 应用”。
选择要将应用程序部署到的 Azure 应用服务 Web 应用。 确认部署。
步骤 8:运行演示
按照 “向应用添加聊天 ”中的“获取聊天线程客户端”之前的步骤创建聊天应用并启动线程。
重要说明:
- 已在门户中创建了 Azure 通信服务资源,因此可以直接在代码中使用
<Azure Communication Services endpoint>和<Access_ID><Access_Token>代码。 - 创建线程时,需要创建另一个
ChatParticipant对象,使用在Bot Azure Communication Services User ID中创建的作为<Access_ID>来表示机器人用户。 - 保存
Thread Id以供以后使用。
- 已在门户中创建了 Azure 通信服务资源,因此可以直接在代码中使用
打开 UI 库复合体:Azure 通信服务聊天线程 UI - 加入现有聊天线程。
提供加入现有聊天线程所需的信息。
- 显示名称:可以选择首选名称。
- 用户的用户标识符:
<Access_ID>在步骤 8.1 中保存。 - 用户的有效令牌:步骤 8.1 中保存的
<Access_Token>。 - Azure 通信服务终结点:步骤 8.1 中保存的
<Azure Communication Services endpoint>。 - 现有线程:步骤 8.1 中保存的
Thread Id。
按顺序提出以下问题:
- 问题 1: 我的用户 ID 为 110。 几天前我买了一台笔记本电脑。 你能帮助跟踪交付吗?
- 问题 2: 我请求退回我的 Power Bank。 是否有任何更新?
- 问题 3: 2天前我买了蓝牙耳机,但他们还没有发货。 为什么?
OpenAI 检索与问题语义相关的数据,并根据可用数据提供答案。
商标
此项目可能包含项目、产品或服务的商标或徽标。 Microsoft 商标或徽标的授权使用必须遵循 Microsoft 的商标和品牌准则。
在此项目的修改版本中使用 Microsoft 商标或徽标不得造成混淆或暗示 Microsoft 赞助。
对第三方商标或徽标的任何使用均须遵守这些第三方的政策。
相关文章
- 将机器人添加到聊天应用。
- 从 Azure 通信服务聊天线程 UI 库加入现有聊天线程。