☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
要让gemini代码评审精准,需显式注入三类资料:①本次变更调用的api定义;②团队强制编码规范;③关联历史issue原文;并用diff+标注引用的prompt构造方式,配合自动化流水线加载与token控制。
你想让gemini在做代码评审时不只是泛泛而谈,而是能结合你项目里真实的api文档、内部规范、历史issue或第三方sdk手册给出具体建议,而不是靠模型“猜”——这需要把参考资料显式注入评审上下文,而非依赖模型自有知识。
明确哪些资料必须塞给Gemini
不是所有文档都值得传。只传三类:①本次变更直接调用的接口定义(如OpenAPI YAML、Swagger JSON);②团队强制执行的编码规范文档(如PDF/Markdown中的“禁止在循环内新建DB连接”条款);③本次修复所关联的历史Issue原文(含错误堆栈和复现步骤)。其他如公司Wiki首页、无关模块的README,传了反而稀释关键信息,导致模型注意力偏移。
这一步操作起来很简单,直接把文件拖进去就行。但注意:【必须用原始格式,别转成截图或长截图】——Gemini无法解析图片里的文字,PDF要确保是可选中文本的(非扫描件),Markdown需保留原始标题层级。
用diff+参考资料双输入构造Prompt
不要只扔一个文件让Gemini“自己看”。必须在Prompt里锚定引用关系:
方法一:在diff前加一段说明文字
“以下为本次PR修改的Java代码片段。请严格依据附件《支付网关V3接入规范_v2.1.pdf》第4.2节‘幂等性要求’、以及附件《订单服务异常处理SOP.md》中‘超时重试策略’条款进行审查。重点检查:是否对paymentId做了唯一性校验?重试逻辑是否遵循指数退避?”
方法二:用注释标记引用位置
在diff代码块内插入行级注释,例如:
```java
// ⚠️ 参照《风控规则引擎设计文档》第7.3条:此处必须调用validateRiskScore()而非直接返回true
if (user.isPremium()) {
return true;
}
```
这样Gemini会把注释当作指令的一部分,而不是忽略掉。
提示:如果参考资料是网页链接,务必确认该页面能被Gemini访问(公开URL)且内容稳定。内部Confluence链接或需登录的页面无效。
自动化流水线中嵌入参考资料加载
第一步:在CI脚本中识别本次PR影响的模块
git diff --name-only origin/main HEAD | grep -E '\.(java|py|go)$' | xargs -I{} dirname {} | sort -u
第二步:根据模块名映射到对应文档路径
比如src/main/java/com/example/payment → docs/payment_gateway_spec.pdf;src/services/order → docs/order_sop.md
第三步:将匹配到的文档与diff一同打包上传
python scripts/pack_review_payload.py --diff diff.txt --docs docs/payment_gateway_spec.pdf docs/order_sop.md > payload.json
第四步:调用Gemini API时,把payload.json作为请求体发送
注意:【单次请求总token不能超1M,PDF超过50页必须先用PyPDF2提取关键章节】











