为了帮助你更好地理解毕业设计的要求,这里展示一个完整的示例项目,请别担心,小的创意同样可以被收录,只要是自己动手的作品都是值得珍惜的。
项目信息
- 项目名称:CodeReviewAgent
- 作者:@jjyaoao
- 项目路径:
Co-creation-projects/jjyaoao-CodeReviewAgent/
项目结构
jjyaoao-CodeReviewAgent/
├── README.md # 项目文档
├── requirements.txt # 依赖列表
├── main.ipynb # 主程序(含快速演示和完整功能)
├── .env.example # 环境变量示例
├── .gitignore # Git忽略规则
├── data/
│ └── sample_code.py # 示例代码
└── outputs/
└── review_report.md # 示例报告
核心代码片段(main.ipynb)
# ========================================
# 智能代码审查助手
# ========================================
from hello_agents import SimpleAgent, HelloAgentsLLM, ToolRegistry
from hello_agents.tools import Tool, ToolParameter
from typing import Dict, Any, List
import ast
import os
# ========================================
# 0. 配置LLM参数
# ========================================
os.environ["LLM_MODEL_ID"] = "Qwen/Qwen2.5-72B-Instruct"
os.environ["LLM_API_KEY"] = "your_api_key_here"
os.environ["LLM_BASE_URL"] = "https://api-inference.modelscope.cn/v1/"
os.environ["LLM_TIMEOUT"] = "60"
# ========================================
# 1. 定义代码分析工具
# ========================================
class CodeAnalysisTool(Tool):
"""代码静态分析工具"""
def __init__(self):
super().__init__(
name="code_analysis",
description="分析Python代码的结构、复杂度和潜在问题"
)
def run(self, parameters: Dict[str, Any]) -> str:
"""分析代码并返回结果"""
code = parameters.get("code", "")
if not code:
return "错误:代码不能为空"
try:
tree = ast.parse(code)
functions = [node for node in ast.walk(tree)
if isinstance(node, ast.FunctionDef)]
classes = [node for node in ast.walk(tree)
if isinstance(node, ast.ClassDef)]
result = {
"函数数量": len(functions),
"类数量": len(classes),
"代码行数": len(code.split('\n')),
"函数列表": [f.name for f in functions],
"类列表": [c.name for c in classes]
}
return str(result)
except SyntaxError as e:
return f"语法错误:{str(e)}"
def get_parameters(self) -> List[ToolParameter]:
return [
ToolParameter(
name="code",
type="string",
description="要分析的Python代码",
required=True
)
]
class StyleCheckTool(Tool):
"""代码风格检查工具"""
def __init__(self):
super().__init__(
name="style_check",
description="检查代码是否符合PEP 8规范"
)
def run(self, parameters: Dict[str, Any]) -> str:
"""检查代码风格"""
code = parameters.get("code", "")
if not code:
return "错误:代码不能为空"
issues = []
lines = code.split('\n')
for i, line in enumerate(lines, 1):
if len(line) > 79:
issues.append(f"第{i}行:超过79个字符")
if line.startswith(' ') and not line.startswith(' '):
if len(line) - len(line.lstrip()) not in [0, 4, 8, 12]:
issues.append(f"第{i}行:缩进不规范")
if not issues:
return "代码风格良好,符合PEP 8规范"
return "发现以下问题:\n" + "\n".join(issues)
def get_parameters(self) -> List[ToolParameter]:
return [
ToolParameter(
name="code",
type="string",
description="要检查的Python代码",
required=True
)
]
# ========================================
# 2. 创建工具注册表和智能体
# ========================================
# 创建工具注册表
tool_registry = ToolRegistry()
tool_registry.register_tool(CodeAnalysisTool())
tool_registry.register_tool(StyleCheckTool())
# 初始化LLM
llm = HelloAgentsLLM()
# 定义系统提示词
system_prompt = """你是一位经验丰富的代码审查专家。你的任务是:
1. 使用code_analysis工具分析代码结构
2. 使用style_check工具检查代码风格
3. 基于分析结果,提供详细的审查报告
审查报告应包括:
- 代码结构分析
- 风格问题
- 潜在bug
- 性能优化建议
- 最佳实践建议
请以Markdown格式输出报告。"""
# 创建智能体
agent = SimpleAgent(
name="代码审查助手",
llm=llm,
system_prompt=system_prompt,
tool_registry=tool_registry
)
# ========================================
# 3. 运行示例
# ========================================
# 读取示例代码
with open("data/sample_code.py", "r", encoding="utf-8") as f:
sample_code = f.read()
print("=== 待审查的代码 ===")
print(sample_code)
print("\n" + "="*50 + "\n")
# 执行代码审查
print("=== 开始代码审查 ===")
review_result = agent.run(f"请审查以下Python代码:\n\n```python\n{sample_code}\n```")
print(review_result)
# 保存审查报告
with open("outputs/review_report.md", "w", encoding="utf-8") as f:
f.write(review_result)
print("\n审查报告已保存到 outputs/review_report.md")
README.md 示例
# CodeReviewAgent - 智能代码审查助手
> 基于HelloAgents框架的智能代码审查工具
## 📝 项目简介
CodeReviewAgent是一个智能代码审查助手,能够自动分析Python代码的质量、发现潜在问题并提供优化建议。
### 核心功能
- ✅ 代码结构分析:统计函数、类、代码行数等
- ✅ 风格检查:检查是否符合PEP 8规范
- ✅ 智能建议:基于LLM提供深度分析和优化建议
- ✅ 报告生成:生成Markdown格式的审查报告
## 🛠️ 技术栈
- HelloAgents框架(SimpleAgent + ToolRegistry)
- Python AST模块(代码解析)
- ModelScope API(Qwen2.5-72B模型)
## 🚀 快速开始
### 安装依赖
\`\`\`bash
pip install -r requirements.txt
\`\`\`
### 配置LLM参数
**方式1: 使用.env文件**
\`\`\`bash
cp .env.example .env
# 编辑.env文件,填入你的API密钥
\`\`\`
**方式2: 直接在Notebook中设置**
项目已预配置ModelScope API,可直接运行。如需修改,编辑main.ipynb第1部分的配置代码。
### 运行项目
\`\`\`bash
jupyter lab
# 打开main.ipynb并运行所有单元格
\`\`\`
## 📖 使用示例
1. 将待审查的代码放入`data/sample_code.py`
2. 运行`main.ipynb`
3. 查看生成的审查报告`outputs/review_report.md`
## 🎯 项目亮点
- **自动化**:无需人工逐行检查,自动发现问题
- **智能化**:利用LLM理解代码语义,提供深度建议
- **可扩展**:易于添加新的检查规则和工具
## 👤 作者
- GitHub: [@jjyaoao](https://github.com/jjyaoao)
- 项目链接:[CodeReviewAgent](https://github.com/datawhalechina/hello-agents/tree/main/Co-creation-projects/jjyaoao-CodeReviewAgent)
## 🙏 致谢
感谢Datawhale社区和Hello-Agents项目!