第23篇:动态模板 dynamic_table:让大模型自定义表格列定义
60 个固定模板能覆盖大部分查询场景,但总有覆盖不到的时候。用户说"按预算降序排列项目,只看编号、名称和预算三列"——固定模板
project_list总是展示 8 列,无法满足"只看三列"的需求。再比如"查询分卷列表,额外展示保管期限列"——固定模板的分卷列表可能没有这个列。本文拆解dynamic_table动态模板如何让大模型在工作流 intent 中通过template_extra传递title、columns(含field/label/format)、items参数,实现自定义表格展示。从大模型输出 intent 到 DialogManager 的template_data_keys自动映射,从_render_dynamic_table的渲染逻辑到_format_cell的六种格式化器,从无列定义时的自动推断到空数据的友好兜底,完整拆解这个"既安全又灵活"的动态模板设计。
一、固定模板的局限性
系统中有 17 个查询类模板,每个模板的列定义都是硬编码的。以_render_project_list为例: