Logo Lanfrica

Steven3-art/AgroVoice-CallE-Hackathon

Domain:

agriculturenatural language processing

Record type:

project
Creator:
Ste
Host:
"AI-powered voice calls to collect real-time data from cocoa farmers in Cameroon β€” built with CALL-E" # 🌱 AgroVoice **AI-powered voice calls to collect real-time harvest data from cocoa farmers in Cameroon β€” no smartphone, no app, just a phone call.** Built for the **CALL-E: Your Code Is Calling** hackathon. --- ## The problem Most cocoa farmers in Cameroon don't own smartphones and have no realistic way to fill out a digital form. But nearly all of them own a basic phone. AgroVoice calls them directly, in French with an authentic Bulu-language greeting, asks three simple questions, and turns their spoken answers into clean, structured, analysis-ready data β€” automatically. ## How it works ``` Farmer phone number β”‚ β–Ό CALL-E places an AI voice call (French + Bulu greeting/closing) β”‚ β–Ό CALL-E extracts a NATIVE structured result, validated against a strict JSON schema (village, harvest_bags, logistics_issues, call_outcome) β€” no separate LLM guesswork needed β”‚ β–Ό SQLite (persistent storage) ──► Excel report + aggregated stats ``` ### Key design decision: honest data, always Earlier prototypes of this pipeline hardcoded fallback values (a fake village name, a fake bag count) whenever extraction was ambiguous. This version **never fabricates data** β€” if CALL-E cannot produce a schema-valid result, the record is explicitly flagged `NOT_EXTRACTED` rather than silently guessed. ## Tech stack - **Python 3** β€” pipeline orchestration - **CALL-E** REST API β€” AI voice calling with native structured extraction (`result_schema`) - **SQLite** β€” persistent local storage - **pandas** β€” data aggregation & Excel export ## Getting started ### 1. Prerequisites - Python 3.9+ - A CALL-E account with API access (sign up) - Your CALL-E API key from dashboard.heycall-e.com ### 2. Install dependencies ```bash pip install requests pandas openpyxl ``` ### 3. Set your API key **Never hardcode your API key.** Set it as an environment variable instead: ```bash # Windows (CMD) set CALLE_API_KEY=your_real_key_here # Windows (PowerShell) $env:CALLE_API_KEY="your_real_ …