微软SemanticKernel:AI与编程的无缝融合

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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6024BZ10200逻辑控制器模块

6024BZ10200 逻辑控制器模块是一款工业控制系统中的核心功能模块&#xff0c;通常用于 ABB MOD 300 系列或类似机架式控制系统中。它主要负责逻辑运算、控制策略执行以及系统内部各模块的协调&#xff0c;是整个控制系统实现自动化逻辑的关键单元。主要功能执行逻辑控制和顺序…

搭建简易的AI在线家聊天界面,支持学生文字/语音提问,AI实时回复讲解内容。

下面我将为您提供一个完整的、基于Python的“智学伙伴”&#xff08;EduBuddy&#xff09;简易AI在线家教聊天界面程序。项目概览&#xff1a;EduBuddy - 智学伙伴核心功能&#xff1a;这是一个基于Web的简易AI家教系统。学生可以通过文字或语音向AI老师提问&#xff0c;系统会…

策知道解读:复盘长沙2026年的“万亿突围”与“换道超车”逻辑

【编者按】读懂一座城市的未来&#xff0c;不能仅凭感觉&#xff0c;更要看数据背后的趋势。近期&#xff0c;策知道平台全量收录了刚刚发布的2026年&#xff08;“十五五”开局&#xff09;政府工作报告。通过平台对两份万字报告进行多维指标对比和语义热词分析&#xff0c;可…

Django极速开发:三大核心优势解析

1.Django极速开发&#xff1a;三大核心优势解析Django 是一个高级的 Python Web 框架&#xff0c;以“快速开发、干净实用的设计”为核心理念。它由经验丰富的开发者构建&#xff0c;旨在减少 Web 开发中的重复性工作&#xff0c;让你专注于业务逻辑本身&#xff0c;而不是底层…

Java高频面试题:线程池_java线程池面试题,零基础入门到精通,收藏这篇就够了

目录 一、为什么要用线程池&#xff1f;线程池的优势是什么&#xff1f;二、线程池的几个重要参数介绍&#xff1f;三、线程池的执行流程&#xff1f;/一个任务进来的处理流程&#xff1f;四、如何关闭线程池&#xff1f;五、如何合理配置线程池&#xff1f; 一、为什么要用线…

RPA与大模型Agent:智能自动化的未来

探索RPA&#xff08;机器人流程自动化&#xff09;与大模型Agent的融合&#xff0c;是当前智能自动化领域的重要趋势。两者各有优势&#xff0c;结合后可显著提升企业自动化能力的广度与深度。以下从概念、差异、协同方式、应用场景及未来趋势等方面进行系统性探讨&#xff1a;…

Trae(国际版)限免!全部免费一个月

Trae 国际版全部用户&#xff08;Pro订阅和Free非订阅同时可用&#xff09;&#xff0c;注意是国际版&#xff0c;不是 Trae CN&#xff01;活动权益&#xff1a; Free 用户&#xff1a;账号增加 600 次 Fast Request&#xff0c;有效期至北京时间 2 月 14 日 10:00 Pro 用户&a…

6005BZ10000控制板

6005BZ10000 控制板是一种工业控制模块&#xff0c;通常用于 ABB MOD 300 系列或类似工控系统中。它本身不是独立运行的板子&#xff0c;而是作为机架系统里的功能模块&#xff0c;用于处理特定的数据或控制功能。基本信息型号&#xff1a;6005BZ10000类型&#xff1a;D/F 模块…

手把手教你用9款AI论文生成器轻松搞定毕业论文

H2 前言&#xff1a;为什么你需要AI论文生成器&#xff1f; 对于大学生、研究生、科研人员来说&#xff0c;毕业论文不仅考验学术水平&#xff0c;更是时间、精力和耐力的巨大挑战。从选题到文献搜集&#xff0c;从搭建框架到逐章撰写&#xff0c;再到反复降重与修改&#xff…

学霸同款2026 8款一键生成论文工具测评:毕业论文写作全攻略

学霸同款2026 8款一键生成论文工具测评&#xff1a;毕业论文写作全攻略 2026年学术写作工具测评&#xff1a;从功能到体验的深度解析 随着人工智能技术在学术领域的广泛应用&#xff0c;论文写作工具已成为本科生和研究生不可或缺的助手。然而&#xff0c;面对市场上琳琅满目的…

价值投资中的生物计算DNA存储技术前景

价值投资中的生物计算DNA存储技术前景关键词&#xff1a;价值投资、生物计算、DNA存储技术、技术前景、投资潜力摘要&#xff1a;本文聚焦于价值投资视角下的生物计算DNA存储技术前景。首先介绍了生物计算DNA存储技术的背景&#xff0c;包括其目的、预期读者、文档结构和相关术…

Java小白面试互联网大厂:从核心技术到场景应用

Java小白面试互联网大厂&#xff1a;从核心技术到场景应用 场景设定 面试官&#xff1a;您好&#xff0c;请坐。我们今天的面试会围绕一些技术栈展开&#xff0c;您可以根据自己的理解回答问题。开始吧。 超好吃&#xff1a;好的&#xff0c;谢谢您&#xff01;第一轮提问&…

kingbase数据库解决报错存在多个序列问题

--查询所有序列 SELECT sequencename FROM pg_sequences WHERE sequencename LIKE %table_name%;-- 查询正在使用的序列 SELECT pg_get_serial_sequence(table_name, table_id);--删除多余序列 DROP SEQUENCE IF EXISTS table_id_seq;

AbMole | 化学物质来源可变性为内分泌干扰评估带来新挑战

阿特拉津作为一种广泛使用的除草剂&#xff0c;其潜在的内分泌干扰特性一直是毒理学研究中的焦点。经济合作与发展组织&#xff08;OECD&#xff09;为了标准化评估化学物质的内分泌干扰潜力&#xff0c;已经接受了一系列体外测试方法。在这些方法中&#xff0c;OECD 455和OECD…

视频融合平台EasyCVR的核心技术原理与应用实践解析

在万物互联的智能化时代&#xff0c;视频数据已成为城市管理、企业运营和安全生产的核心要素。然而&#xff0c;面对海量、异构、分散的视频资源&#xff0c;如何实现统一管理、智能分析与高效应用&#xff0c;是各行各业面临的共同挑战。正是在这样的背景下&#xff0c;EasyCV…

点亮“数字政府”!移动云以云智算全面推动政务服务效能升级

当下&#xff0c;AI已成为驱动全球科技革命与产业升级的核心引擎。作为AI落地的重要场景&#xff0c;政务领域能够依托大模型等前沿技术&#xff0c;实现从“人工主导”向“智能协同”跨越。尤其在我国全力推进“高效办成一件事”的大背景下&#xff0c;政策层面的支持更是为政…

AbMole | 全合成纳米纤维水凝胶实现卵巢癌类器官无酶释放

在临床前癌症研究中&#xff0c;能够高度模拟患者肿瘤组织病理学特征、基因表达谱和对外界刺激应答的三维体外模型&#xff0c;其价值不言而喻。患者来源肿瘤类器官&#xff08;PTOs&#xff09;正是这样一种强大的工具&#xff0c;它源于患者自身的肿瘤细胞&#xff0c;在体外…

供应链成本到底贵在哪?采购端的七类关键成本,一文讲透

每次开会谈降本&#xff0c;大家张口就是&#xff1a;“运费涨了&#xff01;”、“铜价又涨了&#xff01;”好像所有问题都是外部的&#xff0c;我们只能认栽&#xff1f;但你有没有想过—— 同样的原材料&#xff0c;别人家采购价比你低10%&#xff1b; 同样的订单量&#x…

构建深度场景适配能力,移动云电脑继续领跑云终端赛道

在数字化浪潮与AI技术加速普及的双重驱动下&#xff0c;用户对终端设备的需求已从单一硬件性能&#xff0c;向算力支撑、AI应用、数据安全等多元化升级&#xff0c;PC市场也因此迈入结构性变革的关键阶段。据IDC预测&#xff0c;2026年中国PC市场需求旺盛&#xff0c;其中以云电…

传统教学vs韩式训练:一场羽球教育的革新实验

传统羽毛球教学与韩式训练革新对比分析一、技术训练&#xff1a;经验驱动 vs 数据驱动传统教学方式&#xff1a;依赖教练经验&#xff0c;通过示范、讲解和重复练习纠正动作&#xff0c;缺乏量化标准。局限&#xff1a;学员动作偏差难以精准定位&#xff0c;技术提升依赖主观判…