Aglimate / SYSTEM_OVERVIEW.md
nexusbert's picture
Update SYSTEM_OVERVIEW.md
12b9ece verified

Aglimate – Farmer-First Climate-Resilient Advisory Agent

1. Product Introduction

Aglimate is a multilingual, multimodal climate-resilient advisory agent designed specifically for Nigerian (and African) smallholder farmers. It provides farmer-first, locally grounded guidance using AI-powered assistance.

Why Aglimate is important:

  • Climate shocks are rising: Irregular rains, floods, heat waves, and new pest patterns are already reducing yields for smallholder farmers.
  • Advisory gaps: Most farmers still lack timely access to agronomists and extension officers in their own language.
  • Food security impact: Smarter, climate-aware decisions at the farm level directly protect household income, nutrition, and national food security.

Key Capabilities:

  • Climate-smart Agricultural Q&A: Answers questions about crops, livestock, soil, water, and weather in multiple languages.
  • Climate-Resilient Advisory: Uses text + optional photo + GPS location to give context-aware, practical recommendations.
  • Live Agricultural Updates: Delivers real-time weather information and agricultural news through RAG (Retrieval-Augmented Generation).

Developer: Oluchukwu Prosper Target Users: Farmers, agronomists, agricultural extension officers, and agricultural support workers in Nigeria and similar contexts


2. Problem Statement

Nigerian smallholder farmers face significant challenges:

2.1 Limited Access to Agricultural Experts

  • Scarcity of agronomists and veterinarians relative to the large farming population
  • Geographic barriers preventing farmers from accessing expert advice
  • High consultation costs that many smallholder farmers cannot afford
  • Long waiting times for professional consultations, especially during critical periods (disease outbreaks, planting seasons)

2.2 Language Barriers

  • Most agricultural information and resources are in English, while many farmers primarily speak Hausa, Igbo, or Yoruba
  • Technical terminology is not easily accessible in local languages
  • Translation services are often unavailable or unreliable

2.3 Fragmented Information Sources

  • Weather data, soil reports, disease information, and market prices are scattered across different platforms
  • No unified system to integrate and interpret multiple data sources
  • Information overload without proper context or prioritization

2.4 Time-Sensitive Decision Making

  • Disease outbreaks require immediate identification and treatment
  • Weather changes affect planting, harvesting, and irrigation decisions
  • Pest attacks can devastate crops if not addressed quickly
  • Delayed responses lead to significant economic losses

2.5 Solution Approach

Aglimate addresses these challenges by providing:

  • Fast, AI-powered responses available 24/7
  • Multilingual support (English, Igbo, Hausa, Yoruba)
  • Integrated intelligence combining expert models, RAG, and live data
  • Accessible interface via text, voice, and image inputs
  • Professional consultation reminders to ensure farmers seek expert confirmation when needed

3. System Architecture & Request Flows

3.1 General Agricultural Q&A – POST /ask

Step-by-Step Process:

  1. Input Reception

    • User sends query (text) with optional session_id for conversation continuity
  2. Language Detection

    • FastText model (facebook/fasttext-language-identification) detects input language
    • Supports: English, Igbo, Hausa, Yoruba
  3. Translation (if needed)

    • If language ≠ English, translates to English using NLLB (drrobot9/nllb-ig-yo-ha-finetuned)
    • Preserves original language for back-translation
  4. Intent Detection

    • Classifies query into categories:
      • Weather question: Requests weather information (with/without Nigerian state)
      • Live update: Requests current agricultural news or updates
      • Normal question: General agricultural Q&A
      • Low confidence: Falls back to RAG when intent is unclear
  5. Context Building

    • Weather intent: Calls WeatherAPI for state-specific weather data, embeds summary into context
    • Live update intent: Queries live FAISS vectorstore index for latest agricultural documents
    • Low confidence: Falls back to static FAISS index for safer, more general responses
  6. Conversation Memory

    • Loads per-session history from MemoryStore (TTL cache, 1-hour expiration)
    • Trims to MAX_HISTORY_MESSAGES (default: 30) to prevent context overflow
  7. Expert Model Generation

    • Uses Qwen/Qwen1.5-1.8B (finetuned for Nigerian agriculture)
    • Loaded lazily via model_manager (CPU-optimized, first-use loading)
    • Builds chat messages: system prompt + conversation history + current user message + context
    • System prompt restricts responses to agriculture/farming topics only
    • Generates bounded-length answer (reduced token limit: 400 tokens for general, 256 for weather)
    • Cleans response to remove any "Human: / Assistant:" style example continuations
  8. Back-Translation

    • If original language ≠ English, translates answer back to user's language using NLLB
  9. Response

    • Returns JSON: { query, answer, session_id, detected_language }

Safety & Focus:

  • System prompt enforces agriculture-only topic handling
  • Unrelated questions are redirected back to farming topics
  • Response cleaning prevents off-topic example continuations

3.2 Climate-Resilient Multimodal Advisory – POST /advise

Step-by-Step Process:

  1. Input Reception

    • query: Farmer question or situation description (required)
    • Optional fields: latitude, longitude (GPS), photo (field image), session_id
  2. Context Building

    • Uses GPS (if provided) to query WeatherAPI for local weather snapshot
    • Uses shared conversation history (via MemoryStore) for continuity
    • Combines text, optional image, and weather/location context
  3. Multimodal Expert Model

    • Uses Qwen/Qwen2-VL-2B-Instruct for vision-language reasoning
    • Generates concise, step-by-step climate-resilient advice:
      • Immediate actions
      • Short-term adjustments
      • Longer-term climate-smart practices
  4. Output

    • JSON response: { answer, session_id, latitude, longitude, used_image, model_used }

3.3 Climate & Weather Data APIs – /weather/*

To support climate-first decision making and give frontend engineers clear integration points, Aglimate exposes a set of WeatherAPI-backed endpoints:

  • GET /weather/current

    • Inputs: q (free query), or state, or lat+lon; optional aqi.
    • Output: Raw WeatherAPI current.json (realtime weather + optional air quality).
  • GET /weather/forecast

    • Inputs: same q / state / lat+lon; days (1–14), alerts, aqi.
    • Output: Raw forecast.json (multi-day forecast + alerts + AQI).
  • GET /weather-alerts

    • Inputs: q / state / lat+lon.
    • Output: { location, alerts } extracted from forecast.json for UI alert displays.
  • GET /weather/history

    • Inputs: q / state / lat+lon, dt, optional end_dt, hour, aqi.
    • Output: Raw history.json for past climate/condition analysis.
  • GET /weather/marine

    • Inputs: q or lat+lon, days (1–7), tides.
    • Output: Raw marine.json (marine + tide data where available).
  • GET /weather/future

    • Inputs: q / state / lat+lon, dt (future date).
    • Output: Raw future.json (3-hourly forecast for future date).
  • GET /weather/timezone

    • Inputs: q / state / lat+lon.
    • Output: Raw timezone.json (time zone + local time data).
  • GET /weather/search

    • Inputs: q (partial city/zip/etc.).
    • Output: Raw search.json (location suggestions for UI autocompletes).
  • GET /weather/ip

    • Inputs: optional ip (falls back to auto:ip).
    • Output: Raw ip.json (IP-based location lookup).

These endpoints are designed as thin pass-throughs over WeatherAPI, so frontend engineers can call them directly or use their outputs inside richer Aglimate views.

4. Technologies Used

4.1 Backend Framework & Infrastructure

  • FastAPI: Modern Python web framework for building REST APIs and WebSocket endpoints
  • Uvicorn: ASGI server for running FastAPI applications
  • Python 3.10: Programming language
  • Docker: Containerization for deployment
  • Hugging Face Spaces: Deployment platform (Docker runtime, CPU-only environment)

4.2 Core Language Models

4.2.1 Expert Model: Qwen/Qwen1.5-1.8B

  • Model: Qwen/Qwen1.5-1.8B (via Hugging Face Transformers)
  • Purpose: Primary agricultural Q&A and conversation
  • Specialization: Finetuned/specialized for Nigerian agricultural context through:
    • Custom system prompts focused on Nigerian farming practices
    • Domain-specific training data integration
    • Response formatting optimized for agricultural advice
  • Optimization:
    • Lazy loading via model_manager (loads on first use)
    • CPU-optimized inference (float32, device_map="cpu")
    • Reduced token limits to prevent over-generation

4.2.2 Multimodal Model: Qwen-VL

  • Model: Qwen/Qwen2-VL-2B-Instruct (via Hugging Face Transformers)
  • Purpose: Climate-resilient, image- and location-aware advisory
  • Usage: Powers the /advise endpoint with text + optional photo + GPS

4.3 Retrieval-Augmented Generation (RAG)

  • LangChain: Framework for building LLM applications
  • LangChain Community: Community integrations and tools
  • SentenceTransformers:
    • Model: paraphrase-multilingual-MiniLM-L12-v2
    • Purpose: Text embeddings for semantic search
  • FAISS (Facebook AI Similarity Search):
    • Vector database for efficient similarity search
    • Two indices: Static (general knowledge) and Live (current updates)
  • APScheduler: Background job scheduler for periodic RAG updates

4.4 Language Processing

  • FastText:
    • Model: facebook/fasttext-language-identification
    • Purpose: Language detection (English, Igbo, Hausa, Yoruba)
  • NLLB (No Language Left Behind):
    • Model: drrobot9/nllb-ig-yo-ha-finetuned
    • Purpose: Translation between English and Nigerian languages (Hausa, Igbo, Yoruba)
    • Bidirectional translation support

4.5 External APIs & Data Sources

  • WeatherAPI:
    • Provides state-level weather data for Nigerian states
    • Real-time weather information integration
  • AgroNigeria / HarvestPlus:
    • Agricultural news feeds for RAG updates
    • News scraping and processing

4.6 Additional Libraries

  • transformers: Hugging Face library for loading and using transformer models
  • torch: PyTorch (CPU-optimized version)
  • numpy: Numerical computing
  • requests: HTTP library for API calls
  • beautifulsoup4: Web scraping for news aggregation
  • python-multipart: File upload support for FastAPI
  • python-dotenv: Environment variable management

5. Safety & Decision-Support Scope

  • Aglimate is a decision-support tool for agriculture, not a replacement for agronomists, veterinarians, or extension officers.
  • Advice is based on text, images, and weather/context data only – it does not perform lab tests or physical inspections.
  • Farmers should always confirm high-stakes decisions (e.g., major input purchases, large treatment changes) with trusted local experts.

6. Limitations & Issues Faced

6.1 Diagnostic Limitations

Input Quality Dependencies

  • Image Quality: Blurry, poorly lit, or low-resolution images reduce accuracy
  • Description Clarity: Vague or incomplete symptom descriptions limit diagnostic precision
  • Context Missing: Lack of field history, crop variety, or environmental conditions affects recommendations

Inherent Limitations

  • No Physical Examination: Cannot inspect internal plant structures or perform lab tests
  • No Real-Time Monitoring: Cannot track disease progression over time
  • Regional Variations: Some regional diseases may be under-represented in training data
  • Seasonal Factors: Disease presentation may vary by season, which may not always be captured

6.2 Language & Translation Challenges

Translation Accuracy

  • NLLB Limitations: Can misread slang, mixed-language (e.g., Pidgin + Hausa), or regional dialects
  • Technical Terminology: Agricultural terms may not have direct translations, leading to approximations
  • Context Loss: Subtle meaning can be lost across translation steps (user language → English → user language)

Language Detection

  • FastText Edge Cases: May misclassify mixed-language inputs or code-switching
  • Dialect Variations: Regional variations within languages may not be fully captured

6.3 Model Behavior Issues

Hallucination Risk

  • Qwen Limitations: Can generate confident but incorrect answers
  • Mitigations Applied:
    • Stricter system prompts with domain restrictions
    • Shorter output limits (400 tokens for general, 256 for weather)
    • Response cleaning to remove example continuations
    • Topic redirection for unrelated questions
  • Not Bulletproof: Hallucination can still occur, especially for edge cases

Response Drift

  • Off-Topic Continuations: Models may continue with example conversations or unrelated content
  • Mitigation: Response cleaning logic removes "Human: / Assistant:" patterns and unrelated content

6.4 Latency & Compute Constraints

First-Request Latency

  • Model Loading: First Qwen/NLLB call is slower due to model + weights loading on CPU
  • Cold Start: ~5-10 seconds for first request after deployment
  • Subsequent Requests: Faster due to cached models in memory

CPU-Only Environment

  • Inference Speed: CPU inference is slower than GPU (acceptable for Hugging Face Spaces CPU tier)
  • Memory Constraints: Limited RAM requires careful model management (lazy loading, model caching)

6.5 External Dependencies

WeatherAPI Issues

  • Outages: WeatherAPI downtime affects weather-related responses
  • Rate Limits: API quota limits may restrict frequent requests
  • Data Accuracy: Weather data quality depends on third-party provider

News Source Reliability

  • Scraping Fragility: News sources may change HTML structure, breaking scrapers
  • Update Frequency: RAG updates are scheduled; failures can cause stale information
  • Content Quality: News article quality and relevance vary

6.6 RAG & Data Freshness

Update Scheduling

  • Periodic Updates: RAG indices updated on schedule (not real-time)
  • Job Failures: If update job fails, index can lag behind real-world events
  • Index Rebuilding: Full index rebuilds can be time-consuming

Vectorstore Limitations

  • Embedding Quality: Semantic search quality depends on embedding model performance
  • Retrieval Accuracy: Retrieved documents may not always be most relevant
  • Context Window: Limited context window may truncate important information

6.7 Deployment & Infrastructure

Hugging Face Spaces Constraints

  • CPU-Only: No GPU acceleration available
  • Memory Limits: Limited RAM requires optimization (lazy loading, model size reduction)
  • Build Time: Docker builds can be slow, especially with large dependencies
  • Cold Starts: Spaces may spin down after inactivity, causing cold start delays

Docker Build Issues

  • Dependency Conflicts: Some Python packages may conflict (e.g., pyaudio requiring system libraries)
  • Build Timeouts: Long build times may cause deployment failures
  • Cache Management: Docker layer caching can be inconsistent

7. Recommended UX & Safety Reminders

7.1 Visual Disclaimers

Always display a clear banner near critical advisory results:

"⚠️ This is AI-generated agricultural guidance. Always confirm major decisions with a local agronomist, veterinary doctor, or agricultural extension officer before taking major actions."

7.2 Call-to-Action Buttons

Provide quick access to professional help:

  • "Contact an Extension Officer" button/link
  • "Find a Vet/Agronomist Near You" button/link
  • "Schedule a Consultation" option (if available)

7.3 Response Quality Indicators

  • Show confidence indicators when available (e.g., "High confidence" vs "Uncertain")
  • Display input quality warnings (e.g., "Image quality may affect accuracy")
  • Provide feedback mechanisms for users to report incorrect diagnoses

7.4 Language Support

  • Clearly indicate detected language in responses
  • Provide language switcher for users to change language preference
  • Show translation quality warnings if translation may be approximate

8. System Summary

8.1 Problem Addressed

Nigerian smallholder farmers face critical challenges:

  • Limited access to agricultural experts (agronomists, veterinarians)
  • Language barriers (most resources in English, farmers speak Hausa/Igbo/Yoruba)
  • Fragmented information sources (weather, soil, disease data scattered)
  • Time-sensitive decision making (disease outbreaks, weather changes, pest attacks)

8.2 Solution Provided

Aglimate combines multiple AI technologies to provide:

  • Fast, 24/7 AI-powered responses in multiple languages
  • Integrated intelligence:
    • Finetuned Qwen 1.8B expert model for agricultural Q&A
    • Multimodal Qwen-VL model for image- and location-aware climate-resilient advisory
    • RAG + Weather + News for live, contextual information
  • CPU-optimized, multilingual backend (FastAPI on Hugging Face Spaces)
  • Multiple input modalities: Text, image, and GPS-aware advisory

8.3 Safety & Professional Consultation

  • All guidance is advisory and should be confirmed with local professionals for high-stakes decisions.
  • The system is optimized to reduce risk but cannot eliminate uncertainty or replace human judgment.

8.4 Key Technologies

  • Expert Model: Qwen/Qwen1.5-1.8B (finetuned for Nigerian agriculture)
  • Multimodal Model: Qwen/Qwen2-VL-2B-Instruct (image- and location-aware advisory)
  • RAG: LangChain + FAISS + SentenceTransformers
  • Language Processing: FastText (detection) + NLLB (translation)
  • Backend: FastAPI + Uvicorn + Docker
  • Deployment: Hugging Face Spaces (CPU-optimized)

8.5 Developer & Credits

Developer: Ifeanyi Amogu Shalom
Intended Users: Farmers, agronomists, agricultural extension officers, and agricultural support workers in Nigeria and similar contexts


9. Future Improvements & Roadmap

9.1 Potential Enhancements

  • Model Fine-tuning: Further fine-tune Qwen on Nigerian agricultural datasets
  • Multi-modal RAG: Integrate images into RAG for visual similarity search
  • Offline Mode: Support for offline operation in areas with poor connectivity
  • Mobile App: Native mobile applications for better user experience
  • Expert Network Integration: Direct connection to network of agronomists/veterinarians
  • Historical Tracking: Track disease progression and treatment outcomes over time

9.2 Technical Improvements

  • Response Caching: Cache common queries to reduce latency
  • Model Quantization: Further optimize models for CPU inference
  • Better Error Handling: More robust error messages and fallback mechanisms
  • Monitoring & Analytics: Track system performance and user feedback

Last Updated: 2026 Version: 1.0
Status: Production (Hugging Face Spaces)