AgriBot 🌾

A voice-first AI copilot designed for Yolo County farmers to provide instant, data-driven advice.

💡 Inspiration

The idea for AgriBot was sparked during a conversation with a farmer at the Davis Farmer's Market. We learned that while they need quick answers in the field, government hotlines are far too slow, and most AI apps are too complicated to use on the go. There was a clear need for a "zero-learning-curve solution" providing instant, 24/7 agricultural intelligence.

⚠️ The Problem

Helpful farming data is scattered across complex systems, and traditional support channels are simply not fast enough for the real-time needs of modern agriculture.

⚙️ The Solution (What it does)

AgriBot is a 24/7 AI phone line that leverages Google Earth Engine to instantly transform complex satellite and weather data into simple, spoken farming advice. It takes on the persona of a warm, knowledgeable local agronomist tailored specifically for Yolo County, CA, specializing in regional crops like Almonds, Rice, and Wine Grapes.

Farmers can interact with the system in two ways:

  1. Voice-First: Farmers can call AgriBot via phone. As they talk, the system fetches relevant data and answers them verbally.
  2. Text: A comprehensive web dashboard where users can text chat, view "Thinking" logic, and explore satellite maps.

If a farmer asks, "Do my tomatoes need water given the heatwave?", AgriBot automatically extracts the crop and location, pulls the real-time NDWI (Water Index) from satellites, checks the 3-day temperature/evapotranspiration forecast, retrieves the specific UC guidelines via RAG, and provides a cited, highly accurate recommendation.

📽️ Presentation

To get a full overview of our project, how it works, and our vision for the future, check out our presentation: 🔗 Agribot Presentation (Prezi)

How we built it ⚙️

Our system is built on a Real-Time Reasoning Loop that executes parallel data acquisition to minimize latency.

  • Frontend: React 18 and Vite for a high-performance UI, styled with TailwindCSS (using a high-contrast Glassmorphism UI for outdoor visibility). We used React-Leaflet for dynamic map tiles.
  • Backend: Python 3.12 and FastAPI act as the central nervous system, handling intent classification, async tool execution, and session state. Cloudflare Tunnels expose the backend securely.
  • AI & Orchestration: We utilized Llama 3.1 8B (via Cloudflare Workers AI) as our reasoning engine. LangChain orchestrates the agents, while ChromaDB serves as our lightweight local vector database for RAG (using all-MiniLM-L6-v2 embeddings).
  • Voice Integration: Orchestrated through Vapi.ai, utilizing Deepgram Nova-2 for lightning-fast speech-to-text and ElevenLabs for natural text-to-speech.
  • Data Sources: Geospatial computation is handled by Google Earth Engine (GEE) to generate on-the-fly NDVI/NDWI indices from Sentinel-2/Landsat satellites, while OpenMeteo provides hyper-local weather data.

Github: https://github.com/dhairye/AgriBot

Built With

  • chromadb
  • cloudflare-tunnels
  • cloudflare-workers
  • cloudflare-workers-ai
  • deepgram
  • fastapi
  • gemini
  • github
  • google-earth-engine
  • javascript
  • llama
  • morph
  • openmeteo
  • python
  • rag
  • react
  • react-leaflet
  • supabase
  • tailwind.css
  • typescript
  • uvicorn
  • vapi.ai
  • vite
  • websocket
Share this project:

Updates