当前位置: 首页 > article >正文

Semantic Kernel 深度解析:微软的 Agent 开发框架

Semantic Kernel 深度解析:微软的 Agent 开发框架摘要/引言开门见山(Hook)你有没有想过,像《钢铁侠》里贾维斯那样的通用智能助手,会不会在202X年就不再是科幻电影的专属?当我们打开手机的Siri、电脑的Cortana或者ChatGPT网页版,它们确实能回答问题、写邮件、甚至生成简单的代码片段,但它们真的能自主帮我们完成从“订一张明天去上海虹桥的最早高铁二等座,同时给同事发会议改期提醒,还要帮我查明天虹桥附近最近的全家便利店开门时间”这样的多步骤、跨工具、需要上下文感知的复杂任务吗?答案是:用通用的单模型Prompt很难稳定做到,但用微软最新开源的、专门为大语言模型(LLM)应用构建的Agent开发框架——Semantic Kernel(以下简称SK),你可以在短短几小时甚至几十分钟内,原型化一个这样的“小贾维斯”雏形!问题陈述(Problem Statement)随着GPT-4、Claude 3、文心一言、通义千问等大语言模型的爆发式发展,基于LLM的应用已经从“Demo秀场”阶段进入到“落地实用”阶段。但在构建真正生产级、自主、可靠、可扩展的LLM Agent(智能体)时,我们会遇到一系列棘手的共性问题:多模态/多工具能力的整合复杂度高:传统的LLM只能处理文本或文本化的其他模态数据(比如把图片转成base64编码丢进去),要让它调用浏览器API查天气、调用支付API订酒店、调用PDF解析工具读取合同、调用数据库查询订单信息,需要开发者手动编写大量的“胶水代码”(Glue Code),而且不同工具的参数格式、返回值解析逻辑千差万别,维护成本极高。上下文窗口(Context Window)的限制难以突破:当前主流的LLM上下文窗口大小在4K-128K tokens之间(虽然Claude 3 Opus达到了200K,但价格昂贵,且不是永久免费),如果我们要把用户的所有历史对话、所有工具的调用日志、所有读取到的外部数据都塞到上下文中,不仅会大幅增加成本(按token计费),还会导致LLM的响应速度变慢、甚至因为上下文溢出而失效。Prompt Engineering(提示工程)的“脆弱性”和“可维护性差”:单靠给LLM写一大段“超级Prompt”(Super Prompt)来引导它完成复杂任务,不仅容易因为LLM版本更新、用户输入风格变化而失效(脆弱性),而且超级Prompt本身就是一堆杂乱无章的文字,很难进行版本控制、模块化管理和团队协作(可维护性差)。任务规划(Planning)和推理链(Reasoning Chain)的不可控性:LLM虽然有一定的“思维链”(Chain of Thought, CoT)能力,但它的推理过程往往是“黑盒”的,开发者很难预测它下一步会做什么、会调用哪些工具,也很难在它出错的时候及时干预和修正。安全性和合规性的要求难以满足:在生产级应用中,我们需要对用户的输入进行过滤(避免恶意Prompt注入)、对工具的调用进行权限控制(比如普通用户不能调用支付API、管理员可以调用)、对敏感数据进行脱敏处理(比如不能把用户的身份证号、银行卡号直接丢给LLM),但这些功能在传统的LLM应用开发中都需要开发者从零开始实现,工作量巨大。核心价值(Value Proposition)Semantic Kernel的出现,就是为了系统性地解决上述所有LLM Agent开发中的共性问题。它是微软开源的、基于.NET、Python、Java三种主流编程语言的、生产级、开源免费、跨平台的Agent开发框架,核心价值在于:提供了一套标准化的工具整合机制:SK将所有工具统一封装成“插件”(Plugin),开发者只需要按照SK的规范编写插件的元数据(Metadata)和实现代码,SK就会自动帮LLM识别插件的功能、生成调用参数、解析返回值,极大地减少了胶水代码的编写量。提供了一套可扩展的记忆(Memory)系统:SK的记忆系统支持向量数据库(Vector DB)存储,可以将用户的历史对话、工具的调用日志、外部文档等数据转换成向量(Embedding)存入向量数据库,当LLM需要相关信息时,SK会自动从向量数据库中检索出最相关的Top-K条数据,塞到上下文中,既突破了上下文窗口的限制,又降低了成本。提供了一套模块化的Prompt管理机制:SK将Prompt模块化、语义化,封装成“语义函数”(Semantic Function),开发者可以将不同的语义函数组合成“管道”(Pipeline)或者“工作流”(Workflow),进行版本控制、模块化管理和团队协作,大大提高了Prompt Engineering的可维护性和稳定性。提供了一套可定制的任务规划机制:SK内置了多种任务规划器(Planner),比如Basic Planner、Action Planner、Sequential Planner、Stepwise Planner等,开发者可以根据自己的需求选择合适的规划器,或者自定义规划器,让LLM的推理过程变得“白盒化”,可以预测、可以干预、可以修正。提供了一套完善的安全性和合规性机制:SK内置了Prompt过滤器(Prompt Filter)、工具调用权限控制(Function Authorization)、敏感数据脱敏(Sensitive Data Redaction)等功能,开发者只需要简单的配置,就可以满足生产级应用的安全性和合规性要求。文章概述(Roadmap)本文将对Semantic Kernel进行全方位、深度、系统性的解析,主要涵盖以下内容:Semantic Kernel的核心概念与架构:详细介绍SK的核心概念(包括内核、插件、函数、记忆、规划器等)、整体架构(包括前端层、中间层、后端层)以及各个核心要素之间的关系(使用Markdown表格、ER图、交互关系图进行可视化展示)。Semantic Kernel的数学模型与核心算法:简要介绍SK背后用到的数学模型(包括向量嵌入、余弦相似度、Top-K检索等)和核心算法(包括Prompt模板填充算法、规划器生成算法、工具调用验证算法等),并使用LaTeX公式和Mermaid流程图进行可视化展示。Semantic Kernel的快速入门与环境搭建:分别介绍基于.NET、Python、Java三种主流编程语言的SK环境搭建方法,并提供一个简单的“Hello World”示例和一个稍微复杂一点的“查天气+写邮件”示例,让读者能够快速上手。Semantic Kernel的核心功能详解:深入解析SK的核心功能,包括插件开发与管理、语义函数开发与管理、记忆系统的使用、规划器的使用与定制、安全性和合规性机制的使用等,并提供大量的Python源代码示例。Semantic Kernel的实际场景应用与项目实战:以一个“智能旅行助手”(Travel Assistant)为项目实战案例,详细介绍项目背景、环境安装、系统功能设计、系统架构设计、系统接口设计、系统核心实现源代码等,让读者能够将所学知识应用到实际项目中。Semantic Kernel的最佳实践与行业发展趋势:分享SK的最佳实践Tips(包括插件设计最佳实践、语义函数设计最佳实践、记忆系统使用最佳实践、规划器选择最佳实践等),并通过Markdown表格梳理LLM Agent开发框架的问题演变发展历史,展望SK和整个LLM Agent开发领域的未来发展趋势。结论与展望:简要回顾本文的主要内容,再次强调SK的核心价值,鼓励读者尝试使用SK构建自己的LLM Agent,并提出一些开放性问题以引发讨论。正文一、 Semantic Kernel的核心概念与架构1.1 核心概念在深入了解Semantic Kernel的架构之前,我们首先需要掌握SK的几个核心概念,这些概念是SK的“骨架”,理解了它们,就相当于掌握了SK的基本使用方法。1.1.1 内核(Kernel)核心概念:内核(Kernel)是Semantic Kernel的核心执行引擎,它负责协调所有其他核心组件(包括插件、函数、记忆、规划器等)的工作,是开发者与LLM、外部工具、外部数据交互的“桥梁”。核心属性:服务集合(Services):内核中注册了所有需要使用的服务,包括大语言模型服务(LLM Service)、文本嵌入服务(Text Embedding Service)、向量数据库服务(Vector DB Service)、日志服务(Logging Service)、配置服务(Configuration Service)等。插件集合(Plugins):内核中注册了所有需要使用的插件,插件是函数的集合。记忆集合(Memories):内核中注册了所有需要使用的记忆,记忆是外部数据的“语义化存储容器”。规划器集合(Planners):虽然规划器不是直接注册在内核中的,但内核是规划器的“执行环境”,规划器需要依赖内核来调用函数、检索记忆、与LLM交互。类比理解:我们可以把内核想象成一台智能机器人的“大脑中枢”——大脑中枢里连接了各种“器官”(服务)、“工具箱”(插件)、“记忆库”(记忆),当机器人接到一个任务时,大脑中枢会调用“规划器”(比如大脑的前额叶皮层)来分析任务、制定计划,然后根据计划调用“工具箱”里的工具、检索“记忆库”里的信息、使用“器官”与外部世界交互,最终完成任务。1.1.2 插件(Plugin)核心概念:插件(Plugin)是一组相关函数的集合,它是SK用来组织和管理函数的“容器”。插件可以是“语义插件”(Semantic Plugin)——只包含语义函数,也可以是“原生插件”(Native Plugin)——只包含原生函数,还可以是“混合插件”(Hybrid Plugin)——同时包含语义函数和原生函数。核心属性:插件名称(Plugin Name):插件的唯一标识符,由字母、数字、下划线组成,不能包含空格或特殊字符。插件描述(Plugin Description):插件的功能描述,用于告诉LLM这个插件是用来做什么的,非常重要,因为LLM主要通过插件描述来选择合适的插件。函数集合(Functions):插件中包含的所有函数,每个函数都有自己的名称、描述、参数、返回值等元数据。类比理解:我们可以把插件想象成一套专门的工具箱——比如“厨房工具箱”(包含切菜、炒菜、洗碗等工具)、“办公工具箱”(包含写邮件、查日历、打印文件等工具)、“旅行工具箱”(包含查天气、订机票、订酒店、查地图等工具)。当我们需要完成某个任务时,我们会先选择合适的工具箱,然后再从工具箱里选择合适的工具。1.1.3 函数(Function)核心概念:函数(Function)是SK中最小的可执行单元,它可以完成一个具体的任务,比如“生成一段欢迎词”、“查北京明天的天气”、“把一段中文翻译成英文”、“把一篇长文档总结成100字的摘要”等。函数分为两种类型:语义函数(Semantic Function)和原生函数(Native Function)。1.1.3.1 语义函数(Semantic Function)核心概念:语义函数是基于Prompt模板和LLM构建的函数,它不需要开发者编写复杂的业务逻辑代码,只需要编写一个语义化的Prompt模板,然后将用户的输入或其他参数填充到Prompt模板中,最后调用LLM生成输出即可。核心属性:函数名称(Function Name):函数的唯一标识符,在同一个插件内不能重复。函数描述(Function Description):函数的功能描述,用于告诉LLM这个函数是用来做什么的,非常重要,因为LLM主要通过函数描述来选择合适的函数。Prompt模板(Prompt Template):语义函数的核心,它是一个包含占位符(Placeholder)的文本,占位符通常用{ {$变量名}}表示,比如{ {$input}}、{ {$language}}等。Prompt模板配置(Prompt Template Configuration):用于配置Prompt模板的执行参数,比如LLM的选择、温度(Temperature)、Top-P、最大生成Token数、停止词等。类比理解:我们可以把语义函数想象成一个专业的“翻译官”或“文案策划师”——翻译官不需要自己发明语言,只需要按照用户的要求(Prompt模板)把一种语言翻译成另一种语言;文案策划师不需要自己发明文字,只需要按照用户的要求(Prompt模板)生成一段合适的文案。1.1.3.2 原生函数(Native Function)核心概念:原生函数是基于编程语言(比如.NET、Python、Java)的原生代码构建的函数,它主要用来完成语义函数无法完成或难以稳定完成的任务,比如调用外部API、操作数据库、读写文件、解析JSON/XML等结构化数据、执行复杂的数学计算等。核心属性:函数名称(Function Name):函数的唯一标识符,在同一个插件内不能重复。函数描述(Function Description):函数的功能描述,用于告诉LLM这个函数是用来做什么的,非常重要。参数列表(Parameters):函数的输入参数,每个参数都有自己的名称、描述、类型、是否必填等元数据,SK使用自定义的特性(Attribute)来标注这些元数据,比如Python中的@sk_function、@sk_function_context_parameter、@sk_function_input_parameter等。返回值(Return Value):函数的输出结果,通常是一个字符串,也可以是其他类型的数据,但SK会自动将其转换成字符串传给LLM。类比理解:我们可以把原生函数想象成一个专业的“工程师”或“程序员”——工程师需要操作各种机器(外部API、数据库、文件系统等)来完成任务;程序员需要编写复杂的代码来执行复杂的数学计算、解析结构化数据等。1.1.4 记忆(Memory)核心概念:记忆(Memory)是SK中用来存储和检索语义化外部数据的系统,它可以帮助LLM突破上下文窗口的限制,获取到需要的“长期记忆”或“外部知识”。记忆系统分为两种类型:短期记忆(Short-Term Memory)和长期记忆(Long-Term Memory)。1.1.4.1 短期记忆(Short-Term Memory)核心概念:短期记忆是存储在内存中的记忆,它主要用来存储当前对话的上下文信息、工具的调用日志等临时数据,不需要持久化存储,对话结束后就会被清空。类比理解:我们可以把短期记忆想象成我们大脑的“工作记忆”——比如我们在做数学题时,会暂时记住中间的计算结果,但做完题后就会很快忘记。1.1.4.2 长期记忆(Long-Term Memory)核心概念:长期记忆是存储在持久化存储介质(比如向量数据库、关系型数据库、文件系统等)中的记忆,它主要用来存储用户的历史对话记录、外部文档(比如PDF、Word、TXT等)、知识库等长期数据,可以随时检索和更新。核心属性:记忆存储(Memory Store):长期记忆的“存储容器”,SK内置了多种记忆存储的实现,比如VolatileMemoryStore(存储在内存中的临时实现,用于测试)、AzureCognitiveSearchMemoryStore(基于Azure Cognitive Search的实现)、QdrantMemoryStore(基于Qdrant向量数据库的实现)、PineconeMemoryStore(基于Pinecone向量数据库的实现)等,开发者也可以自定义记忆存储的实现。文本嵌入生成器(Text Embedding Generator):用于将文本数据转换成向量(Embedding),SK内置了多种文本嵌入生成器的实现,比如AzureTextEmbeddingGenerationService(基于Azure OpenAI的实现)、OpenAITextEmbeddingGenerationService(基于OpenAI的实现)、HuggingFaceTextEmbeddingGenerationService(基于Hugging Face的实现)等,开发者也可以自定义文本嵌入生成器的实现。记忆集合(Memory Collection):记忆存储中的“子容器”,用于组织和管理不同类型的记忆数据,比如“用户历史对话”、“产品说明书”、“公司规章制度”等。类比理解:我们可以把长期记忆想象成我们大脑的“海马体”或“大脑皮层”——海马体负责将短期记忆转化为长期记忆,大脑皮层负责存储长期记忆;我们也可以把长期记忆想象成一个图书馆——记忆存储是图书馆的大楼,记忆集合是图书馆的不同书架(比如“历史书书架”、“科技书书架”、“文学书书架”),文本嵌入生成器是图书馆的“索引员”,负责给每本书编一个“语义索引”(向量),当我们需要找一本书时,我们不需要一本一本地翻,只需要告诉索引员我们的需求,索引员就会根据语义索引帮我们找到最相关的几本书。1.1.5 规划器(Planner)核心概念:规划器(Planner)是SK中用来分析用户的复杂任务、制定执行计划、协调函数调用的组件,它是SK实现“自主”Agent的关键。SK内置了多种规划器,每种规划器都有自己的优缺点和适用场景,开发者也可以自定义规划器。核心属性:规划器类型(Planner Type):SK内置的规划器类型包括Basic Planner、Action Planner、Sequential Planner、Stepwise Planner、Handlebars Planner等。规划器配置(Planner Configuration):用于配置规划器的执行参数,比如LLM的选择、可调用的函数列表、最大计划步骤数、是否允许重试等。类比理解:我们可以把规划器想象成一个专业的“项目经理”或“导演”——项目经理负责分析项目需求、制定项目计划、分配任务给不同的团队成员(函数)、监督项目进度、处理项目中的问题;导演负责分析剧本(用户需求)、制定拍摄计划、分配角色给不同的演员(函数)、监督拍摄进度、处理拍摄中的问题。1.2 概念之间的关系为了更直观地理解SK的核心概念之间的关系,我们将使用Markdown表格(核心属性维度对比)、ER实体关系图(Mermaid)、**交互关系图(Mermaid)**三种方式进行可视化展示。1.2.1 核心属性维度对比(Markdown表格)我们首先对比一下SK的五个核心概念(内核、插件、语义函数、原生函数、记忆、规划器)的核心属性、主要功能、实现方式、依赖关系等维度:核心概念核心属性主要功能实现方式依赖关系内核(Kernel)服务集合、插件集合、记忆集合、配置信息协调所有核心组件的工作,是开发者与外部世界交互的桥梁编程语言原生类(.NET的Kernel、Python的Kernel、Java的Kernel)无(是其他核心组件的依赖)插件(Plugin)插件名称、插件描述、函数集合组织和管理相关的函数目录结构(语义插件)、编程语言原生类(原生插件/混合插件)内核(需要注册到内核中)语义函数(Semantic Function)函数名称、函数描述、Prompt模板、Prompt模板配置基于Prompt模板和LLM完成文本生成、文本理解、文本翻译等任务Prompt模板文件(.txt/.md/.skprompt)+ 配置文件(.json)、编程语言原生代码内核、LLM服务、插件(需要注册到插件中,插件需要注册到内核中)原生函数(Native Function)函数名称、函数描述、参数列表、返回值调用外部API、操作数据库、读写文件、解析结构化数据、执行复杂计算等任务编程语言原生代码(.NET的类方法、Python的函数/类方法、Java的类方法)内核、插件(需要注册到插件中,插件需要注册到内核中)记忆(Memory)记忆存储、文本嵌入生成器、记忆集合存储和检索语义化的外部数据,帮助LLM突破上下文窗口的限制记忆存储实现类 + 文本嵌入生成器实现类内核、文本嵌入生成器服务、记忆存储服务(需要注册到内核中)规划器(Planner)规划器类型、规划器配置分析用户的复杂任务、制定执行计划、协调函数调用编程语言原生类(.NET的BasicPlanner、Python的BasicPlanner等)内核、LLM服务、已注册的插件和函数(需要依赖内核来调用)1.2.2 ER实体关系图(Mermaid)接下来,我们使用ER实体关系图来展示SK的核心概念之间的“一对多”、“多对多”等实体关系:注册注册注册使用包含包含包含包含生成调用调用依赖可能调用可能操作可能读写依赖依赖

相关文章:

Semantic Kernel 深度解析:微软的 Agent 开发框架

Semantic Kernel 深度解析:微软的 Agent 开发框架 摘要/引言 开门见山(Hook) 你有没有想过,像《钢铁侠》里贾维斯那样的通用智能助手,会不会在202X年就不再是科幻电影的专属?当我们打开手机的Siri、电脑的Cortana或者ChatGPT网页版,它们确实能回答问题、写邮件、甚至生…...

SetFit快速入门指南:如何在5分钟内完成小样本文本分类

SetFit快速入门指南:如何在5分钟内完成小样本文本分类 【免费下载链接】setfit Efficient few-shot learning with Sentence Transformers 项目地址: https://gitcode.com/gh_mirrors/se/setfit SetFit是一个高效且无需提示词的框架,专为小样本微…...

7个实用技巧掌握MySQL连接查询:INNER JOIN、LEFT JOIN、RIGHT JOIN实战解析

7个实用技巧掌握MySQL连接查询:INNER JOIN、LEFT JOIN、RIGHT JOIN实战解析 【免费下载链接】mysql-tutorial MySQL入门教程(MySQL tutorial book) 项目地址: https://gitcode.com/gh_mirrors/mys/mysql-tutorial MySQL连接查询是数据…...

需求动态感知与策略协同优化的机器学习模型研究——以企业供应链需求优化为例

需求动态感知与策略协同优化的机器学习模型研究——以企业供应链需求优化为例 摘要 在日益复杂和动态的市场环境中,企业供应链面临着需求波动加剧、决策链条冗长、多维目标冲突等严峻挑战。传统基于历史统计模型和静态策略的优化方法难以实时感知需求变化并协同调整供应链决…...

终极指南:readme.so无障碍设计如何为所有开发者打造包容性体验

终极指南:readme.so无障碍设计如何为所有开发者打造包容性体验 【免费下载链接】readme.so An online drag-and-drop editor to easily build READMEs 项目地址: https://gitcode.com/gh_mirrors/re/readme.so readme.so作为一款在线拖拽式README编辑器&…...

终极mPDF入门指南:5分钟内轻松将HTML转换为PDF的完整教程

终极mPDF入门指南:5分钟内轻松将HTML转换为PDF的完整教程 【免费下载链接】mpdf PHP library generating PDF files from UTF-8 encoded HTML 项目地址: https://gitcode.com/gh_mirrors/mp/mpdf mPDF是一款强大的PHP库,能够将UTF-8编码的HTML轻松…...

Android UI性能优化终极指南:10个让应用更流畅的秘诀

Android UI性能优化终极指南:10个让应用更流畅的秘诀 【免费下载链接】user-interface-samples Multiple samples showing the best practices in the user interface on Android. 项目地址: https://gitcode.com/gh_mirrors/us/user-interface-samples 想要…...

3种方法实现Figma设计到JSON数据的无缝转换:从痛点到价值的完整指南

3种方法实现Figma设计到JSON数据的无缝转换:从痛点到价值的完整指南 【免费下载链接】figma-to-json 项目地址: https://gitcode.com/gh_mirrors/fi/figma-to-json Figma-to-json是一个开源工具集,专注于实现Figma设计文件与JSON格式的双向转换&…...

OpenClaw 大结局——接入个人微信俏

本课概览 Microsoft Agent Framework (MAF) 提供了一套强大的 Workflow(工作流) 框架,用于编排和协调多个智能体(Agent)或处理组件的执行流程。 本课将以通俗易懂的方式,帮助你理解 MAF Workflow 的核心概念…...

如何通过Bilibili-Evolved实现B站动画60fps流畅播放优化指南

如何通过Bilibili-Evolved实现B站动画60fps流畅播放优化指南 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 想要在哔哩哔哩享受影院级别的动画播放体验吗?Bilibili-Evolved作为一…...

让开发流程更高效:为 Visual Studio 订阅用户解锁 Syncfusion杉

一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你: 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景: …...

Braft Editor内容验证终极指南:如何在编辑时实时检查内容合规性

Braft Editor内容验证终极指南:如何在编辑时实时检查内容合规性 【免费下载链接】braft-editor 美观易用的React富文本编辑器,基于draft-js开发 项目地址: https://gitcode.com/gh_mirrors/br/braft-editor Braft Editor是一款基于Draft.js开发的…...

MySQL性能优化10大技巧:让你的数据库运行如飞[特殊字符]

MySQL性能优化10大技巧:让你的数据库运行如飞🚀 【免费下载链接】mysql-tutorial MySQL入门教程(MySQL tutorial book) 项目地址: https://gitcode.com/gh_mirrors/mys/mysql-tutorial MySQL作为最流行的开源数据库之一&am…...

LiquidPrompt性能优化终极指南:让你的Shell提示符运行如飞

LiquidPrompt性能优化终极指南:让你的Shell提示符运行如飞 【免费下载链接】liquidprompt A full-featured & carefully designed adaptive prompt for Bash & Zsh 项目地址: https://gitcode.com/gh_mirrors/li/liquidprompt LiquidPrompt是一个功能…...

欧姆龙CP1H+CIF11与施耐德ATV变频器通讯程序 功能:原创程序,可直接用于现场程序

欧姆龙CP1HCIF11与施耐德ATV变频器通讯程序 功能:原创程序,可直接用于现场程序。 欧姆龙CP1H的CIF11通讯板,实现对施耐德ATV12变频器 设定频率,读取实际频率,变频器状态功能。 反应灵敏,通讯稳定可靠。 非常…...

GCViewer扩展开发终极指南:自定义数据读取器与导出格式的完整教程

GCViewer扩展开发终极指南:自定义数据读取器与导出格式的完整教程 【免费下载链接】GCViewer Fork of tagtraum industries GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Suns / Oracles java 1.6 garbage collector logs (inclu…...

同步磁阻电机SynRM滑模控制:提升动态响应的新策略

同步磁阻电机SynRM滑模控制 1.基于FOC策略,其中转速环采用滑模控制器,较PI提高系统的动态响应能力。 2.提供算法对应的参考文献和仿真模型 仿真模型纯手工搭建在电机控制领域,同步磁阻电机(SynRM)以其结构简单、成本低…...

在超大数据集下 DuckDB 与 MySQL 查询速度对比合

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

Guake与VTE集成原理:虚拟终端核心组件解析

Guake与VTE集成原理:虚拟终端核心组件解析 【免费下载链接】guake Drop-down terminal for GNOME 项目地址: https://gitcode.com/gh_mirrors/gu/guake Guake是一款基于GNOME桌面环境的下拉式终端模拟器,通过F12快捷键快速弹出,极大提…...

【第3章>第10节】基于yolov2模型的人员摔倒检测系统matlab仿真实现

本课程学习成功预览 目录 1.使用软件和版本 2.基于YOLOv2深度学习网络的人员跌倒检测识别概述 3.yolov2模型的训练程序和测试程序matlab实现 4.基于YOLOv2深度学习网络的人员跌倒检测识别仿真测试 5.程序讲解操作 欢迎订阅FPGA/MATLAB/Simulink系列教程 《★教程1:matlab入…...

如何快速掌握GCViewer:全面解读Java GC暂停、Full GC与安全点暂停分析指南

如何快速掌握GCViewer:全面解读Java GC暂停、Full GC与安全点暂停分析指南 【免费下载链接】GCViewer Fork of tagtraum industries GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Suns / Oracles java 1.6 garbage collector log…...

如何实时监控crawler4j爬虫状态与性能?完整监控告警指南

如何实时监控crawler4j爬虫状态与性能?完整监控告警指南 【免费下载链接】crawler4j Open Source Web Crawler for Java 项目地址: https://gitcode.com/gh_mirrors/cr/crawler4j crawler4j是一款强大的Java开源网络爬虫框架,能够帮助开发者快速构…...

Java并发编程错误排查终极指南:10个常见问题诊断与解决方案

Java并发编程错误排查终极指南:10个常见问题诊断与解决方案 【免费下载链接】concurrent 这是RedSpider社区成员原创与维护的Java多线程系列文章。 项目地址: https://gitcode.com/gh_mirrors/co/concurrent Java并发编程错误排查是每个Java开发者必须掌握的…...

FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香!芯

正文 异步/等待解决了什么问题? 在传统同步I/O操作中(如文件读取或Web API调用),调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结,在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...

Braft Editor原子组件深度解析:Audio、Video、Embed等多媒体组件实现原理

Braft Editor原子组件深度解析:Audio、Video、Embed等多媒体组件实现原理 【免费下载链接】braft-editor 美观易用的React富文本编辑器,基于draft-js开发 项目地址: https://gitcode.com/gh_mirrors/br/braft-editor Braft Editor是一款基于Draft…...

如何用G-Helper解决华硕笔记本性能控制臃肿问题

如何用G-Helper解决华硕笔记本性能控制臃肿问题 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, and other mod…...

2025届学术党必备的六大降重复率工具推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 需从文本特征方面来着手降低AIGC率,详而言之,对于高频词汇能够予以替…...

Nunchaku-flux-1-dev企业实操:电商团队批量生成商品场景图

Nunchaku-flux-1-dev企业实操:电商团队批量生成商品场景图 1. 引言:电商团队的素材困境与AI解法 如果你在电商团队工作,下面这个场景你一定不陌生: 周一早上,运营同事拿着新一季的50款商品清单来找你:“…...

Qwen3.5-35B-A3B-AWQ-4bit开源模型教程:AWQ 4bit量化多模态模型部署全流程

Qwen3.5-35B-A3B-AWQ-4bit开源模型教程:AWQ 4bit量化多模态模型部署全流程 想找一个能看懂图片、还能跟你聊天的AI模型?今天要介绍的Qwen3.5-35B-A3B-AWQ-4bit,就是一个专门为视觉理解设计的“聪明”模型。它不仅能分析图片内容,…...

Qwen3.5-2B镜像治理:镜像签名验证、SBOM软件物料清单生成、CVE漏洞扫描

Qwen3.5-2B镜像治理:镜像签名验证、SBOM软件物料清单生成、CVE漏洞扫描 1. Qwen3.5-2B轻量化多模态基础模型介绍 Qwen3.5-2B是Qwen3.5系列中的小参数版本(20亿参数),专为低功耗、低门槛部署场景设计。该模型特别适配端侧和边缘设…...