forked from zhanggangyong/agent_management
4.1 KiB
4.1 KiB
代码重构总结
✅ 重构完成
项目已成功重构,按照功能将 Python 文件分类到不同文件夹,保持目录整洁。
📁 新的目录结构
Pydantic-ai/
├── src/ # 源代码
│ ├── server/ # 服务器模块
│ │ ├── mcp_server.py # MCP 服务器
│ │ └── api_server.py # HTTP API 服务器
│ └── client/ # 客户端模块
│ └── mcp_client.py # MCP 客户端示例
│
├── tests/ # 测试
│ ├── test_agent.py
│ └── test_mcp_server.py
│
├── docs/ # 文档
│ ├── API_DOCUMENTATION.md
│ ├── DEPLOYMENT.md
│ └── README_API.md
│
├── run_api_server.py # HTTP API 启动脚本
├── run_mcp_server.py # MCP 服务器启动脚本
├── requirements.txt
├── Dockerfile
└── docker-compose.yml
🔄 导入路径更新
已更新的文件
-
src/server/api_server.py- ✅ 更新:从
import mcp_server改为from .mcp_server import ... - ✅ 使用相对导入,更符合 Python 包结构
- ✅ 更新:从
-
src/client/mcp_client.py- ✅ 更新:使用
Path动态获取mcp_server.py路径 - ✅ 支持从任何位置运行
- ✅ 更新:使用
-
tests/test_mcp_server.py- ✅ 更新:从
from mcp_server import改为from src.server.mcp_server import - ✅ 添加项目根目录到 Python 路径
- ✅ 更新:从
-
Dockerfile- ✅ 更新:启动命令改为
python run_api_server.py - ✅ 使用统一的启动脚本
- ✅ 更新:启动命令改为
📝 新增文件
run_api_server.py- HTTP API 服务器启动脚本run_mcp_server.py- MCP 服务器启动脚本src/__init__.py- 源代码包初始化src/server/__init__.py- 服务器模块导出src/client/__init__.py- 客户端模块初始化tests/__init__.py- 测试模块初始化PROJECT_STRUCTURE.md- 项目结构说明文档
🚀 使用方式
启动 HTTP API 服务器
# 方式 1: 使用启动脚本(推荐)
python run_api_server.py
# 方式 2: 直接运行模块
python -m src.server.api_server
启动 MCP 服务器
# 方式 1: 使用启动脚本(推荐)
python run_mcp_server.py
# 方式 2: 直接运行模块
python -m src.server.mcp_server
运行测试
# 运行所有测试
python tests/test_agent.py
python tests/test_mcp_server.py
# 或使用 pytest
pytest tests/
Docker 部署
# 构建和运行(已更新路径)
docker-compose up -d
✅ 验证清单
- 所有文件已移动到正确目录
- 所有导入语句已更新
__init__.py文件已创建- 启动脚本已创建
- Dockerfile 路径已更新
- 测试文件导入已更新
- 客户端文件路径引用已更新
- 文档已移动到 docs/ 目录
📋 导入示例
在项目内部导入
# 从服务器模块导入工具函数
from src.server.mcp_server import generate_code, refactor_code
# 或使用 __init__.py 中的导出
from src.server import generate_code, refactor_code
在测试中导入
import sys
from pathlib import Path
# 添加项目根目录到路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
from src.server.mcp_server import code_assistant_agent
🎯 重构优势
- 清晰的目录结构: 按功能分类,易于维护
- 标准的 Python 包结构: 符合 Python 最佳实践
- 易于扩展: 新增功能可以轻松添加到对应目录
- 导入路径清晰: 使用
src.server、src.client等明确路径 - 统一的启动方式: 使用根目录启动脚本,方便运行
📚 相关文档
- PROJECT_STRUCTURE.md - 详细的项目结构说明
- docs/API_DOCUMENTATION.md - API 接口文档
- docs/DEPLOYMENT.md - 部署指南
重构完成时间: 2025-01-08