不要用大模型去写 if 语句
很多项目为了强行贴上“AI-powered”的标签,把简单的逻辑判定给模型化了。最典型的就是把一个 $O(1)$ 时间复杂度的判断,变成了需要等待网络请求、消耗 Token 且结果不确定的云端调用。
举个实战中的对比例子,判定一张支持工单是否“紧急”:
下一篇
靠“感觉”写代码早晚得翻车:AI 编程的幸存者偏差 →
其实判定逻辑和 LLM 根本不是一回事。if 语句是确定性的,毫秒级响应,零成本;而模型调用是概率性的,有延迟,而且得付钱。
在实际开发中,我建议按照这个标准来拆分工作流:
- 优先用传统代码(if/regex/DB lookup): 规则明确且定义清晰的场景。比如校验邮箱格式、检查购物车金额是否满额、验证优惠券是否过期、或者简单的列表排序。这些逻辑不需要“理解”,只需要“匹配”。
- 优先用 AI Agent/LLM: 需要主观判断或处理模糊输入的场景。比如分析用户投诉邮件的情绪、将非结构化的长文本分类、或者把产品规格书转写成营销文案。
举个实战中的对比例子,判定一张支持工单是否“紧急”:
如果你的定义是包含“故障”或“紧急”关键字,直接写个简单的正则匹配就行:
const isUrgent = (text) => /紧急|故障|崩溃/i.test(text);但如果“紧急”是指通过分析用户语气、上下文语境来判断对方是否处于愤怒状态且问题严重,这时候才应该调用模型:
{
"prompt": "分析以下用户反馈的紧急程度,仅输出 'Urgent' 或 'Normal'。考虑语气和潜在业务影响。",
"input": "我的账户资金在过去两小时内莫名消失了,这简直是灾难!"
}如果把简单的逻辑交给 AI,你不仅在增加不必要的延迟(Latency),还在为本不需要的推理成本买单。最糟糕的是,你把一个本该 100% 准确的判定,变成了一个偶尔会因为模型版本更新而产生随机误差的概率问题。
