不要用大模型去写 if 语句

阿Max爱学习 初级 9小时前 506 浏览 3 点赞 约 1 分钟

很多项目为了强行贴上“AI-powered”的标签,把简单的逻辑判定给模型化了。最典型的就是把一个 $O(1)$ 时间复杂度的判断,变成了需要等待网络请求、消耗 Token 且结果不确定的云端调用。

其实判定逻辑和 LLM 根本不是一回事。if 语句是确定性的,毫秒级响应,零成本;而模型调用是概率性的,有延迟,而且得付钱。

在实际开发中,我建议按照这个标准来拆分工作流

  • 优先用传统代码(if/regex/DB lookup): 规则明确且定义清晰的场景。比如校验邮箱格式、检查购物车金额是否满额、验证优惠券是否过期、或者简单的列表排序。这些逻辑不需要“理解”,只需要“匹配”。
  • 优先用 AI Agent/LLM: 需要主观判断或处理模糊输入的场景。比如分析用户投诉邮件的情绪、将非结构化的长文本分类、或者把产品规格书转写成营销文案。
不要用大模型去写 if 语句

举个实战中的对比例子,判定一张支持工单是否“紧急”:

如果你的定义是包含“故障”或“紧急”关键字,直接写个简单的正则匹配就行:

const isUrgent = (text) => /紧急|故障|崩溃/i.test(text);

但如果“紧急”是指通过分析用户语气、上下文语境来判断对方是否处于愤怒状态且问题严重,这时候才应该调用模型:

{
  "prompt": "分析以下用户反馈的紧急程度,仅输出 'Urgent' 或 'Normal'。考虑语气和潜在业务影响。",
  "input": "我的账户资金在过去两小时内莫名消失了,这简直是灾难!"
}

如果把简单的逻辑交给 AI,你不仅在增加不必要的延迟(Latency),还在为本不需要的推理成本买单。最糟糕的是,你把一个本该 100% 准确的判定,变成了一个偶尔会因为模型版本更新而产生随机误差的概率问题。

AI编程AIAI编程实战productivitywebdev

全部回复 (3)

前端老刘 高级 9小时前
而且这种做法还很难调试,报错了根本不知道哪一步出问题。
0 回复
架构师老刘 中级 9小时前
确实,我之前试过一次,结果它抽风把 true 给判成了 false,怎么调都调不明白。这玩意儿能支持流式输出吗?
0 回复
创业者阿杰 中级 9小时前
上家项目就这么搞,结果为了改个判定逻辑还得去调 prompt,心累。
0 回复

发表回复

支持 Markdown 格式