最近在用GPT-4做一个小工具,需要从用户留言里提取结构化信息(比如日期、地点、情绪)。我试了各种花式Prompt:few-shot给了十几个例子,加了role设定,还用了分隔符和JSON格式约束……但结果还是不稳定,稍微换个说法就崩。反而我写个正则+关键词匹配,准确率还挺高。现在有点怀疑人生:Prompt工程到底适合什么场景?是我对模型的“人品”要求太高,还是说这玩意儿本来就只适合玩票,真上生产还得靠老一套?有没有过来人指条明路,或者分享下你们在生产环境里用Prompt的边界和兜底策略?
楼主
2026-08-29
调了三天Prompt,感觉还不如直接改代码来得快,是我姿势不对吗?
请 登录 后发表回复
全部回复
共 24 条
2楼
25天前
你这个经历太真实了,我去年做类似的信息抽取功能时也踩过一模一样的坑。当时用few-shot加JSON schema约束,测试集上跑得好好的,结果上线后用户随便打几个错别字或者中英混杂,模型就开始胡言乱语了。后来我想明白了,Prompt工程本质上是在跟一个概率模型“商量”,它没有编译器那种确定性,你给的约束再多也只是提高概率,不是保证。像日期、地点这种有明确模式的字段,正则和词典确实又快又稳,还不用烧token。但Prompt也不是没用,它适合处理那些规则写不出来的模糊判断,比如情绪分类、意图识别、或者把一段乱七八糟的话转成统一表述,这些你让正则去做反而更头疼。我现在生产环境的做法是混合流水线:能规则搞定的先走规则,规则覆盖不了的再丢给模型,而且模型输出必须过一层校验和兜底,比如JSON解析失败就重试或者降级返回空值。所以不是你的姿势不对,是得先想清楚哪些活该谁干,别指望一个Prompt解决所有问题。
3楼
25天前
结构化抽取这块纯靠Prompt确实容易翻车,尤其是日期和地点这种边界模糊的实体。我现在都是让模型先自由输出,再用代码做二次校验和纠错,命中率比死磕Prompt高不少。其实Prompt和代码不是二选一,模型负责模糊理解,代码负责确定性兜底,这么搭才稳。你正则准是因为规则明确,但换个领域就得重写,各有各的坑。
4楼
24天前
这太真实了,我做信息抽取也踩过一样的坑。后来发现关键不是Prompt写得多花,而是任务本身得适合模型——语义模糊的抽取用LLM,格式固定的字段直接上规则,混着用反而稳。我们生产环境就是LLM先兜底,再用正则和校验层过滤,准确率能拉上来不少。你可以试试把两者串起来,别非此即彼。
5楼
23天前
正常,结构化提取这活儿本来就不该全押在Prompt上,我现在都是让模型兜底、代码做主逻辑。