用途:对 LLM 生成的 Python 代码做执行前的静态校验,检测并自动修正常见的“知识冲突型幻觉”(KCH),例如不存在的参数、捏造的方法名、错误的参数个数。这些问题能通过 lint 却会在运行时抛出 TypeError 或 AttributeError。
主要能力:通过 Python 自省(inspect.signature()、dir()、getattr())为导入的库构建 API 知识库,再用 ast.parse() 解析代码并遍历所有 ast.Call 节点,校验关键字参数是否存在、位置参数个数是否越界、属性或方法是否真实存在。修正时用编辑距离/字符串相似度匹配,把 delimeter 改为 delimiter、skip_rows 改为 skiprows 等;无近似匹配的冗余参数删除,缺失的必需参数按默认值补齐。资料称其自动修正率约 77%,检测精确率 100%、召回率 87.6%。
必要用法:先扫描 import 确定目标库;用 inspect.signature() 构建知识库;用 ast.parse() 解析代码;遍历 ast.Call 校验参数与方法;对每个问题报告行号、代码片段、幻觉类型与修正建议及置信度;再输出修正后的代码。高置信修正可自动应用,低置信仅作建议供人工复核。
适用场景:校验第三方库(pandas、numpy、requests、sklearn 等)调用是否用了真实参数或方法;调试生成代码中的 unexpected keyword argument、has no attribute 一类错误;对不可信代码做免执行的安全检查。
限制:大量使用 kwargs 的 API(Flask、Django、Click)无法区分合法与幻觉关键字;动态生成的 API(SQLAlchemy 模型、protobuf)自省不到,可能漏报或误报;不跟踪跨函数数据流;仅支持 Python;不校验参数取值语义;约 23% 的幻觉需人工复核;无法自省的 C 扩展与 getattr、 解包调用会被跳过并在报告中标注;解析遇 SyntaxError 时须先修复语法。数据中暂未提供具体收费、价格与安装命令信息。