选型指南 架构设计 含可复制代码

代码库问答的四个难点与四项对策

目录层用 SSG 加 ISR 拿收录,工具层用一份 JSON Schema 承接 91 个站内工具,密钥、计费与限流全部收口在国内业务后端,模型调用统一走一层薄适配。这篇把我们真实的目录结构、Schema 字段定义、路由闸门、预扣结算伪代码和合规清单完整摊开。

陈
陈默架构组
2026-09-28 · 14 分钟阅读 · 8,432 次浏览

问「这个函数在哪被调用」,答案能否给出文件与行号?

代码库问答比文档问答难在哪

把 RAG 用在代码上("这个函数在哪被调用""这个配置项什么意思" ✔)会遇到四个特有难点 ✔:

一、四个难点

① 切分单位不对 ✗

按行或固定字数切,会把函数切断 ✔ → 应按语法单元切(函数/类/配置块 ✔)。

做不到语法解析时,至少按空行 + 缩进启发式切 ✔。

② 跨文件引用 ✗

"这个函数在哪调用"需要跨文件信息 ✔,而向量检索只看语义相似 ✔

→ 需要结构索引(导入关系、调用关系 ✔)辅助 ✔。

③ 版本与分支 ✗

同一份文件有多个版本与分支 ✔ → 必须带 repo + branch + commit ✔

(见文档版本那篇 ✔ —— 代码更严格 ✔)。

④ 代码与自然语言不同分布 ✗

问句是自然语言 ✔,代码是符号密集的文本 ✔ → 纯向量检索常常不准 ✔

→ 关键词/符号检索 + 向量混合更有效 ✔(见混合检索那篇 ✔)。

二、四项对策(按性价比排序)

```

① 切分按语法单元(收益最大,见切分那篇)

② 记录 repo/branch/commit 并在检索时过滤(安全性要求)

③ 混合检索(符号精确匹配 + 语义)

④ 结构索引(调用关系、导入关系)—— 成本最高,按需做

```

要点:先做 ① 与 ② ✗→✔ —— 它们成本低、收益大 ✔;

③④ 属于进阶 ✔。

三、必须注意的安全问题

· 权限过滤(不是所有代码所有人都能看 ✔ —— 见可筛选检索 ✔);

· 不要外发私有代码(合规 ✔ —— 见数据脱敏 ✔);

· 日志别记代码原文(记 hash 与路径 ✔ —— 见日志那篇 ✔)。

四、该观测什么

· 函数级召回率(抽 20 个"某函数在哪定义"的问题 ✔);

· 引用类问题准确率("在哪被调用" ✔ —— 这类最依赖结构信息 ✔);

· 跨文件问题的失败率 ✔(高说明需要结构索引 ✔);

· 权限拒绝的正确率(越权检索应为 0 ✔)。

五、一条判据

> 问"这个函数在哪被调用" ✔,答案是否完整且可核对(给出文件与行号 ✔)?

> 只能给"可能在某个文件里",说明还是纯向量检索 ✗。

本文由云枢 AI导航整理,内容以官方来源为准。

相关文章

顺序阅读

← 上一篇:输入预览:提交前让用户确认组装结果
下一篇:把重试与降级的日志串起来:一次失败的全貌 →

第 170 / 171 篇

术语速查 · 本页出现的 12 个词展开看中文名与一句话解释,点术语看完整条目
  • token词元:模型处理文本的最小单位,中文约 1–2 个汉字;计费与上下文长度都按它算。
  • 转写 / 字幕Transcription:把音视频人声逐句变成带时间戳的文字稿,便于做字幕与章节切分。
  • SSE服务器发送事件:服务器通过长连接持续推送增量文本,是对白逐字出现的常见实现。
  • API应用编程接口:程序之间约定的调用方式;站内工具由服务端调用,浏览器里不出现密钥。
  • CDN内容分发网络:把静态资源缓存到离用户更近的节点,缩短加载时间。
  • 缓存Cache:把结果暂存复用,复用得越多平均耗时越低;需要约定过期与刷新策略。
  • 限流Rate Limit:限制单位时间内的请求次数,防止单用户或异常流量打满服务端。
  • SSG静态站点生成:构建阶段就生成 HTML,访问时直接返回,不必每次请求都渲染。
  • ISR增量静态再生:先返回静态页,再在后台按需重新生成,兼顾速度与更新时效。
  • 灰度发布Canary Release:先让一小部分用户用新版本,确认无误再放量,出问题的爆炸半径最小。
  • 提示词Prompt:交给模型的指令文本;写清角色、任务、输入与输出格式比反复试更省。
  • 积分Credits:站内计费单位:按工具单价预扣,调用失败自动退还;单价以定价页为准。

完整解释与站内出现处见 AI 术语表(40 条)。