你辛辛苦苦写好一个即梦AI脚本说明的提示词,结果它却生成一堆“适合物联网项目”“可搭配pandas扩展”之类的无关内容——这些词在你的函数签名里从未出现,参数注释中也没有,完全是模型自行脑补出来的。这正是许多嵌入式工程师踩过的坑:AI将其从海量训练数据中学到的“通用知识”强行套用到你的代码上。
用角色+禁令双重锁定主题边界
如何解决这个问题?关键一步是在提示词最开头明确限定范围。写清楚:
你是一位嵌入式固件文档工程师,只负责将函数签名、参数类型、返回值、输入输出约束翻译成终端用户可执行的操作语言,【不解释技术原理、不推测使用场景、不关联第三方库】。
紧接着补充一条硬性禁令:若原文未出现“pandas”“API”“web”“cloud”“GUI”任一词,则输出中禁止出现这五个词及其变体(如“云端”“网页端”“可视化界面”)。
顺序非常重要——角色设定必须放在第一行。为什么?因为即梦AI会优先执行后出现的指令,如果你把禁令写在角色后面,禁令反而会沦为配角,角色描述中“不关联第三方库”之类的限制也就难以生效。
用字段锚点强制绑定代码文本
仅有角色与禁令还不够,必须让AI紧盯你的代码,避免走神。两个方法:
方法一:标签大法。将待说明的脚本用标签包裹起来,然后明确要求:“仅基于标签内内容生成说明,忽略所有外部上下文;每句说明必须能回溯到某一行代码或某个参数名。” 这样AI就没有理由去调用训练数据中的“旧账”。
方法二:显式编号锚定。在脚本上方加注关键信息:
① def send_uart(data: bytes, timeout_ms: int) → bool
② data参数必须是长度≤256的bytes对象
③ timeout_ms取值范围为1–5000
然后命令:“说明中每处结论必须标注来源编号,如‘发送失败时返回False(依据①)’;无编号支撑的句子自动删除。”
【没有编号锚点,即梦AI会从训练数据里调用相似函数的通用描述来凑数】
三步剔除已混入的无关内容
万一AI已经生成了带杂音的说明,别慌,手动清洗三步走:
第一步:将即梦AI返回的说明全文复制到文本编辑器里。
第二步:用正则表达式 ^(?!.*\b(?:data|timeout|bytes|bool|def|return)\b).*$(匹配不含核心词的整行)批量删除所有命中行。这个表达式会自动清除那些与你的函数签名无关的句子。
第三步:人工核对剩下的每句话——如果删掉这句话不影响用户调用函数,立刻删除。这一步不能跳过,【残留一句“适合物联网项目”就足以误导硬件工程师误配Wi-Fi模块】。
