ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Semantic Kernel如何约束AI输出:模板工厂与函数选择行为拆解

Semantic Kernel如何约束AI输出:模板工厂与函数选择行为拆解 Semantic Kernel如何约束AI输出模板工厂与函数选择行为拆解【免费下载链接】semantic-kernelIntegrate cutting-edge LLM technology quickly and easily into your apps项目地址: https://gitcode.com/GitHub_Trending/se/semantic-kernel一个具体的阻塞点当你把 LLM 的原始输出直接渲染到前端时格式混乱、字段缺失、无法二次解析——这是多数集成场景最先遇到的问题。Semantic Kernel 对 AI 响应管控的思路是把输出成型拆到两个位置提示在发送前由模板引擎组装模型响应后的函数调用由显式的行为配置接管。核心机制Kernel、插件与模板工厂这一节解释 SK 中三个协作组件各自负责什么。Kernel是编排入口它负责持有插件并向 AI 服务发起调用插件Plugin是一组领域函数的集合类比微服务函数Function则是可被模型调用的接口。函数分两种原生函数由 C# 等传统语言编写语义函数由自然语言提示模板定义。模板侧的入口是PromptTemplateFactory它负责根据配置解析出具体模板实例仓库中的架构图如下图中IPromptTemplateFactory接口定义了CreatePromptTemplate方法Basic、FString、Handlebars各自对应一套工厂与模板实现。AggregatorPromptTemplateFactory按注册顺序依次尝试首个成功者生效——这意味着注册顺序直接影响哪套模板语言接管解析。函数选择行为决定响应结构工具调用的介入方式会改变最终响应形态这一节拆解FunctionChoiceBehavior的三种模式。时序图显示AI Service 每收到一次 LLM 响应都会向行为对象请求配置再由行为决定是否执行函数并回传新请求。三种模式差异如下行为模型选择权连接器动作典型用途Auto自行判断按autoInvoke自动或手动执行默认通用场景Required必须调用执行后停止通告该函数防止重复调用结构化数据抽取None被指示不调用仅描述调用意图便于人工确认调用前审批实操三个影响输出质量的配置点本节聚焦真正影响结果形态的三处配置。1. 模板工厂的注册顺序做什么为 Kernel 指定模板工厂链。怎么配聚合工厂按传入顺序尝试解析需将最常用语言放最前。配错会怎样Handlebars 模板被 Basic 解析器提前接管条件语法原样泄漏到提示中。var kernel builder .AddPromptTemplateFactory(new AggregatorPromptTemplateFactory( new HandlebarsPromptTemplateFactory(), new KernelPromptTemplateFactory())) .Build();2. 行为模式与函数白名单做什么选择FunctionChoiceBehavior并限定函数集合。怎么配functions传null时全量插件函数都会通告给模型传入具体列表可收窄范围。配错会怎样无关函数暴露给模型增加误调用与 token 开销用Required却通告过多函数强制调用会命中错误目标。3. autoInvoke 开关做什么决定连接器是否自动执行函数并把结果回灌模型。怎么配默认true需要人工介入时置false。配错会怎样置false后若业务代码不读取FunctionCallContent并自行回传多轮工具调用链会在第一轮后静默断裂。settings.FunctionChoiceBehavior FunctionChoiceBehavior.Auto(autoInvoke: false);延伸方向与路径两个值得深入的方向一是流式内容模型StreamingChatMessageContent决定工具调用增量如何拼装见 Chat Text Models 设计文档二是结构化输出将响应约束为可反序列化的类型相关源码位于 dotnet/src/Agents/Abstractions/。术语定义可查 docs/GLOSSARY.md模板引擎源码在 dotnet/src/SemanticKernel.Core/PromptTemplate/。模板工厂与函数选择行为共同构成 SK 的响应管线前者控制发什么后者控制收什么二者组合即是一套完整的输出契约。【免费下载链接】semantic-kernelIntegrate cutting-edge LLM technology quickly and easily into your apps项目地址: https://gitcode.com/GitHub_Trending/se/semantic-kernel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表