使用说明
INF119最终项目——MCP多代理代码生成器(已修补)
埃里克·艾斯特拉达
姓名:伊万·冈萨雷斯
Chitubem Adinna
阿利亚斯·托马斯
该项目使用MCP(模型上下文协议)实现了一个多代理系统,用于代理之间的通信。它公开了一个Gradio GUI,该GUI接受所需软件应用程序的自然语言描述,并返回一个ZIP文件,其中包含:
- 生成的应用程序代码(Python)
- 生成的测试用例(Python,至少有10个测试)
- 关于如何运行应用程序和测试的说明
所有应用程序和测试代码都是由调用外部LLM的MCP工具在运行时生成的(Google Gemini通过 langchain_google_genai),并跟踪模型使用情况。
稳定性:
- MCP服务器延迟初始化LLM,如果初始化失败,则返回明确的错误字符串。
- Gradio分析被禁用,以避免pandas+Python 3.12问题。
- API密钥可以通过
.env或环境变量。
对于评分,主要输入将是粘贴到GUI中的“卡路里燃烧器”描述。
0.重要设置说明(请先阅读)
这个项目 必须使用Python 3.10或3.11.
Python 3.12不受支持 (多个依赖关系中断,包括tiktoken、Gradio分析等)。
如果您的系统默认显示如下内容:
/Library/Frameworks/Python.framework/Versions/3.12/bin/python3
那么你 必须明确使用 python3.11.
如果你遇到错误,你可能需要通过以下方式安装python 3.11
https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg适用于 Mac
https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe对于Windows
1.新安装(推荐用于平地机/新机器)
从一个干净的文件夹开始,克隆存储库:
git clone https://github.com/Eric-Estrada519/MCP_Code_Generator.git
cd MCP_Code_Generator
2.创建本地虚拟环境
创建虚拟环境 在项目文件夹内:
对于Mac
python3.11 -m venv .venv
对于窗口 选项A(推荐):
py -3.11 -m venv .venv
选项B(如果缺少py):
python -m venv .venv
激活它:
适用于 Mac
source .venv/bin/activate
对于Windows
.\.venv\Scripts/activate
验证您是否使用了正确的Python:
对于Mac
which python
对于 Windows
Get-Command python
预期输出(示例):
…/IN4MATX119_Final_Project/.venv/bin/python
如果它显示系统Python 3.12路径,则venv未正确激活。
3.安装所需的依赖项
启动venv后:
对于Mac
pip install --upgrade pip
pip install -r requirements.txt
对于 Windows
python.exe -m pip install --upgrade pip
pip install -r requirements.txt
这将安装:
- MCP服务器框架
- 朗链客户端
- 谷歌GenAI工具
- Gradio图形用户界面
- ZIP实用程序
- 模型使用跟踪器
4.创建您的 .env 文件
项目需要一个包含API密钥的环境变量。
通过运行下面的bash或自己创建文件:
touch .env
将以下行添加到您创建的.env文件中:
GOOGLE_API_KEY=your_api_key_here
GEMINI_API_KEY=your_api_key_here
5.运行应用程序
一旦venv激活:
对于Mac
python3 -m gui.gradio_app
对于 Windows
python -m gui.gradio_app
或
py -m gui.gradio_app
请勿奔跑:
python3 gui/gradio_app.py
这破坏了Python模块的解析。
运行正确的命令会在浏览器中启动Gradio GUI,您可以在其中粘贴分配提示(例如“卡路里燃烧器”)并生成可交付的ZIP。
6.VS代码用户:选择正确的解释器
如果使用VS代码:
⌘ + Shift + P → “Python: Select Interpreter”
选择:
./.venv/bin/python (Mac)
.\.venv\Scripts\python (Windows)
这可以防止VS Code意外使用Python 3.12。
7.确保 .venv 和 .env 在VS代码中可见
如果你看不到文件:
VS Code默认隐藏点文件。
启用可见性:
Settings → search "files.exclude"
或者明确取消隐藏:
"files.exclude": {
"**/.venv": false,
"**/.env": false
}
8.项目结构
├── gui/
│ └── gradio_app.py # GUI entry point
├── mcp_servers/
│ ├── codegen_server.py # MCP server: generates application code
│ ├── testgen_server.py # MCP server: generates 10+ test cases
│ └── refinement_server.py # MCP server: refinement pass
├── orchestrator/
│ ├── orchestrator_client.py # Coordinates all MCP server tools
│ └── zip_util.py # Builds final ZIP
├── model_tracker.py # Tracks model usage across agents
├── requirements.txt
└── README.md
9.生成的ZIP包含什么
运行GUI会产生:
app/--完整的应用程序源代码tests/--≥10次自动生成单元测试
