小天管理 发表于 2024年8月30日 发表于 2024年8月30日 最近在学习新框架的过程中,我想通过大语言模型( LLM )来强化对项目源代码的理解。我发现 Claude 可以将代码块通过 Mermaid 转换成图形,这无疑能让开发者更好地学习和理解代码模块。然而,由于 LLM 有 Token 数量的限制,开源项目的文件和代码量通常很大,直接将完整代码提供给 LLM 进行分析并不现实。如果手动分段和汇总代码,操作也不太现实(当代码量很大时,多个 LLM 会话还是需要手动处理)。我发现编译过程中有一个抽象语法树( AST )的概念,可以解析代码,生成一种结构化表示,便于理解代码各部分的关系。通过 AST 可以很容易提取函数、类、变量等信息。尽管将代码转成 AST 之后再让 LLM 理解是一种抽象的解决方案,但这种方法可能依然会超出 Token 的限制。像通过 CodeBERT 结合 RAG 这样的方案,虽然可以通过代码的特定标识做检索,但不能在抽象理解后让 LLM 再次处理。关于这种组合策略,还有哪些其他方向可以考虑?
已推荐帖子