news 2026/5/6 2:32:30

微软SemanticKernel:AI开发神器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微软SemanticKernel:AI开发神器

Semantic Kernel(语义内核)是由微软开发的开源 AI 开发工具包(SDK),旨在帮助开发者将大语言模型(LLM)能力无缝集成到 C#、Python 和 Java 应用中,快速构建企业级 AI 智能体(Agent)、RAG(检索增强生成)系统等高级应用。


🧠 一、核心定位

Semantic Kernel 不是一个 LLM,而是一个“AI 中间件”—— 它抽象了与大模型交互的复杂性,提供统一接口,让开发者专注于业务逻辑而非底层调用细节。

✅ 目标:让传统代码 + 大模型 = 智能应用


🔑 二、五大核心概念

1.Kernel(内核)

  • 是整个系统的“容器”或“中枢”。
  • 负责管理:
    • AI 服务(如 OpenAI、Azure OpenAI、Ollama、Google AI 等)
    • 插件(Plugins)
    • 提示词模板(Prompt Templates)
    • 向量存储(Vector Stores)
  • 支持依赖注入、中间件(如日志、安全过滤器)。

2.Plugins(插件)

插件是扩展 LLM 能力的关键,分为两类:

类型实现方式特点适用场景
语义插件(Semantic Plugin)基于skprompt.txt+config.json的提示词模板无需写代码,靠 Prompt 控制输出文本生成、翻译、摘要等创意任务
本地插件(Native Plugin)用 C#/Python/Java 编写的类和方法可执行确定性逻辑(如调 API、查数据库)获取实时数据、执行业务操作

示例:

[KernelFunction, Description("获取当前时间")] public string GetCurrentTime() => DateTime.Now.ToString("yyyy-MM-dd");

3.Prompt Engineering(提示工程)

  • 支持变量插值(如{{$input}}
  • 支持角色设定(system/user/assistant)
  • 可通过模板文件管理,便于版本控制和团队协作。

4.AI Services(AI 服务集成)

支持多后端:

  • OpenAI / Azure OpenAI
  • Google Gemini
  • Amazon Bedrock
  • Ollama(本地模型,如 Llama 3、Qwen)
  • Hugging Face(需自定义 HTTP Client)

💡 即使官方未直接支持某模型(如 ChatGLM),也可通过自定义 HttpClient接入。

5.Vector Stores(向量存储)

用于 RAG 场景,支持:

  • Azure AI Search
  • Qdrant
  • Redis
  • Weaviate
  • Pinecone(社区支持)

⚙️ 三、典型工作流程(函数调用)

当用户提问 “杭州今天天气如何?”:

  1. Kernel 将所有可用插件函数序列化为 JSON Schema;
  2. 将聊天历史 + 函数描述发送给 LLM;
  3. LLM 决定是否调用函数(如GetCityId("杭州")GetWeather(cityId));
  4. Kernel 自动解析函数调用请求,执行本地代码;
  5. 将结果回填到对话上下文,再次送入 LLM 生成最终回答;
  6. 循环直到 LLM 返回纯文本响应。

✅ 全过程自动完成,无需手动解析 function_call。


📦 四、快速上手(C# 示例)

using Microsoft.SemanticKernel; var builder = Kernel.CreateBuilder(); builder.Services.AddAzureOpenAIChatCompletion( deploymentName: "gpt-4", endpoint: "https://your-resource.openai.azure.com/", apiKey: "your-key" ); var kernel = builder.Build(); // 添加本地插件 kernel.Plugins.AddFromType<WeatherPlugin>("weather"); // 发起请求(启用自动函数调用) var result = await kernel.InvokePromptAsync("杭州今天天气怎么样?"); Console.WriteLine(result);

🌐 五、企业级特性

  • 安全性:支持输入/输出过滤器(防止越狱、敏感信息泄露)
  • 可观测性:记录 Token 使用、函数耗时、LLM 输入输出
  • 可扩展:支持自定义内存、日志、认证等组件
  • 多语言:C#(最成熟)、Python(活跃)、Java(Beta)

📚 学习资源

  • GitHub: https://github.com/microsoft/semantic-kernel
  • 官方文档: https://learn.microsoft.com/en-us/semantic-kernel/
  • 示例项目:/samples目录含 RAG、Agent、插件等完整 Demo

如果你有具体目标(比如“想用本地 Qwen 模型 + 自定义插件”),我可以提供详细代码模板!欢迎继续提问。

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

学霸同款9个降AI率工具,千笔·专业降AI率智能体帮你解决AI检测难题

AI降重工具&#xff1a;学霸的高效选择 在当前学术写作中&#xff0c;AI生成内容的普及让论文的AIGC率和查重率成为不可忽视的问题。无论是继续教育的学生还是研究生&#xff0c;都面临着如何有效降低AI痕迹、保持文章原创性与流畅性的挑战。专业的AI降重工具应运而生&#xff…

作者头像 李华
网站建设 2026/5/1 3:18:20

C语言基础知识 -- BCD码

// 压缩的BCD码 如 十进制123&#xff0c; 对应 0x0123 void LongByteToBCD1(UINT8 longByte, UINT8 *a) {UINT16 bcd;bcd((longByte/100)<<8)(((longByte%100)/10)<<4)(longByte%10);*a (UINT8)(bcd>>8); *(a1) (UINT8)bcd; }UINT16 BCDToLongByte(UIN…

作者头像 李华
网站建设 2026/5/5 8:35:51

计算机毕业设计之jsp高校实践课流程管理系统的设计与实现

高校实践课流程管理系统是学校中重要的一环&#xff0c;高校实践课流程管理是教师、学生获取信息的主要渠道。于是经过考虑之后决定开发基于JSP技术设计与实现了一款简洁、轻便的高校实践课流程管理系统。本系统解决了课程任务的主要问题&#xff0c;包括以下多个功能模块&…

作者头像 李华
网站建设 2026/5/1 7:57:21

计算机视觉——Opencv(图像直方图与掩膜)

图像直方图 直方图&#xff1a; 是图像中像素强度分布的图形表达方式。 直方图的作用&#xff1a; 例如视频中&#xff0c;通过标记帧和帧之间显著的边缘和颜色的统计变化&#xff0c;来检测视频中场景的变换。 灰度值在0 - 255范围之间总共 256 个值&#xff0c;可以将我们…

作者头像 李华
网站建设 2026/5/3 14:38:55

数控加工试切成本直降30%!国产数控编程仿真技术真牛

干数控加工这行快8年了&#xff0c;每次在机床上直接试切&#xff0c;我心都悬到嗓子眼。谁不是挣点辛苦钱&#xff0c;哪经得起撞刀、损活的折腾&#xff1f;上次试切一个复杂零件&#xff0c;就因为刀路没算准&#xff0c;不仅废了一根两百多的坯料&#xff0c;机床主轴检修又…

作者头像 李华