需上传全部源码文件并确认✅标识后,用结构化指令明确调用规则:基础调用图、跨语言服务级依赖或带条件过滤的深度链路,再通过mermaid代码渲染验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要从零散的多个Python、Java或Go代码文件中理清函数级、模块级、服务级的真实调用链路,不能靠人工逐行跳转,也不能只让智谱清言“看一眼就画出来”——它必须明确知道哪些文件参与分析、调用方向怎么定义、是否要排除测试代码或日志埋点,否则生成的依赖图会混入大量噪声甚至反向错误。
第一步:上传全部相关代码文件并确认解析完成
点击输入框旁【上传文件】按钮 → 一次性选中所有待分析的源码文件(支持 .py/.java/.go/.ts/.js/.cpp,单次上限200MB)→ 等待每份文件名右侧出现✅图标。【未显示✅前,任何后续指令均无法触发真实文件内容读取】
若某文件仅显示名称但无✅,常见原因是:Java文件含未编译的内部类嵌套、Go文件有cgo注释块、TypeScript含未解析的import type声明。此时需先用VS Code保存为纯ESM格式再重传。
第二步:用结构化指令明确调用关系提取规则
方法一:基础调用图(适合快速定位主干链路)
发送:“请分析上传的所有Python文件,提取函数间直接调用关系,生成Mermaid流程图代码。要求:只保留.py文件中的def定义;忽略test_开头的函数和logging.info等日志调用;箭头方向为‘调用方 → 被调用方’。”
方法二:跨语言服务级依赖(适合微服务架构)
发送:“从‘auth-service.java’‘user-api.go’‘gateway.ts’三个文件中,识别HTTP请求发起点(如RestTemplate.exchange、http.Client.Do、fetch调用)与目标路径(如‘/v1/users’),构建服务间调用拓扑图。注意:Java中@FeignClient注解指向的服务名即为目标服务,而非URL字符串。”
方法三:带条件过滤的深度调用链(适合排查性能瓶颈)
发送:“在‘payment-core.py’和‘refund-handler.py’中,找出所有调用database.execute()且参数含‘UPDATE’关键字的函数,并向上追溯3层调用者,标注每层函数所在文件及行号。跳过try/except块内的调用。”
第三步:获取并验证调用图代码
第一步:等待智能体返回以```mermaid开头的代码块,里面包含graph TD或flowchart LR结构。
第二步:全选该段代码 → 复制 → 打开 mermaid.live 或 Obsidian → 粘贴 → 点击“Render”查看可视化图。若图中出现孤立节点或双向箭头,说明指令未排除反射调用或动态import,需加限定词如“排除__import__、getattr、eval相关调用”。
第三步:重点核对一个已知强依赖路径,例如“A.py中process_order()调用了B.py中charge_card()”,检查图中是否存在该边。不存在则返回上一步补全文件或调整指令关键词。











