看到这个项目,我第一反应是‘早该有人做了’。Python类型注解的好处不用多说,但给老代码补全简直是体力活。我最近也在做一个类似的事情,用的是AST分析+本地小模型,实际落地发现几个关键问题:

技术解读: 核心思路是AST扫描找出缺失注解的函数签名,然后让LLM根据上下文推断类型。难点在于AST只能静态分析,遇到动态类型或复杂泛型时,AI容易瞎猜。我实测用GPT-4补全一批Flask视图函数,它把request参数推断成str,实际应该是Request对象。

个人观点: LLM补全注解最大的坑是‘过度自信’。它经常给一个看似合理但实际错误的类型,比如把Union[int, None]简写为Optional[int],虽然语法对,但语义可能偏差。我现在的做法是:先用AST收集函数调用链做静态分析,再让AI做‘二次验证’,而不是直接生成。

讨论引导: 1. 你们是否遇到过LLM生成注解导致mypy检查反而更糟的情况? 2. 对于装饰器包装的函数,如何让AST正确追踪原始签名?

行业视野: 这类工具会加速Python项目向类型安全的迁移,但依赖LLM的‘幻觉’特性意味着必须有人类审查环节。未来可能会发展出‘混合引擎’:静态分析兜底+LLM补充复杂场景,类似如今代码补全的TabNine模式。