练习 - 使用内置插件
在本练习中,将现有插件添加到你的语义内核项目,并了解如何使用你的第一个插件来完成任务。 现在就开始吧!
准备开发环境
在这些练习中,你可以使用初学者项目。 使用以下步骤设置初学者项目:
重要
必须安装 Visual Studio Code 和 .NET Framework 8.0 才能完成这些步骤。 可能还需要安装 Visual Studio Code C# 开发工具包扩展。
打开 Visual Studio Code。
在 Visual Studio Code 的“开始”部分下,选择“克隆 Git 存储库”。
在 URL 栏中,输入
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
在文件资源管理器中,在易于查找和记住的位置(例如桌面中的文件夹)中创建新文件夹。
单击“选择为存储库目标”按钮。
需要登录到 GitHub 才能成功克隆项目。
在 Visual Studio Code 中打开项目。
在资源管理器中,右键单击 M02-create-plugins-for-semantic-kernel/M02-Project 文件夹,然后单击“在集成终端中打开”。
展开 M02-create-plugins-for-semantic-kernel/M02-Project 文件夹。
此时应会看到“Program.cs”文件。
打开 Program.cs 文件,然后使用 Azure OpenAI 服务部署名称、API 密钥、终结点来更新以下变量。
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
现在,你已准备好开始进行练习。 祝你好运!
获取用户的意向
在集成终端中,添加语义内核插件。 通过运行以下命令将核心包添加到你的项目:
dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha
注意
目前该包是预发行版版本。 可能需要检查最新版本 https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha
将以下代码添加到 Program.cs 文件:
builder.Plugins.AddFromType<ConversationSummaryPlugin>(); var kernel = builder.Build(); string input = @"I'm a vegan in search of new recipes. I love spicy food! Can you give me a list of breakfast recipes that are vegan friendly?"; var result = await kernel.InvokeAsync( "ConversationSummaryPlugin", "GetConversationActionItems", new() {{ "input", input }}); Console.WriteLine(result);
在此代码中,从
Core.Plugins
包导入ConversationSummaryPlugin
。 创建新的内核生成器并将插件添加到生成器。ConversationSummaryPlugin
支持多个操作:GetConversationActionItems
、SummarizeConversation
和GetConversationTopics
。使用示例对话创建字符串,然后使用函数名称调用插件并传入聊天字符串。 该插件会返回会话的摘要。
注意
由于插件仍处于预览状态,因此可能需要在文件顶部使用
#pragma warning disable SKEXP0050
禁止显示警告。通过在终端中输入
dotnet run
来运行代码。你应该会看到类似于以下输出的响应:
{ "actionItems": [ { "owner": "", "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes", "dueDate": "", "status": "Open", "notes": "" } ] }
请注意,该插件能够识别输入字符串中的简化意向。
此示例只是可以用语义内核 SDK 做到的事情的开头。 在下一单元中,你将了解自定义插件和运行函数的更多方法。
重要
请确保不要删除你编写的任何代码,你在下一个练习中需要它。