Semantic Kernel #

什么是 Semantic Kernel? #

Semantic Kernel 是微软开源的轻量级 SDK(软件开发工具包),旨在帮助开发者将大语言模型(LLM)如 OpenAI、Azure OpenAI、Hugging Face 等快速集成到应用程序中。它提供了一套优雅的抽象层,让开发者能够专注于业务逻辑,而无需关心底层 AI 模型的复杂性。

Semantic Kernel 的核心优势 #

优势 说明
轻量级设计 最小化依赖,易于集成到现有项目
多语言支持 支持 C#、Python、Java 等主流语言
模块化架构 插件系统支持灵活扩展
企业级就绪 微软官方维护,Azure 生态深度集成
AI 编排能力 自动规划和执行多步骤 AI 任务
开源免费 MIT 许可证,社区活跃

文档结构 #

本指南按以下结构组织,适合初学者按顺序学习:

1. 基础入门 #

主题 描述 文档链接
Semantic Kernel 简介 发展历史、核心特点、应用场景 intro.md
安装与配置 环境搭建、依赖安装、项目初始化 installation.md
第一个应用 Hello World、基本调用流程 first-app.md
核心概念 Kernel、Plugin、Function 等核心概念 concepts.md

2. 核心组件 #

主题 描述 文档链接
Kernel 内核 内核创建、配置、生命周期管理 kernel.md
插件系统 插件开发、注册、管理 plugins.md
函数 语义函数、原生函数、函数组合 functions.md
规划器 自动规划、任务分解、执行策略 planners.md

3. 提示词工程 #

主题 描述 文档链接
提示词模板 模板语法、变量、条件渲染 prompts.md
提示词函数 从提示词创建函数、参数传递 prompt-functions.md
Handlebars 模板 Handlebars 语法、高级模板功能 handlebars.md

4. 连接器 #

主题 描述 文档链接
OpenAI 连接器 连接 OpenAI API、模型配置 openai.md
Azure OpenAI 连接器 Azure 部署、认证、最佳实践 azure-openai.md
其他 LLM 连接器 Hugging Face、本地模型等 other-llms.md

5. 记忆与向量 #

主题 描述 文档链接
记忆系统 对话记忆、长期存储、检索 memory.md
向量嵌入 文本向量化、相似度计算 embeddings.md
RAG 应用 检索增强生成、知识库构建 rag.md

6. 高级特性 #

主题 描述 文档链接
流式输出 实时响应、流式处理 streaming.md
函数调用 自动函数调用、工具使用 function-calling.md
过滤器 请求过滤、日志、监控 filters.md
依赖注入 DI 集成、服务配置 di.md

7. 实战案例 #

主题 描述 文档链接
智能聊天机器人 多轮对话、上下文管理 chatbot.md
文档问答系统 文档解析、知识检索 document-qa.md
AI Agent 开发 自主决策、任务执行 agent.md
工作流自动化 流程编排、自动化任务 workflow.md

学习路线 #

text
入门阶段
├── Semantic Kernel 简介
├── 安装与配置
├── 第一个应用
└── 核心概念理解

基础阶段
├── Kernel 内核使用
├── 插件系统开发
├── 函数创建与调用
└── 基本提示词工程

进阶阶段
├── 高级提示词技术
├── 多模型连接器
├── 记忆与向量存储
└── 规划器使用

高级阶段
├── 流式输出处理
├── 函数调用机制
├── 过滤器与中间件
└── 依赖注入集成

专家阶段
├── AI Agent 架构设计
├── 企业级应用部署
├── 性能优化
└── 最佳实践

核心架构概览 #

架构图 #

text
┌─────────────────────────────────────────────────────────────┐
│                    Semantic Kernel 架构                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                    Application                        │   │
│  └─────────────────────────┬───────────────────────────┘   │
│                            │                                │
│  ┌─────────────────────────▼───────────────────────────┐   │
│  │                      Kernel                          │   │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │   │
│  │  │   Plugins   │  │  Functions  │  │  Planners   │  │   │
│  │  └─────────────┘  └─────────────┘  └─────────────┘  │   │
│  └─────────────────────────┬───────────────────────────┘   │
│                            │                                │
│  ┌─────────────────────────▼───────────────────────────┐   │
│  │                   Connectors                         │   │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌────────┐  │   │
│  │  │ OpenAI  │  │ Azure   │  │Hugging  │  │  More  │  │   │
│  │  │         │  │ OpenAI  │  │ Face    │  │        │  │   │
│  │  └─────────┘  └─────────┘  └─────────┘  └────────┘  │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

核心组件说明 #

组件 描述
Kernel 核心引擎,管理所有组件的生命周期和协调执行
Plugins 可复用的功能模块,封装特定能力
Functions 执行单元,包括语义函数和原生函数
Planners 智能规划器,自动分解和编排任务
Connectors 连接器,对接各种 AI 服务和数据源
Memory 记忆系统,存储对话历史和知识

支持的编程语言 #

语言 状态 包名
C# ✅ 正式支持 Microsoft.SemanticKernel
Python ✅ 正式支持 semantic-kernel
Java ✅ 正式支持 com.microsoft.semantic-kernel

快速开始 #

C# 示例 #

csharp
using Microsoft.SemanticKernel;

var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
    "your-deployment-name",
    "your-endpoint",
    "your-api-key");

var kernel = builder.Build();

var result = await kernel.InvokePromptAsync("你好,请介绍一下自己");
Console.WriteLine(result);

Python 示例 #

python
import semantic_kernel as sk
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion

kernel = sk.Kernel()

kernel.add_service(AzureChatCompletion(
    deployment_name="your-deployment-name",
    endpoint="your-endpoint",
    api_key="your-api-key"
))

result = await kernel.invoke_prompt("你好,请介绍一下自己")
print(result)

适用人群 #

人群 建议
初学者 从基础入门开始,了解 AI 应用开发概念
.NET 开发者 重点学习 C# SDK 和 Azure 集成
Python 开发者 重点学习 Python SDK 和数据处理
架构师 全面掌握,重点关注企业级架构设计
AI 工程师 深入学习高级特性和最佳实践

学习建议 #

  1. 循序渐进:按照文档顺序学习,先理解核心概念
  2. 动手实践:每学完一个章节,动手编写代码验证
  3. 项目驱动:结合实际项目需求,加深理解
  4. 关注更新:Semantic Kernel 更新频繁,保持学习
  5. 社区参与:加入社区讨论,分享经验

资源推荐 #

开始学习 #

准备好了吗?让我们从 Semantic Kernel 简介 开始你的 AI 应用开发之旅!

最后更新:2026-04-04