news 2026/6/4 12:09:43

微软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/6/2 2:25:13

DDD 架构演进,单层、三层,四层,工程分层演进过程!

定义接口、创建方法、调用展示,其实编程写代码说到底也就这3步,人人都是程序员👨🏻‍💻。公司老板都觉得,它有个AI工具,它都能写代码。 但现在的系统工程的分层结构,可不只是一层就写个 Controller,甚至是3层(Model-View-Controller),也有可能是4层(DDD)架构。…

作者头像 李华
网站建设 2026/6/1 13:07:59

Python 的 with 语句:把「资源管理」这件事交给语法

文章目录一、with 语句是干什么的&#xff1f;二、不用 with 会发生什么&#xff1f;三、传统解法&#xff1a;try / finally四、with 的本质&#xff1a;语法级 try / finally五、上下文管理器&#xff08;Context Manager&#xff09;5.1 一个最简单的例子5.2 __enter__ 和 _…

作者头像 李华
网站建设 2026/6/1 3:25:28

【保姆级教程】Python手搓“贾维斯”:一行代码打通GPT-5.2/Sora 2/Veo 3,拒绝API焦虑,这波赢麻了

摘要&#xff1a; 本文将带你从零开始 利用Python构建一个企业级的多模态AI中台 深度解析如何绕过复杂的网络环境和风控限制 通过向量引擎实现对GPT-5.2、Sora 2、Veo 3等顶级模型的统一调度 内含完整代码实现、架构分析及避坑指南 建议收藏后阅读 一、 程序员的至暗时刻与黎…

作者头像 李华