技术实践

技术实践:怎么给 AI 设计意图提示词?JSON 契约、智能推断与默认值

提示词写得含糊,模型就自由发挥;写得太死,又像在调配置文件。云帆轻工具的意图识别提示词走了中间路线:格式约束钉死,语义推断放开,参数能默认的全默认。这篇拆开讲每一段为什么这么写。

先钉格式:只返回 JSON,别的一律不要

第一条铁律写进提示词末尾:「只返回 JSON,不要其他内容」。模型喜欢在答案前后加解释,这一句能挡掉大半。字段契约用一行示例给全:{"intent":"操作名","params":{参数}}。给模型一个看得懂的模板,比甩一份 JSON Schema 更管用——长规范吃 token,还容易被忽略。

再钉语义:意图枚举 + 必填参数

每条意图一行,写明操作名、参数清单、哪些必填。比如 create_exam:参数 title(必填)、totalTime、qualifyScore、chance。枚举越具体,模型越不会把「考试」和「刷题」混在一起;参数名与后端 DTO 对齐,解析出来能直接映射。

推断规则是提示词里的「常识」

光有枚举不够,模型不知道「爬山」和「团建」意味着活动报名。于是加一组关键词规则:抽奖/点名 → 建抽奖分组,溯源码/二维码 → 建溯源批次,分班/座位 → 智能分班。本质是把产品经理的领域知识翻译成提示词,替模型补上业务背景。

相对时间必须换算,默认值放桥接层

「下周三」「明天」这类说法,模型自己能推,但业务参数要的是具体日期。规则里明确要求换算成具体日期再填参数——这一步漏了,桥接层拿到的就是没法解析的字符串。默认值同理:考试时间 60 分钟、及格线 60 分、1 次机会,全部由桥接层补全而不是让模型猜——模型的默认值不稳定,代码里的默认值是确定的。

少问问题的产品哲学

助手的人格设定提示词里写了句「尽量智能默认,少问问题」。多轮追问看着智能,实际每次往返都在流失耐心。能默认的默认掉,用户拿到结果觉得不对,再进管理页改——改参数的成本,远低于多答两轮问题。

出题提示词走同一套思路:给模型一份带示例的行格式模板(题型行、选项行、答案行、解析行、难度行),并写死「严禁省略截断」;用户出题描述里夹带的「出 100 道」之类数量词会被清洗掉,防止干扰模板的数量控制。
本文对应的功能是「题库中心」,打开即可开始使用;计费方式见计费规则。

常见问题

JSON Schema 为什么不写全?

长 Schema 吃 token 还容易被模型忽略;一行示例模板足够表达字段结构,剩下的交给解析层容错。省下的上下文留给推断规则更划算。

关键词推断规则会误判吗?

会,但概率低。规则覆盖的是高频说法(爬山→活动、座位→分班);误判了用户可以改,而漏判才是真正的损失——所以规则宁宽勿漏。

为什么不让模型自己补默认值?

模型的默认值不稳定,每次可能不同;桥接层补默认值是确定性的,同样的输入永远得到同样的结果,出问题也好排查。

不写文档,直接上手试

文章里讲到的每个步骤都能在工具里直接操作,创建完把二维码发出去就能用,按实际使用量计费。

云帆轻工具微信小程序码,微信扫码立即体验微信扫码
小程序立即体验