# 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)