包含令牌验证的受众设置

Description of your first forum.
Post Reply
jrineakter
Posts: 802
Joined: Thu Jan 02, 2025 7:14 am

包含令牌验证的受众设置

Post by jrineakter »

目前,除了一个非常基本的用例外,该功能没有太多功能,该用例涉及从 Azure OpenAI 服务获取航班状态(模拟),并使用自适应卡作为响应。我将在后续文章中改进用例。


我们现在将探讨如何将 Semantic Kernel 的 Agent Framework 与 Microsoft 365 Agent SDK 代理集成,并通过 Azure Bot 将其展示到多个渠道。与 Bot Framework SDK 不同,您没有任何 Visual Studio 入门模板,因此您需要一个空的 ASP.NET Core 项目。获得该项目后,您所需要的只是一组 nuget 包,如下所示。

M365 代理 SDK 和语义内核的 NuGet 包

之后,你可以创建一个与我类似的文件夹结构,我会逐一解释。它看起来就是这样的。

M365 代理 SDK 和语义内核的解决方案结构

完整的工作示例现已成为 我的 repo 的一部分 ,您可以访问。如果您喜欢它,请给它一个星星,因为它也会帮助其他人。

免责声明:以下代码描述由 o1-preview 生成。

程序.cs
这是应用程序的入口点。它设置 Web 应用程序、配置服务并启动 Web 服务器。

配置:在开发模式下添加用户机密。
服务:添加控制器、HTTP 客户端并注册语义内核。
AI服务注册:根据配置配置Azure OpenAI或OpenAI。
机器人注册:注册旅行代理和机器人处理程序。
应用程序构建和运行:构建应用程序并映射控制器
BotHandler.cs
该文件包含处理机器人交互的 BotHandler 类。

OnMessageActivityAsync:处理传入消息,调用 TravelAgent,并将响应发送回用户
OnMembersAddedAsync:当新成员添加到对话时发送欢迎消息
服务集合扩展.cs
该文件包含在依赖注入容器中配置服务的扩展方法。

AddBot:为机器人配置服务,包括身份验证、连接客户端和机器人适配器
BotController.cs
该文件包含 BotController 类,用于处理与机器人相关的 HTTP 请求。

PostAsync:处理传入的 HTTP POST 请求并调用机器人来处理消息
应用程序设置.json
该文件包含应用程序的配置设置。

连接:包含机器人服务连接的设置,包括客户端 ID、客户端密钥和范围。
ConnectionsMap:将服务 URL 映射到连接。
日志记录:配置不同组件的日志记录级别
旅行代理.cs
该文件定义了 TravelAgent 类,它充当航班跟踪的虚拟助手。

构造函数:初始化内核、 ChatHistory和 ChatCompletionAgent。将添加 TimePlugin 到代理的内核。
InvokeAgentAsync:接受用户输入,将其添加 总裁电子邮件列表 到聊天历史记录中,调用代理,并确保响应采用正确的格式。
航班响应.cs
此文件定义了 FlightResponse 类,它表示预期的响应格式 TravelAgent

属性:具有适当的 JSON 序列化属性的 ContentType 和 Content。
时间插件.cs
该文件定义了一个 TimePlugin 类,它为 TravelAgent

方法:各种方法获取当前日期、时间、年、月、日等,以不同的方式格式化。
将其发布到您喜欢的频道
如果您以前使用过 Bot Framework SDK 和 Azure Bot,那么流程仍然相同就不足为奇了。但是,如果您是新手,那么您可能需要先了解它。下面的屏幕截图是我为此演示创建的,然后我已将 Azure Bot 配置为使用我的 Web 应用程序。

Azure 资源管理

请注意,我有一个 Azure OpenAI 服务订阅,位于此资源组之外,因此您可以自行决定是否将其保留在内部或使用任何可用资源。您还可以从 Microsoft Learn 文档中了解如何配置 Azure Bot。我当前的设置只是将其呈现给 Microsoft Teams,而不是其他任何东西。 默认情况下,嵌入式 WebChat 和 DirectLine 处于启用状态。

代理渠道

我是 Microsoft 租户中的一员,以 Guest 身份,因此没有权限在 Teams 中安装应用。但是,我可以成功测试该应用。

Microsoft-Teams-代理

Microsoft 365 Agents SDK 和 Semantic Kernel 代表了 AI 驱动解决方案领域的重大飞跃。通过利用这些强大的工具,开发人员可以创建更智能、上下文感知的应用程序,以增强用户体验并简化工作流程。

语义内核的集成可以更深入地理解用户意图,从而实现更准确、更相关的响应。随着我们继续探索这些技术的潜力,创新的可能性是无限的。我将尝试在即将发布的帖子中揭示一些高级功能。下次见。
Post Reply