Wolof educational question-answering app that can answer basic math, science, and history questions in Wollof
# WolofChat - Wolof Educational Q&A App
A comprehensive educational chatbot for Wolof language and culture, designed for deployment on multiple platforms.
## Features
- **AI-Powered Responses** - OpenAI GPT, Ollama Mistral, and Hugging Face integration
- **Speech Recognition** - Voice input in Wolof and English
- **Text-to-Speech** - Listen to answers in Wolof
- **Multi-Language Support** - Wolof and English input/output
- **Web Search Integration** - Real-time information from the web
- **Educational Content** - History, Math, Science, Geography, Technology, Literature
- **Multi-Platform Deployment** - Streamlit, Flask, FastAPI, Docker support
## Quick Start
### Local Development
```bash
# Clone the repository
git clone
cd WollofEdu
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export OPENAI_API_KEY="your_openai_api_key"
# Run the app
streamlit run streamlit_app.py
```
### Docker Deployment
```bash
# Build and run with Docker
docker build -t wolofchat .
docker run -p 8501:8501 -e OPENAI_API_KEY=your_key wolofchat
# Or use docker-compose (includes Ollama)
docker-compose up
```
## Deployment Options
### Streamlit Cloud (Recommended for Beginners)
- Push to GitHub → Deploy on share.streamlit.io
- Free tier available
- Automatic HTTPS
### Heroku
- Use `Procfile` and `runtime.txt`
- Free tier available
- Easy deployment
### Railway
- Modern platform with good free tier
- Automatic deployments
- Uses `app.json` configuration
### Vercel
- Fast deployment with global CDN
- Uses `vercel.json` configuration
- Good for API deployment
### Docker
- Consistent environment
- Works everywhere
- Includes Ollama service
## Configuration
### Environment Variables
```bash
# LLM Services
OPENAI_API_KEY=your_openai_api_key
OLLAMA_URL=
localhost
HUGGINGFACE_TOKEN=your_huggingface_token
# Features
SPEECH_RECOGNITION_ENABLED=true
TTS_ENABLED=true
WEB_SEARCH_ENABLED=true
DEBUG_MODE=false
# App Configuration
MAX_TOKENS=1000 …