当前位置: 首页 > news >正文

广州网站建设哪个平台好中关村在线模拟攒机

广州网站建设哪个平台好,中关村在线模拟攒机,北京自助企业建站模板,广东建设监理协会网站题库文章目录 一、引言二、开发Semantic Kernel插件三、实战3.1 时间信息插件3.2 小部件工厂插件3.3 初始化Semantic Kernel实例3.4 四个实战示例3.4.1 模型幻觉3.4.2 给模型提供时间信息3.4.3 AI自动调用函数3.4.4 AI自动调用和使用枚举 四、结论 一、引言 在上一篇入门文章《探索… 文章目录 一、引言二、开发Semantic Kernel插件三、实战3.1 时间信息插件3.2 小部件工厂插件3.3 初始化Semantic Kernel实例3.4 四个实战示例3.4.1 模型幻觉3.4.2 给模型提供时间信息3.4.3 AI自动调用函数3.4.4 AI自动调用和使用枚举 四、结论 一、引言 在上一篇入门文章《探索Semantic Kernel开启AI编程新篇章》中我们了解了Semantic Kernel的基础知识包括如何创建内核实例、配置AI模型以及执行基本的AI任务。本文将作为进阶篇重点介绍如何开发Semantic Kernel插件并在实际应用中调用这些插件。 二、开发Semantic Kernel插件 Semantic Kernel插件是扩展AI模型功能的模块它们可以封装特定领域的知识和功能使得AI模型能够执行更复杂的任务。在本教程中我们将开发两个插件TimeInformation和WidgetFactory。 三、实战 3.1 时间信息插件 TimeInformation插件提供了一个函数用于获取当前的UTC时间。 /// summary /// 返回当前时间的插件 /// /summary public class TimeInformation {[KernelFunction][Description(获取当前UTC时间)]public string GetCurrentUtcTime() DateTime.UtcNow.ToString(R); }3.2 小部件工厂插件 WidgetFactory插件提供了一个函数用于根据指定的类型和颜色创建小部件。 /// summary /// 创建部件的插件 /// /summary public class WidgetFactory {[KernelFunction][Description(创建指定类型和颜色的部件)]public WidgetDetails CreateWidget([Description(要创建的小部件的类型)] WidgetType widgetType, [Description(要创建的小部件颜色)] WidgetColor[] widgetColors){var colors string.Join(-, widgetColors.Select(c c.GetDisplayName()).ToArray());return new(){SerialNumber ${widgetType}-{colors}-{Guid.NewGuid()},Type widgetType,Colors widgetColors};} }为了使插件能够处理不同的小部件类型和颜色我们定义了两个枚举类型WidgetType和WidgetColor。 WidgetDetails类用于存储小部件的详细信息包括序列号、类型和颜色。 [JsonConverter(typeof(JsonStringEnumConverter))] public enum WidgetType {[Description(有用的小部件。)]Useful,[Description(装饰性的小部件。)]Decorative }[JsonConverter(typeof(JsonStringEnumConverter))] public enum WidgetColor {[Description(创建红色物品时使用)]Red,[Description(创建绿色物品时使用)]Green,[Description(创建蓝色物品时使用)]Blue }public class WidgetDetails {public string SerialNumber { get; init; }public WidgetType Type { get; init; }public WidgetColor[] Colors { get; init; } } /// summary /// 枚举扩展方法 /// /summary public static class EnumExtensions {private static readonly ConcurrentDictionaryEnum, string DisplayNameCache new ConcurrentDictionaryEnum, string();/// summary/// 获取枚举字段值的属性。/// /summary/// typeparam nameT/typeparam/// param nameenumValue/param/// returns/returns[UnconditionalSuppressMessage(Trimming, IL2075, Justification Fields are never trimmed for enum types.)]public static T GetAttributeOfTypeT(this Enum enumValue) where T : Attribute{FieldInfo field enumValue.GetType().GetField(enumValue.ToString(), BindingFlags.Static | BindingFlags.Public);if (field null){return null;}return field.GetCustomAttributesT(inherit: false).FirstOrDefault();}/// summary/// 获取enum的显示名称/// /summary/// param nameenumValue/param/// returns/returnspublic static string GetDisplayName(this Enum enumValue){return DisplayNameCache.GetOrAdd(enumValue, delegate (Enum e){DisplayAttribute attributeOfType e.GetAttributeOfTypeDisplayAttribute();return (attributeOfType ! null) ? attributeOfType.Name : e.ToString();});} } 3.3 初始化Semantic Kernel实例 #pragma warning disable SKEXP0001, SKEXP0010, SKEXP0050, SKEXP0020, ASP0000 //使用的模型 string model gpt-4o-mini; //使用的openai代理地址这里也可以使用国产模型和地址。只要是openai格式即可 string endpointKey https://xie.openai.com/v1; //openai 密钥 string apiKey sk-;// 创建一个带有OpenAI聊天完成的内核IKernelBuilder kernelBuilder Kernel.CreateBuilder();kernelBuilder.AddOpenAIChatCompletion(modelId: model,endpoint: new Uri(endpointKey),apiKey: apiKey);//添加打印时间信息插件kernelBuilder.Plugins.AddFromTypeTimeInformation();//添加构建颜色、类型部件插件kernelBuilder.Plugins.AddFromTypeWidgetFactory();Kernel kernel kernelBuilder.Build();3.4 四个实战示例 3.4.1 模型幻觉 //示例1用一个提示来调用内核该提示要求AI提供它无法提供的信息并可能产生幻觉 Console.WriteLine(------------------------示例1 模型无法提供的实时信息-------------------------------); Console.WriteLine(await kernel.InvokePromptAsync(离圣诞节还有几天)); Console.WriteLine();3.4.2 给模型提供时间信息 //示例2使用模板提示调用内核该提示调用插件并显示结果 Console.WriteLine(------------------------示例2 使用插件结合问题给模型提供时间信息--------------------------------); Console.WriteLine(await kernel.InvokePromptAsync(当前时间为 {{TimeInformation.GetCurrentUtcTime}}。 离圣诞节还有几天)); Console.WriteLine();3.4.3 AI自动调用函数 //示例3使用提示符调用内核并允许AI自动调用函数 #pragma warning disable SKEXP0001 // 类型仅用于评估在将来的更新中可能会被更改或删除。取消此诊断以继续。OpenAIPromptExecutionSettings settings new() { FunctionChoiceBehavior FunctionChoiceBehavior.Auto() }; #pragma warning restore SKEXP0001 // 类型仅用于评估在将来的更新中可能会被更改或删除。取消此诊断以继续。Console.WriteLine(------------------------示例3 模型自动评估是否调用函数获取时间--------------------------------);Console.WriteLine(await kernel.InvokePromptAsync(离圣诞节还有几天解释你的想法。, new(settings)));Console.WriteLine();3.4.4 AI自动调用和使用枚举 //示例4用提示符调用内核并允许AI自动调用使用枚举的函数 Console.WriteLine(------------------------示例4 模型自动调用函数生成对应颜色组件- -----------------------------); Console.WriteLine(--------------------示例4.1红色----------------------------); //因枚举中有红色AI自动识别并创建红色组件 Console.WriteLine(await kernel.InvokePromptAsync(为我创建一个红色小部件。, new(settings))); Console.WriteLine();Console.WriteLine(--------------------示例4.2浅绿色----------------------------);//因枚举中有绿色AI自动识别并创建绿色组件Console.WriteLine(await kernel.InvokePromptAsync(为我创建一个浅绿色小部件。, new(settings)));Console.WriteLine();Console.WriteLine(--------------------示例4.3蓝色----------------------------);//因枚举中有蓝色AI自动识别并创建蓝色组件Console.WriteLine(await kernel.InvokePromptAsync(为我创建一个蓝色小部件。, new(settings)));Console.WriteLine();// 因枚举中没有紫色AI会告知用户只能在系统提供的三种颜色中选取Console.WriteLine(--------------------示例4.4紫色----------------------------);Console.WriteLine(await kernel.InvokePromptAsync(为我创建一个紫色小部件。, new(settings)));四、结论 通过开发和调用Semantic Kernel插件我们可以将自定义功能和业务逻辑集成到AI模型中从而创建更加强大和灵活的应用程序。这些插件不仅可以提高开发效率还可以帮助我们更好地控制AI模型的行为。 在下一篇文章中我们将探讨如何将Semantic Kernel与其他技术栈和服务集成以构建更加强大和全面的AI解决方案。 参考资料 微软文档https://learn.microsoft.com/en-us/semantic-kernel/overview/ Githubhttps://github.com/microsoft/semantic-kernel
http://www.hkea.cn/news/14426322/

相关文章:

  • 专业的做网站公司外贸人最常用的网站
  • 建设部网站防排烟规范3d展示网站源码
  • 义乌外贸网站制作动漫制作专业需要买电脑吗
  • h5和小程序有什么区别郑州官网优化推广
  • 佛山网站建设优势网站做404好处
  • 阳泉移动网站建设园林景观设计公司
  • 网站 微站建设排名公司注册地址可以变更到外省吗
  • 获取网站访问qq酒店网站建设报价单
  • 免费数据源网站网站做推广企业
  • 连连跨境电商网站开发网站建设公司业务
  • 泉州网站建设选择讯呢合肥市建设工程造价信息网站
  • 企业网站建站意义上海搬家公司排名
  • 推荐个在广州做网站的网站推广位怎么设置
  • 做创意美食的视频网站有哪些深圳拼团网站建设
  • 中国制造网国际站官网长治网站制作厂家
  • 网站首页布局上饶建站公司
  • 网站建设模板51Wordpress大前端破解版
  • 游戏网站开发试验报告淮北市做网站最好的公司
  • 深圳专业网站建设多少钱wordpress页面链接跳转
  • 吉林建设厅网站商城网站建设公司爱问
  • 浙江省建设信息港网站金利福珠宝的网站建设理念
  • 个人网站主机的配置开网店流程
  • 网站更换ip地址温州建设集团网站
  • 可做百度百科参考资料的网站怎样在手机上做网站
  • 中国风网站欣赏旅游网站开发实现开题报告
  • 网站建设公司的方案led外贸网站建设
  • 怎样黑公司的网站wordpress支付宝个人
  • 网上做预算有哪些网站网络推广都有哪些渠道
  • 网站模板 安装asp.net新建网站
  • 电子网站大全宿迁做网站公司