第14篇:filter 步骤的 AND/OR/NOT 嵌套逻辑条件引擎实现
工作流引擎的 filter 步骤是大模型最常生成的步骤类型——\”预算小于 200\”\”状态为 INIT 且预算大于 100\”“状态为 INIT 或 PLANNING,且预算不大于 500”——这些条件从简单到复杂,都需要引擎正确解析和执行。本文深入 _match_condition() 递归条件评估器的设计:从简写格式 {\”budget\”: {\”lt\”: 200}} 到嵌套格式 {\”and\”: [{\”or\”: […]}, {\”not\”: {…}}]},讲解 AND/OR/NOT 逻辑键的识别与递归求值、七种比较操作符(lt/lte/gt/gte/eq/ne/contains)的实现,以及 _safe_float / _safe_str 类型安全处理如何避免 SQLite 动态类型系统带来的比较陷阱。
一、问题提出:大模型输出的条件有多复杂
先看几组真实的大模型输出。用户说\”查看所有项目\”,不需要 filter。用户说\”预算小于 200 的项目\”,大模型输出:
{
\”action
网硕互联帮助中心




评论前必须登录!
注册