# harish241501066/agrivision architecture

> Architecture diagram of the GitHub repository harish241501066/agrivision, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/harish241501066/agrivision
- Repository: https://github.com/harish241501066/agrivision

## Overview

AgriVisionAI is a crop-disease intelligence web application. A user submits a leaf image from the React interface; the FastAPI backend runs model inference, applies quality checks, and returns a prediction for display. From that result, the interface can request recovery guidance, and users can separately chat with an agricultural assistant or inspect dataset/model analytics. The model artifacts and class labels support inference. The README is empty and several source excerpts are partial, so the graph includes only wiring supported by the tree, endpoint excerpts, or explicit component evidence.

Main entry points: [`backend/main.py`](https://github.com/harish241501066/agrivision/blob/main/backend/main.py) (FastAPI routes), [`frontend/src/App.jsx`](https://github.com/harish241501066/agrivision/blob/main/frontend/src/App.jsx) (Analyze UI), [`backend/inference.py`](https://github.com/harish241501066/agrivision/blob/main/backend/inference.py) (Image inference), [`frontend/src/EDA.jsx`](https://github.com/harish241501066/agrivision/blob/main/frontend/src/EDA.jsx) (EDA views)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_app["Analyze UI<br/>[App.jsx]"]
  node_eda_ui["EDA views<br/>[EDA.jsx]"]
  node_chat_ui["Chat UI<br/>[ChatBot.jsx]"]
end

subgraph group_api["API orchestration"]
  node_api_main["FastAPI routes<br/>[main.py]"]
  node_schemas["API schemas<br/>[schemas.py]"]
end

subgraph group_intelligence["Intelligence services"]
  node_guardrails["Quality gates<br/>[guardrails.py]"]
  node_inference["Image inference<br/>[inference.py]"]
  node_recommendations["Recovery guidance<br/>[llm_service.py]"]
  node_chat_service["Assistant service<br/>[chat_service.py]"]
end

subgraph group_assets["Model assets"]
  node_onnx["ONNX model"]
  node_class_names["Class labels<br/>[class_names.json]"]
  node_torch_model["PyTorch model"]
end

node_farmer(("User"))
node_groq{{"Groq API"}}

node_farmer -->|"submits image"| node_app
node_app -->|"requests prediction"| node_api_main
node_api_main -->|"runs inference"| node_inference
node_api_main -->|"checks prediction"| node_guardrails
node_inference -->|"loads model"| node_onnx
node_inference -.->|"fallback loads"| node_torch_model
node_inference -->|"loads labels"| node_class_names
node_api_main -->|"returns result"| node_app
node_app -->|"requests guidance"| node_api_main
node_api_main -->|"gets guidance"| node_recommendations
node_recommendations -->|"requests completion"| node_groq
node_app -->|"renders chat"| node_chat_ui
node_chat_ui -->|"sends messages"| node_api_main
node_api_main -->|"dispatches chat"| node_chat_service
node_chat_service -->|"requests completion"| node_groq
node_app -->|"renders analytics"| node_eda_ui
node_eda_ui -->|"requests analytics"| node_api_main
node_api_main -->|"reads model metadata"| node_inference
node_api_main -->|"validates API data"| node_schemas

click node_app "https://github.com/harish241501066/agrivision/blob/main/frontend/src/App.jsx"
click node_eda_ui "https://github.com/harish241501066/agrivision/blob/main/frontend/src/EDA.jsx"
click node_chat_ui "https://github.com/harish241501066/agrivision/blob/main/frontend/src/ChatBot.jsx"
click node_api_main "https://github.com/harish241501066/agrivision/blob/main/backend/main.py"
click node_schemas "https://github.com/harish241501066/agrivision/blob/main/backend/schemas.py"
click node_guardrails "https://github.com/harish241501066/agrivision/blob/main/backend/guardrails.py"
click node_inference "https://github.com/harish241501066/agrivision/blob/main/backend/inference.py"
click node_recommendations "https://github.com/harish241501066/agrivision/blob/main/backend/llm_service.py"
click node_chat_service "https://github.com/harish241501066/agrivision/blob/main/backend/chat_service.py"
click node_onnx "https://github.com/harish241501066/agrivision/blob/main/models/agrivision_efficientnet_b0.onnx"
click node_class_names "https://github.com/harish241501066/agrivision/blob/main/models/class_names.json"
click node_torch_model "https://github.com/harish241501066/agrivision/blob/main/training/agrivision_efficientnet_b0.pt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_eda_ui,node_chat_ui,node_farmer toneBlue
class node_api_main,node_schemas toneAmber
class node_guardrails,node_inference,node_recommendations,node_chat_service,node_groq toneMint
class node_onnx,node_class_names,node_torch_model toneRose
```

## Components

### Web interface

- [Analyze UI](https://github.com/harish241501066/agrivision/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [EDA views](https://github.com/harish241501066/agrivision/blob/main/frontend/src/EDA.jsx): `frontend/src/EDA.jsx`
- [Chat UI](https://github.com/harish241501066/agrivision/blob/main/frontend/src/ChatBot.jsx): `frontend/src/ChatBot.jsx`

### API orchestration

- [FastAPI routes](https://github.com/harish241501066/agrivision/blob/main/backend/main.py): `backend/main.py`
- [API schemas](https://github.com/harish241501066/agrivision/blob/main/backend/schemas.py): `backend/schemas.py`

### Intelligence services

- [Quality gates](https://github.com/harish241501066/agrivision/blob/main/backend/guardrails.py): `backend/guardrails.py`
- [Image inference](https://github.com/harish241501066/agrivision/blob/main/backend/inference.py): `backend/inference.py`
- [Recovery guidance](https://github.com/harish241501066/agrivision/blob/main/backend/llm_service.py): `backend/llm_service.py`
- [Assistant service](https://github.com/harish241501066/agrivision/blob/main/backend/chat_service.py): `backend/chat_service.py`

### Model assets

- [ONNX model](https://github.com/harish241501066/agrivision/blob/main/models/agrivision_efficientnet_b0.onnx): `models/agrivision_efficientnet_b0.onnx`
- [Class labels](https://github.com/harish241501066/agrivision/blob/main/models/class_names.json): `models/class_names.json`
- [PyTorch model](https://github.com/harish241501066/agrivision/blob/main/training/agrivision_efficientnet_b0.pt): `training/agrivision_efficientnet_b0.pt`

### Other components

- **User**
- **Groq API**

## Connections

- User → Analyze UI: submits image
- Analyze UI → FastAPI routes: requests prediction
- FastAPI routes → Image inference: runs inference
- FastAPI routes → Quality gates: checks prediction
- Image inference → ONNX model: loads model
- Image inference → PyTorch model: fallback loads
- Image inference → Class labels: loads labels
- FastAPI routes → Analyze UI: returns result
- Analyze UI → FastAPI routes: requests guidance
- FastAPI routes → Recovery guidance: gets guidance
- Recovery guidance → Groq API: requests completion
- Analyze UI → Chat UI: renders chat
- Chat UI → FastAPI routes: sends messages
- FastAPI routes → Assistant service: dispatches chat
- Assistant service → Groq API: requests completion
- Analyze UI → EDA views: renders analytics
- EDA views → FastAPI routes: requests analytics
- FastAPI routes → Image inference: reads model metadata
- FastAPI routes → API schemas: validates API data
