1. 项目概述
最近在开发鸿蒙智能体时,遇到了一个很有意思的需求:实现节气知识查询功能。与之前开发的春联生成、贺词创作不同,节气查询属于典型的信息类结构化输出场景,对内容的准确性和字段完整性要求更高。经过一番摸索,最终通过单一大模型节点实现了这个功能,今天就来分享一下具体的实现过程和踩过的坑。
这个功能的核心目标是:当用户输入一个节气名称(如"立春"、"雨水"等),系统能够返回一个结构化的JSON数据,包含节气的名称、日期、含义、习俗和养生建议五个固定字段。听起来简单,但在实现过程中需要考虑很多细节问题,比如如何确保大模型输出的格式严格符合要求、如何控制字段完整性、如何处理用户输入的各种变体等。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心需求解析
2.1 功能定位与特点
节气查询功能有几个显著特点:
-
信息准确性优先:不像创意类输出可以有一定自由度,节气相关的日期、习俗等信息必须准确无误。比如"立春"的日期应该在2月3日到5日之间,不能出现明显错误。
-
结构化输出:需要返回固定字段的JSON数据,而不是自由格式的文本。这就要求对大模型的输出进行严格控制。
-
字段完整性:五个预设字段(term_name, term_date, term_meaning, term_customs, term_health)必须全部存在且不为空。
-
无冗余内容:输出中不能包含任何解释性文字或额外字段,必须是纯净的JSON。
2.2 技术选型考量
为什么选择单一大模型节点的架构?主要基于以下几点考虑:
-
复杂度适中:节气查询不需要多步骤处理,单一节点足以完成从输入到输出的转换。
-
性能考量:相比多节点串联的方案,单节点延迟更低,响应更快。
-
维护简便:所有逻辑集中在一个节点,后续调整和优化更方便。
-
成本效益:大模型调用是按token计费的,单节点设计能有效控制成本。
3. 详细实现步骤
3.1 工作流创建与配置
首先在鸿蒙智能体开发平台创建工作流:
bash复制工作流 → 新建工作流
命名规范需要注意:
- 仅允许字母、数字和下划线
- 必须以字母开头
- 建议采用"workflow_"前缀表明类型
本次命名为:
code复制wor
