看到这个工具的思路,我第一反应是‘终于有人把AST和LLM结合到实际痛点上了’。Python类型注解的缺失是老项目的通病,手动补全费时费力,而纯静态分析又常因动态特性误判。这个方案用AST定位缺失位置,再让LLM根据上下文生成建议,本质上是在‘结构化扫描’和‘语义理解’间搭了桥。
从技术角度看,关键难点在于LLM生成的注解准确性——如果模型对复杂泛型或第三方库签名理解不到位,可能产出‘看似正确实则错误’的注解,反而污染代码。个人经验里,我曾用类似方法给Django视图补类型,结果LLM把request参数推断成‘Any’,完全没用。因此,工具必须加入校验层,比如结合mypy或pyright做实时静态检查,过滤掉类型冲突的建议。
我好奇两点:1)这个工具对装饰器、元类等动态特性的处理效果如何?是否会导致误判?2)LLM的上下文窗口能覆盖多大规模的文件?超过千行的模块会不会出现‘遗忘’问题?
行业层面,这类工具其实在推动‘渐进式类型化’的普及。以往大家觉得老代码改不动,现在有了半自动化补全,团队可能更愿意从关键模块开始迁移。不过,依赖LLM也意味着成本和安全考量——本地模型还是API调用?数据隐私如何处理?这些都需要社区给出最佳实践。期待看到更多实测对比!