使用说明
🧠 MCP工具包
MCP Toolkit是一个基于Python的检索增强生成(RAG)系统,用于回答有关Python代码库的自然语言问题,专门用于分析提供的 grip-no-tests 代码(假设面试审核者单独包含)。
它执行以下操作:
- 代码库分块
- 嵌入+语义索引
- 通过OpenAI进行检索和问答
- 基准评估使用
grip_qa.json - 通过代理进行高级分析
🚀 入门指南
1.安装Python 3.12
确保您正在使用 Python 3.12.
-
您可以从官方网站下载:
https://www.python.org/downloads/release/python-3120/ -
安装后,请使用以下工具进行验证:
python3 --version
# Should print: Python 3.12.x
2.添加 grip-no-tests Python代码库
放置提供的 grip-no-tests MCP Toolkit目录中的代码库:
MCP-Toolkit/
├── main.py
├── grip-no-tests/ ← manually included folder
├── grip_qa/
│ ├── 0001.q.md
│ ├── 0001.a.md
├── results/ ← contains example output files
├── .env
⚠️ 此仓库不托管在GitHub上。假设它是作为任务的一部分手动包含的。
3.安装依赖项
pip install -r requirements.txt
或手动:
pip install openai fastapi uvicorn chromadb python-dotenv pydantic
4.设置API密钥
创建一个 .env 项目根目录中的文件:
OPEN_API_KEY=sk-...
5.生成 grip_qa.json 从markdown
这将转换您的 .q.md 和 .a.md 将文件转换为基准数据集。
python main.py --generate-grip
✅ 这创造了 grip_qa.json 从文件中 grip_qa/ 文件夹。
💬 运行提问回答API
启动FastAPI服务器:
python main.py
打开浏览器:
http://localhost:8000/docs
测试 /qa 带有POST请求的端点,如:
{
"question": "How do I run grip from the command line?"
}
✅ 该系统将:
- 嵌入您的问题
- 检索最相关的代码块
- 将它们输入GPT
- 返回有用的答案
🧪 运行评估
根据基准答案进行评估 grip_qa.json:
python main.py --evaluate
✅ 这个:
- 在系统中运行所有抓握QA问题
- 使用以下公式将答案与参考答案进行比较
difflib.SequenceMatcher - 打印每个问题的相似性得分和总体平均值
🧠 运行存储库分析
要生成关于代码库的markdown风格的报告,请执行以下操作:
python main.py --analyze
✅ 这使用LLM来回答以下高级问题:
- 建筑是什么?
- 使用了哪些设计模式?
- 关键依赖关系是什么?
📂 示例结果
该项目包括 results/ 包含示例输出文件的文件夹来自:
--evaluate跑--analyze报告- 样品
/qa响应
这些说明了出于验证和测试目的,典型的运行应该是什么样子。
🛠 下一步/改进
以下是用最少的努力改进项目的方法:
1. 代码模块化
- 现在一切都好了
main.py - 拆分为以下模块
retriever.py,evaluator.py等将提高可读性和可测试性
2. 使回购选择动态化
- 目前,该系统假设
grip-no-tests回购是手动添加的 - 添加CLI标志或配置选项以动态分析任何仓库路径
3. 改进评估指标
- 当前评估者使用
difflib.SequenceMatcher,这是字符级别 - 切换到语义相似性模型(例如。,
sentence-transformers)会更好地捕捉到转述但准确的答案
🔁 可选:使用Shell脚本进行验证
要使用一个命令对系统进行端到端测试,请使用附带的 validate.sh 脚本:
🧪 一次运行所有步骤:
chmod +x validate.sh
./validate.sh
这将:
- 生成
grip_qa.json从markdown文件 - 运行评估并将输出保存到
results/eval_test.txt - 运行分析并将输出保存到
results/analysis_test.md
✅ 使用此功能可快速验证您的设置是否与预期行为匹配。