RepoBuddy
开源AI代码仓库理解工具,通过构建代码知识图谱并结合大模型回答开发者关于陌生代码库的问题,答案附真实文件路径
时间轴 (近 90 天)
RepoBuddy 的工作流分为三步:浅克隆仓库、用 Graphify 构建知识图谱、图谱检索后交由 Gemma 4 回答。
RepoBuddy 使用 `git clone --depth 1` 只拉取最新一次提交,以避免完整历史带来的时间和磁盘开销。
RepoBuddy 每个问题先经 `graphify query` 返回相关子图,再连报告一起送入 Gemma 4,提示词硬性要求只能依据图谱作答并给出文件路径。
当 `graphify query` 返回退出码 4(问题太宽泛没有匹配节点)时,RepoBuddy 回退到只用报告作答,而不是直接报错。
为避免同一仓库并发建图竞争,RepoBuddy 为每个仓库维护一个 `asyncio.Task` 并用 `asyncio.shield` 保护,让所有调用方共享同一次构建结果(请求合并模式)。
Gemma 4 默认跑在 Ollama Cloud 上(`gemma4:31b`);用户选择 Gemini API 但调用失败时,系统会自动回退到 Ollama,两者都失败时错误信息会同时列出两个原因。
RepoBuddy 前端是静态 Next.js 站点托管在 Cloudflare Pages,API 是 FastAPI 部署在 Render,因为克隆仓库和运行 graphify 需要 git 和真实进程,无法在纯边缘环境完成。
RepoBuddy 的 Beta 云端模式下,Cloudflare Pages Functions 直接查询 Graphify Cloud 托管的 MCP 服务,让整个链路跑在 Cloudflare 上,但仅限管理员 Graphify 工作区中已索引的仓库。
Render 免费实例的磁盘在重启后会被清空,已建图的仓库可能在两次提问之间消失;当前处理方式是客户端重新建图并重试。
全部知识事实 (9)
RepoBuddy 的工作流分为三步:浅克隆仓库、用 Graphify 构建知识图谱、图谱检索后交由 Gemma 4 回答。
50%待验证RepoBuddy 使用 `git clone --depth 1` 只拉取最新一次提交,以避免完整历史带来的时间和磁盘开销。
50%待验证RepoBuddy 每个问题先经 `graphify query` 返回相关子图,再连报告一起送入 Gemma 4,提示词硬性要求只能依据图谱作答并给出文件路径。
50%待验证当 `graphify query` 返回退出码 4(问题太宽泛没有匹配节点)时,RepoBuddy 回退到只用报告作答,而不是直接报错。
50%待验证为避免同一仓库并发建图竞争,RepoBuddy 为每个仓库维护一个 `asyncio.Task` 并用 `asyncio.shield` 保护,让所有调用方共享同一次构建结果(请求合并模式)。
50%待验证Gemma 4 默认跑在 Ollama Cloud 上(`gemma4:31b`);用户选择 Gemini API 但调用失败时,系统会自动回退到 Ollama,两者都失败时错误信息会同时列出两个原因。
50%待验证RepoBuddy 前端是静态 Next.js 站点托管在 Cloudflare Pages,API 是 FastAPI 部署在 Render,因为克隆仓库和运行 graphify 需要 git 和真实进程,无法在纯边缘环境完成。
50%待验证RepoBuddy 的 Beta 云端模式下,Cloudflare Pages Functions 直接查询 Graphify Cloud 托管的 MCP 服务,让整个链路跑在 Cloudflare 上,但仅限管理员 Graphify 工作区中已索引的仓库。
50%待验证Render 免费实例的磁盘在重启后会被清空,已建图的仓库可能在两次提问之间消失;当前处理方式是客户端重新建图并重试。
50%