(入门)基于Semantic Kernel使用C#实现AI Agent智能体

   日期:2024-12-27    作者:a13901329810 移动:http://ljhr2012.riyuangf.com/mobile/quote/68628.html

Semantic Kernel 是 Microsoft 开源的一款 SDK(软件开发工具包),用于构建基于大语言模型和 AI 服务 的应用程序。它旨在帮助开发者更轻松地将 AI 模型与自定义功能、外部数据源和业务逻辑集成在一起,从而实现更强大、更智能的应用程序。

(入门)基于Semantic Kernel使用C#实现AI Agent智能体

一、Semantic Kernel 的核心概念

  1. Kernel 核心组件
  2. Plugins(插件)
  3. Prompts(提示)
  4. Functions(函数)
  5. Connectors(连接器)
  6. Planning(规划)

二、编写 Microsoft.SemanticKernel 库和 OpenAI 的控制台应用(官方示例)


1)效果演示:

2)编码实现

导入必要的包

配置大模型

     从支持的大模型选择OpenAI的Chat Completion:

构建 Kernel 实例

创建Chat Completion服务实例

添加插件

配置模型执行设置

设置 FunctionChoiceBehavior 为 Auto(),它告诉模型自动选择使用哪种功能(例如生成文本,回答问题等)。

启动聊天 

创建本机插件

这个插件 LightsPlugin 是一个用于模拟灯光控制功能的插件,它通过 Semantic Kernel

功能概述

  1. 获取灯光列表及其状态:提供一个查询所有灯光及其当前状态的功能。
  2. 更改灯光的状态:允许用户更改指定灯光的开关状态(开启或关闭)。

代码解析

LightsPlugin 类

  • 该类包含一个灯光列表 lights,用于模拟灯光设备的当前状态。每个灯光有 Id、Name 和 IsOn(是否开)属性。
  • GetLightsAsync 和 ChangeStateAsync 两个异步方法提供了对灯光状态的访问和修改:


 

LightModel 类

  • LightModel类代表一个灯光对象,包含以下属性:
  • Id:灯光的唯一标识符。
  • Name:灯光的名称(例如,“台灯”,“门廊灯”等)。
  • IsOn:灯光的状态,true 表示开,false 表示关。

该类使用了 JsonPropertyName 特性,以便将属性映射为与 JSON 数据中的字段相对应的名称。


在实际应用中,这个插件可以作为聊天系统的一部分,允许用户通过对话接口控制灯光。例如,用户可以查询所有灯光的状态,或者直接请求更改某个灯光的开关状态。


附录:完整代码:

 SemanticKernelDemo-02/LightsPlugin.cs

 SemanticKernelDemo-02/Program.cs


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号