Semantic Kernel Kernel Memory 入门系列 ❤️‍

发布时间:2026/7/25 20:41:13
Semantic Kernel  Kernel Memory 入门系列 ❤️‍ Semantic Kernel Kernel Memory 入门系列 ❤️‍一、从基础概念说起什么是 Semantic Kernel在人工智能快速发展的今天开发者需要一种高效的方式来集成大语言模型LLM到应用中。Semantic Kernel 是微软推出的一个轻量级 SDK它像一座桥梁连接了你的代码与 AI 模型。它的核心思想是让 AI 成为你代码中的“协作者”而不是一个黑盒。### 核心要素-Kernel核心对象负责管理 AI 服务、内存和插件。-Plugins插件可以是原生代码或语义函数用于扩展 AI 能力。-Memory记忆系统用于存储和检索上下文信息。### 安装环境首先确保你已经安装了 Python 3.8然后运行bashpip install semantic-kernel## 二、第一个示例创建一个简单的对话 Kernel让我们从最基础的开始——初始化一个 Kernel 并让它回答简单问题。python# 导入 Semantic Kernel 库import semantic_kernel as skfrom semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, OpenAIChatCompletion# 1. 创建 Kernel 实例kernel sk.Kernel()# 2. 配置 AI 服务以 OpenAI 为例# 请将下面的 API_KEY 替换为你的实际密钥api_key your-api-key-hereservice_id gpt-3.5-turbokernel.add_chat_service( service_id, OpenAIChatCompletion(service_id, api_key))# 3. 定义语义函数让 AI 执行任务prompt 请用一句话解释什么是 Semantic Kernelresponse await kernel.run_function( prompt, service_idservice_id)# 4. 输出结果print(fAI 回答{response.result})运行结果示例AI 回答Semantic Kernel 是一个轻量级框架帮助开发者将大语言模型集成到应用中实现智能编排。这个例子展示了最基本的流程初始化 → 配置服务 → 调用函数。注意这里我们使用了await关键字因为 AI 调用是异步的。## 三、进阶概念Kernel Memory 的力量Kernel Memory 是 Semantic Kernel 的“记忆系统”。它允许你的应用记住过去的对话、文档知识或用户偏好从而实现更智能的交互。想象一下如果你让 AI 记住你上次聊天的内容它就能给出更连贯的回答。### Memory 的核心组件-Memory Store存储记忆的数据库如向量数据库。-Memory Plugin将记忆集成到 Kernel 中的插件。-Embedding将文本转化为向量用于相似度搜索。## 四、第二个示例带有记忆的问答系统这个示例将展示如何让 Kernel 记住一段文本并在后续对话中引用它。pythonimport semantic_kernel as skfrom semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletionfrom semantic_kernel.memory import SemanticTextMemory, VolatileMemoryStorefrom semantic_kernel.connectors.memory.volatile import VolatileMemoryStore# 1. 初始化 Kernel 和记忆系统kernel sk.Kernel()api_key your-api-key-hereservice_id gpt-3.5-turbokernel.add_chat_service(service_id, OpenAIChatCompletion(service_id, api_key))# 2. 创建记忆存储使用内存中的易失性存储适合测试memory_store VolatileMemoryStore()memory SemanticTextMemory(storagememory_store, embeddings_kwargs{service_id: service_id})kernel.import_memory(memory)# 3. 向记忆中添加知识knowledge_text Alice 最喜欢的编程语言是 Python她每天写代码 3 小时。await memory.save_information_async( collectionuser_profiles, textknowledge_text, idalice_info)# 4. 创建带记忆的语义函数prompt 根据记忆Alice 有什么特点context_variables sk.ContextVariables()context_variables[memory_query] Alice 的编程习惯response await kernel.run_function( prompt, service_idservice_id, input_contextcontext_variables)# 5. 输出结果print(fAI 回答{response.result})# 输出示例Alice 最喜欢的编程语言是 Python她每天写代码 3 小时。关键点解释-VolatileMemoryStore是内存中的存储重启后会丢失。生产环境建议使用AzureCognitiveSearchMemoryStore等持久化方案。-save_information_async将知识以向量形式存储后续可以通过相似度搜索检索。- 记忆查询是隐式的——Kernel 会自动将memory_query转化为向量搜索找到最相关的记忆片段。## 五、高级用法自定义插件与记忆融合当你的应用需要处理复杂业务逻辑时可以创建自定义插件。例如一个“客户支持机器人”插件可以同时访问记忆和 API。python# 自定义插件示例简化版from semantic_kernel.skill_definition import sk_functionclass CustomerSupportPlugin: sk_function( description根据用户问题从记忆中检索相关知识并生成回答 ) async def answer_question(self, context: sk.SKContext) - str: # 从上下文中获取记忆 memory context.memory query context[user_question] # 在记忆库中搜索 results await memory.search_async( collectionknowledge_base, queryquery, limit3 ) # 将检索到的知识拼接到提示中 context[knowledge] \n.join([r.text for r in results]) prompt f基于以下知识回答问题\n{context[knowledge]}\n\n问题{query} # 调用 AI 生成回答 return await kernel.run_function(prompt, service_idgpt-3.5-turbo)# 注册插件kernel.import_skill(CustomerSupportPlugin(), skill_namesupport)## 六、总结从入门到实战的旅程通过本系列我们完成了从零基础到中级应用的跨越1.基础概念理解了 Kernel 作为 AI 编排核心以及插件和记忆如何扩展功能。2.第一个示例学会了如何用 5 行代码让 AI 回答问题。3.记忆系统掌握了SemanticTextMemory的用法让应用具备上下文感知能力。4.进阶实战看到了如何将记忆与自定义插件结合构建智能业务系统。Semantic Kernel 的魅力在于它的模块化设计——你可以像搭积木一样组合不同组件。下一步建议你尝试- 使用AzureCognitiveSearch实现持久化记忆。- 结合Planner实现多步任务自动规划。- 将记忆与Chain of Thought技术结合提升推理质量。记住AI 不是魔法而是工具。Semantic Kernel 给了你一套精良的工具箱剩下的就看你的创造力了