🐦 带MCP的API鸟类探测
📋 描述
基于AI的鸟类识别API使用:
- 快速API 使用API REST
- Groq (QWEN3-32B型)作为LLM *函数调用*
- MCP(模型上下文协议) 用于集成预测模型
- ResNet-50 在CUB-200数据集上训练(200种鸟类)
该API允许通过实时流式对话聊天从图像(上传或文件路径)中识别鸟类。
______________________________________________________________________
🚀 安装
1.先决条件
- Python 3.8+到Python 3.12
- 具有API密钥的Groq帐户(https://groq.com)
- 模型 ResNet-50 训练(
resnet50_cub.pth)和文件classes.txt
2.克隆或下载项目
git clone https://github.com/itsmeismaill/Bird-Detection.git
cd Bird-Detection3.安装依赖项
pip install -r requirements.txt #UPGRADE PIP BEFORE INSTALLING REQUIREMENTS______________________________________________________________________
⚙️ 配置
1.配置API Groq
打开主文件(mcp-client.py)并编辑:
GROQ_API_KEY = "VOTRE_CLE_API_GROQ_ICI" # Decommentez et Remplacez par votre clé cette ligne de code
GROQ_MODEL = "qwen/qwen3-32b" # Ou un autre modèle Groq compatible备选方案:使用环境变量:
export GROQ_API_KEY="votre_cle_api"2.配置MCP服务器路径
更改路径到 mcp_server.py :
MCP_SERVER_SCRIPT = "/chemin/absolu/vers/mcp_server.py" # Exemple: "/home/user/project/mcp_server.py"______________________________________________________________________
📂 文件结构
确保您具有以下结构:
Bird-Detection/
├── mcp_client.py # Fichier API principal
├── mcp_server.py # Serveur MCP
├── requirements.txt
├── model/
│ └── resnet50_cub.pth # Modèle PyTorch entraîné
└── classes.txt # Liste des 200 espèces d'oiseaux______________________________________________________________________
🏃 发射
启动API
python mcp_client.py或直接使用Uvicorn:
uvicorn mcp_client:app --host 0.0.0.0 --port 8000 --reload检查一切是否正常
打开浏览器: http://localhost:8000
您应该看到:
{
"service": "Bird Detection API - Universal Chat (Groq)",
"status": "running",
"mcp_connected": true,
"available_tools": 5
}______________________________________________________________________
📡 API的使用
交互式文档
Swagger用户界面: http://localhost:8000/docs
主要端点
1.简单聊天(发短信)
curl -X POST http://localhost:8000/chat -F "message=Bonjour, peux-tu m'aider à identifier un oiseau ?"2.上传d’image
curl -X POST http://localhost:8000/chat -F "message=Quelle espèce d'oiseau est-ce ?" -F "file=@/chemin/vers/image.jpg"3.图像化学
curl -X POST http://localhost:8000/chat -F "message=Identifie cet oiseau" -F "image_path=/chemin/vers/image.jpg"4.使用工具事件进行流式传输
curl -X POST http://localhost:8000/chat/stream -F "message=Analyse cette photo" -F "file=@bird.jpg"会议安排
# Créer une session
curl -X POST http://localhost:8000/sessions/create -H "Content-Type: application/json" -d '{"session_name": "Ma session"}'
# Lister les sessions
curl http://localhost:8000/sessions
# Supprimer une session
curl -X DELETE http://localhost:8000/sessions/{session_id}______________________________________________________________________
🛠️ 故障排除
错误“MCP不可用”
- 检查
MCP_SERVER_SCRIPT指向正确的文件 - 检查
mcp_server.pyest可访问 - 检查启动日志以查看MCP错误
“模型未初始化”错误
- 检查
model/resnet50_cub.pth存在 - 检查
classes.txt存在于同一级别mcp_server.py
Groq API错误
- 检查您的Groq API密钥
- 检查您的配额/请求限制
- 尝试其他兼容型号
______________________________________________________________________
📦 项目结构
├── mcp_client.py # API FastAPI principale avec Groq
├── mcp_server.py # Serveur MCP pour les prédictions
├── requirements.txt # Dépendances Python
├── model/
│ └── resnet50_cub.pth # Modèle PyTorch (non fourni)
└── classes.txt # 200 espèces d'oiseaux CUB-200______________________________________________________________________
💻 接口前端(Next.js)
文件夹中包含一个简单的web界面 ui/chatbot-bird 通过聊天机器人与API交互。
🚀 前端安装
- 转到前端文件夹:
cd ui/chatbot-bird- 安装依赖项:
npm install- 启动开发服务器:
npm run dev- 在以下地址打开浏览器:
聊天机器人将可访问并与您的API通信(默认端口8000)。
🔧 可选配置
如果API不在同一域或端口上,则可以更新前端代码中的API URL变量(.env.local 或配置文件)。例如:
NEXT_PUBLIC_API_URL=http://localhost:8000这将允许前端与FastAPI正确通信。
______________________________________________________________________
🤝 支持
对于任何问题或问题:
- 查看API日志
- 查看Swagger文档
/docs - 检查所有文件路径是否正确
