植物病害检测AI

一个基于Agentic AI的植物健康助手,用于早期病害检测、解释、治疗建议和音频指导。

  • by kaisarhossain
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kaisarhossain/LeafScan-AI

使用说明

🌱 LeafScan AI:使用MCP的代理AI进行植物病害检测

基于人工智能的植物早期疾病健康助手 检测、解释、治疗和音频指导。


🚀 概述

此应用程序是 人工智能植物病害诊断系统 技术支持:

  • MCP服务器(FastMCP) 暴露人工智能工具\
  • FastAPI后端 主持CNN模特+LLM+音频生成器\
  • 基于代理的工具调用,实现推理驱动的工作流程

用户可以:

  • 上传以下图片 土豆、番茄或胡椒 叶子\
  • 使用CNN模型自动检测植物病害\
  • 使用LLM生成详细的解释\
  • 获取语音建议\
  • 使用第二个代理工具检索工厂级详细信息

Streamlit应用程序交互 仅 随着 MCP服务器,其中 协调整个工具调用工作流程——制定解决方案 可扩展、模块化、易于扩展。


✨ 主要特点

🌿 植物病害分类

  • 上传图片\
  • 选择植物类型\
  • CNN模型识别疾病\
  • 显示置信度得分

🤖 语言代理:疾病解释与治疗

  • LLM生成:
    • 概述\
    • 症状\
    • 原因\
    • 推荐治疗\
    • 预防提示

🔊 音频代理

  • 将诊断+治疗转化为言语\
  • 在应用内播放音频

📘 工厂信息工具

  • 提供:
    • 工厂描述\
    • 营养/用法详情\
    • 栽培简介\
  • 无论疾病状态如何,都会触发

⚙️ 代理+MCP架构

  • 溪流→ MCP客户端\
  • MCP客户端→ MCP服务器(通过FastMCP公开的工具)\
  • MCP服务器→ 快速API→ ML模型+LLM+TTS

🧠 为什么选择人工智能?

使用a 能动性模型 使能够:

  1. 推理驱动的工具调用
    • 代理人决定 哪个 后端工具调用和 在什么 订单.
  2. 模块化可扩展性
    • CNN、LLM和音频生成器是单独的工具。
  3. 容错
    • 如果JSON格式不正确,代理可以重试或请求 澄清。
  4. 自主性
    • AI的行为就像一个编排器,而不仅仅是一个被动模型。
  5. 可重复使用性
    • 工具可以由其他应用程序使用(移动、API集成, 等等)。

这种设计非常类似于现代工业级 能动性 编排系统.


🏗️ 系统架构

高级结构

Streamlit UI (MCP Client)
        │
        ▼
MCP Server (FastMCP)
        ├── analyze_plant (Tool)
        └── plant_info   (Tool)
        └── play_audio   (Tool)
        │
        ▼
FastAPI Backend
│
├── /analyze  → Vision + LLM + TTS pipeline
└── /plant_info → LLM-based botanical information
└── /play_audio → gTTS-based audio generation

🔄 代理流程图

User Uploads Image + Selects Plant
               │
               ▼
       Streamlit (MCP Client)
               │ calls tool
               ▼
        MCP Server (FastMCP)
               │ calls API
               ▼
           FastAPI Server
    ┌────────────┬──────────────┬─────────────┐
    │ Vision CNN │  LLM Agent   │ Audio Agent │
    └────────────┴──────────────┴─────────────┘
               │ returns results
               ▼
        MCP Server aggregates
               ▼
     Streamlit displays results

🧩 组件

1.Streamlit应用程序(MCP客户端)

  • 上传图像的用户界面
  • 调用MCP工具
  • 显示器:
    • 疾病结果
    • 自信
    • LLM解释
    • 工厂信息
    • 音频回放

2.MCP服务器(FastMCP)

显示以下工具:


工具名称描述


analyze_plant 调用FastAPI /analyze 为了 疾病分类 解释和音频 代

plant_info 呼叫 /plant_info 为了 一般工厂细节

play_audio 呼叫 /play_audio 为了 播放解决方案音频


3.FastAPI后端

包含:- CNN模特 (土豆、番茄、胡椒)- LLM解释 发电机 - gTTS音频代理 - 终点: /analyze, /plant_info, /audio/{file}


🛠️ 安装和设置

  1. 克隆存储库:
git clone <repo-url>
cd plant-agentic-ai
  1. 安装依赖项:
pip install -r requirements.txt
  1. 启动FastAPI服务器:
uvicorn main:app --reload
  1. 启动MCP服务器:
python mcp_server.py
  1. 运行Streamlit UI:
streamlit run app.py

📁 项目结构

project/
├── fastapi_server.py       # FastAPI server exposing api
├── mcp_server.py           # FastMCP server accessing api and exposing tools
├── app.py                  # Streamlit frontend (Non-MCP client) for Hugging Face deployment/use
├── app_local.py            # Streamlit frontend (Non-MCP client) for local use
├── mcp_streamlit_agent.py  # Streamlit frontend (MCP Client/Agent) for lcoal use
├── mcp_test_script.py      # Testing MCP server Health
├── models/                 # Dir: Trained CNN models
├── audio/                  # Dir: Generated TTS/audio files
├── plant_diseasecure.json  # File for defaut solution as failover
└── requirements.txt

⚠️ 免责声明

此工具用于 教育和农业援助,不是a 替代认证农学家或植物病理学家。


👤 作者

凯撒侯赛因
GitHub投资组合:https://kaisarhossain.github.io/portfolio/