如今这条链通常被拼接在 OCR 脚本、临时文件、模型调用、SQL 任务和审查工具之间。
⚠ 系统分散 · 到处是 glue code · 来源引用丢失 · 难以调试 · 可复现性差
从原始多模态数据开始,把 SQL 规则、UDF 计算和模型推理接到同一条流水线里,不再拆成多个任务。
SQL ai_prompt 返回标量结果;在 projection 中为它设置别名,并在同一审查行保留文档 ID、规则命中、模型响应和来源 URI。
从本地运行,简单快速的切换到 Ray 分布式运行
Python 规则注册一次后即可在 SQL 中与 ai_prompt 并排调用;业务 ID 和来源引用始终保留在每条审核结果中。
import vane @vane.func(return_dtype="VARCHAR") def policy_check(text): return "missing_signature" if "missing signature" in text.lower() else None con = vane.connect() vane.attach_function( policy_check, parameters=["VARCHAR"], connection=con, ) findings = con.sql(""" SELECT claim_id, document_id, policy_check(text) AS rule_hit, ai_prompt( text, system_message := 'Find missing claim evidence.', provider := 'openai', model := 'gpt-4o-mini' ) AS ai_finding, source_uri FROM read_parquet('claims/*.parquet') """) findings.write_parquet("audit_findings.parquet")