news 2026/5/1 5:03:43

微软开源AI框架SemanticKernel解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微软开源AI框架SemanticKernel解析

Semantic Kernel 是由微软(Microsoft)开发的一个开源框架,旨在将大型语言模型(LLMs)与传统编程语言(如 C#、Python 和 Java)无缝集成。它提供了一套轻量级的 SDK,使开发者能够轻松地将自然语言处理能力嵌入到应用程序中,同时支持插件(Plugins)、记忆(Memory)、规划(Planner)等高级功能。


核心特性

  1. 自然语言函数(Semantic Functions)
    允许开发者使用自然语言提示(prompt)定义函数,无需编写复杂的代码逻辑。例如:

    # Python 示例 kernel.create_semantic_function("将以下文本总结为一句话:{{$input}}")
  2. 原生函数(Native Functions)
    用传统编程语言编写的函数,可与语义函数混合调用,实现复杂业务逻辑。

  3. 插件系统(Plugins)
    支持将一组相关函数打包成插件,便于复用和共享。官方和社区提供了多种插件,如:

    • 文件操作
    • 网络搜索(Bing)
    • 时间/日期工具
    • 向量数据库集成(如 Azure Cognitive Search、Qdrant)
  4. 记忆(Memory)
    支持长期记忆和短期记忆机制,可将对话历史或外部知识向量化并存储,用于上下文增强。

  5. 自动规划(Planner)
    基于目标自动生成执行计划,动态组合可用函数以完成复杂任务(如“订机票并发送日历邀请”)。

  6. 多语言支持
    官方支持 C#、Python,社区正在推进 Java、TypeScript 等版本。

  7. 与主流 LLM 兼容
    支持 OpenAI、Azure OpenAI、Hugging Face、Ollama、Google Gemini、Anthropic Claude 等。


快速开始(Python 示例)

import semantic_kernel as sk from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion # 初始化内核 kernel = sk.Kernel() # 添加 OpenAI 服务 kernel.add_chat_service( "chat-gpt", OpenAIChatCompletion("gpt-3.5-turbo", api_key="YOUR_API_KEY") ) # 创建语义函数 summarize = kernel.create_semantic_function("将以下内容总结为一句话:{{$input}}") # 调用 result = summarize("今天天气很好,阳光明媚,适合外出散步。") print(result) # 输出:今天阳光明媚,适合外出散步。

应用场景

  • 智能客服机器人
  • 文档自动摘要/生成
  • 个人助理(日程管理、邮件撰写)
  • 企业知识库问答系统
  • 自动化工作流(结合 RPA)

资源链接

  • GitHub 仓库:https://github.com/microsoft/semantic-kernel
  • 官方文档:https://learn.microsoft.com/en-us/semantic-kernel/
  • 示例项目:https://github.com/microsoft/semantic-kernel/tree/main/samples

2.SemanticKernel c# 应用举例

当然!以下是一个使用Semantic Kernel(C#)的典型应用示例,展示如何在 .NET 应用中集成大语言模型(如 OpenAI 或 Azure OpenAI),并通过语义函数(Semantic Function)原生函数(Native Function)实现智能功能。


🧩 场景:自动生成邮件草稿

用户输入一个简单意图(例如“给张经理发一封会议确认邮件”),程序自动:

  1. 生成专业邮件正文;
  2. 获取当前日期;
  3. 返回完整邮件草稿。

✅ 步骤 1:安装 NuGet 包

在你的 C# 项目中,通过 NuGet 安装 Semantic Kernel:

dotnet add package Microsoft.SemanticKernel dotnet add package Microsoft.SemanticKernel.Connectors.OpenAI

如果使用 Azure OpenAI,可改用Microsoft.SemanticKernel.Connectors.AzureOpenAI


✅ 步骤 2:编写 C# 代码

using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.ChatCompletion; using Microsoft.SemanticKernel.Connectors.OpenAI; // 1. 初始化 Kernel var kernel = Kernel.CreateBuilder() .AddOpenAIChatCompletion( modelId: "gpt-3.5-turbo", // 或 gpt-4 apiKey: "YOUR_OPENAI_API_KEY" // 替换为你的 API Key ) .Build(); // 2. 注册一个原生函数:获取当前日期 kernel.ImportPluginFromType<TimePlugin>(); // 3. 定义语义函数(通过内联提示) string emailPrompt = """ 你是一位专业的行政助理。 今天是:{{TimePlugin.GetCurrentDate}}。 请根据以下用户请求,撰写一封正式的中文电子邮件,包含主题和正文。 用户请求:{{$input}} 邮件格式: 主题:... 正文:... """; var emailFunction = kernel.CreateFunctionFromPrompt(emailPrompt); // 4. 调用函数 string userInput = "给张经理发一封会议确认邮件,时间是明天下午3点,地点在3楼会议室。"; var result = await kernel.InvokeAsync(emailFunction, new() { ["input"] = userInput }); // 5. 输出结果 Console.WriteLine(result.GetValue<string>());

✅ 步骤 3:定义原生插件(TimePlugin)

public class TimePlugin { [KernelFunction] public string GetCurrentDate() { return DateTime.Now.ToString("yyyy年MM月dd日"); } }

注意:[KernelFunction]是 Semantic Kernel 1.0+ 的新特性(基于源生成器),无需反射,性能更好。


🖨️ 示例输出

主题:会议确认通知 正文: 尊敬的张经理: 您好! 谨此确认,我们将于明天(2026年01月16日)下午3点在3楼会议室举行会议。请您准时出席。 如有任何问题,请随时与我联系。 此致 敬礼!

🔌 扩展能力

  • 持久化记忆:集成QdrantAzure AI Search实现知识库问答。
  • 自动规划:使用KernelPlanner自动组合多个函数完成复杂任务。
  • 流式响应:支持StreamingKernelFunction实现实时输出。
  • 多模态:结合 DALL·E 插件生成图像(需额外配置)。

📚 官方资源(C#)

  • GitHub 示例:https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples
  • C# 文档:https://learn.microsoft.com/en-us/semantic-kernel/quick-start/csharp/
  • 插件开发指南:https://learn.microsoft.com/en-us/semantic-kernel/agents/plugins/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 5:20:19

LLM语音合成让医患沟通更顺畅

&#x1f4dd; 博客主页&#xff1a;Jax的CSDN主页 LLM语音合成&#xff1a;破解医患沟通壁垒&#xff0c;构建无障碍医疗体验 目录 LLM语音合成&#xff1a;破解医患沟通壁垒&#xff0c;构建无障碍医疗体验 引言&#xff1a;沟通鸿沟下的医疗痛点 维度一&#xff1a;技术应用…

作者头像 李华
网站建设 2026/4/22 6:07:03

django-flask基于python的车牌识别停车场与车辆管理系统

目录django-flask基于python的车牌识别停车场与车辆管理系统的摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;django-flask基于python的车牌识别停车场与车辆管理系统的摘要 该…

作者头像 李华
网站建设 2026/4/24 22:13:35

C# winform部署yolo26-seg实例分割的onnx模型演示源码+模型+说明

yolo26已经正式发布了&#xff0c;因此使用C#代码实现YOLO26-seg实例分割部署&#xff0c;首先看yolov11-seg网络结构&#xff0c;发现输出shape是1x116x8400 再来看看yolo26-seg网络结构输出&#xff0c;输出shape是1x300x38 可见yolo11和yolo26输出是不一样的是不能共用代码。…

作者头像 李华
网站建设 2026/4/23 15:21:32

吐血推荐8个一键生成论文工具,研究生轻松搞定论文写作!

吐血推荐8个一键生成论文工具&#xff0c;研究生轻松搞定论文写作&#xff01; 论文写作的救星&#xff0c;AI 工具如何改变研究生的学术生活 在当今信息爆炸的时代&#xff0c;研究生们面对的不仅是繁重的课程任务&#xff0c;还有论文写作带来的巨大压力。传统的写作方式不仅…

作者头像 李华
网站建设 2026/4/4 5:04:17

我的7年C4D路:从鼠标磨模型到四酷网救急

干C4D设计这行转眼第七年了&#xff0c;现在跟圈里新人聊天&#xff0c;他们都觉得我效率高得离谱&#xff0c;一个电商产品展示场景半天就能搞定。每次我都笑着跟他们说&#xff0c;不是我手艺有多神&#xff0c;是找对了工具——四酷网。这话要是放在五年前&#xff0c;我自己…

作者头像 李华
网站建设 2026/4/28 4:58:32

航天器结构数字孪生 + AI:极端环境下应力应变实时仿真技术

点赞、关注、收藏&#xff0c;不迷路 该技术是一个融合了先进数字工程、人工智能与航天系统工程的前沿研究方向。以下是对该主题的系统性解析&#xff0c;涵盖其背景、关键技术、挑战与应用前景 一、背景与意义 航天器在发射、轨道运行、再入等阶段会经历极端环境&#xff0c;如…

作者头像 李华