fix(ci): 修复AI代码审查脚本缺失build_review_prompt函数 #473
@@ -392,6 +392,66 @@ def call_llm_coze(
|
||||
return None
|
||||
|
||||
|
||||
def build_review_prompt(diff_text: str, pr_number: int, file_list: list) -> str:
|
||||
"""
|
||||
构建代码审查的 Prompt。
|
||||
包含:PR 基本信息、修改文件列表、diff 内容、审查要求。
|
||||
"""
|
||||
# 提取文件名列表
|
||||
file_names = [f.get("filename", "") for f in file_list] if file_list else []
|
||||
file_list_str = "\n".join(f" - {fn}" for fn in file_names) if file_names else " (未获取到文件列表)"
|
||||
|
||||
prompt = f"""请作为资深代码审查专家,对以下 Pull Request 的代码变更进行严格审查。
|
||||
|
||||
## PR 基本信息
|
||||
- PR 编号: #{pr_number}
|
||||
- 修改文件数: {len(file_list) if file_list else '未知'}
|
||||
|
||||
## 修改文件列表
|
||||
{file_list_str}
|
||||
|
||||
## 代码变更(diff)
|
||||
```diff
|
||||
{diff_text}
|
||||
```
|
||||
|
||||
## 审查要求
|
||||
请从以下维度进行审查,重点关注严重问题:
|
||||
|
||||
1. **逻辑正确性**:是否有明显的逻辑错误、边界条件遗漏、空指针/None引用风险
|
||||
2. **异常处理**:异常捕获是否合理,是否有裸except,错误处理是否完善
|
||||
3. **参数校验**:函数入参、返回值是否有必要的校验
|
||||
4. **代码质量**:是否有重复代码、命名不清晰、过于复杂的函数
|
||||
5. **性能问题**:是否有明显的性能隐患(如循环内重复计算、不必要的数据库查询)
|
||||
6. **安全问题**:是否有注入风险、敏感信息泄露、权限控制问题
|
||||
|
||||
## 输出格式
|
||||
请使用以下格式输出,语言为中文:
|
||||
|
||||
### 📊 审查概览
|
||||
- 整体评价:(通过 / 有建议 / 需修改)
|
||||
- 严重问题数量:X 个
|
||||
- 一般建议数量:X 个
|
||||
|
||||
### ❌ 需修改的问题(严重)
|
||||
(如果没有严重问题,写"无")
|
||||
1. **[文件: 行号] 问题标题**
|
||||
- 问题描述:...
|
||||
- 修改建议:...
|
||||
|
||||
### 💡 改进建议(一般)
|
||||
(如果没有建议,写"无")
|
||||
1. **[文件: 行号] 建议标题**
|
||||
- 具体内容:...
|
||||
|
||||
### ✅ 良好实践
|
||||
(可选,列出值得肯定的地方)
|
||||
|
||||
请务必基于代码实际内容审查,不要编造不存在的问题。如果代码质量良好,直接给出通过结论即可。
|
||||
"""
|
||||
return prompt
|
||||
|
||||
|
||||
def call_llm_for_review(
|
||||
diff_text: str,
|
||||
pr_number: int,
|
||||
|
||||
Reference in New Issue
Block a user