A GPT-powered FastAPI chatbot with a privacy-first, white-box architecture.
Wh0Dini-AI is a fully transparent, privacy-first chatbot powered by OpenAI's GPT-4o-mini model and built using FastAPI. It’s designed to deliver intelligent conversations without tracking, logging, or compromising user data. The project is a direct expression of Mistyk Media’s core philosophy: user-centric development that safeguards personal information rather than exploiting it.
Both this project and Mistyk Media’s broader approach champion what we call a "white-box" (or “clear-glass”) development strategy — an open, honest methodology where every line of code and configuration is public, with nothing hidden behind proprietary walls.
- 🔒 Privacy-First — No user data logging or behavioral tracking.
- ⚡ FastAPI-Powered — Lightning-fast backend with async support.
- 🧠 GPT-4o-mini — Uses OpenAI's blazing-fast lightweight model.
- 🔐 Rate Limited — Built-in abuse protection.
- 🖥️ Modern UI — Sleek, responsive front-end via static assets.
- 🐳 Containerized — Docker-ready with dev container config.
- 🧪 Tested — Comes with full test suite and coverage support.
- Python 3.11+
- OpenAI API key
- Git
git clone https://github.com/M1ztick/Wh0Dini-AI.git
cd Wh0Dini-AI# Install the package
pip install .
# OR for development with editable install
pip install -e .
# Run using the installed command
wh0dini-aiChoose one setup method:
# Setup script
chmod +x setup.sh && ./setup.sh
# OR with Makefile
make setup
# OR manually
pip install -r requirements.txt
cp .env.example .envEdit .env and insert your API key:
OPENAI_API_KEY=your_actual_api_key_here# Option 1: Python
python main.py
# Option 2: Uvicorn
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# Option 3: Makefile
make runOpen your browser: http://localhost:8000
Wh0Dini-AI/
├── main.py # App entry point
├── Wh0Dini_AI_main.py # Core FastAPI app logic
├── static/ # HTML, CSS, JS assets
│ ├── index.html
│ ├── script.js
│ └── style.css
├── tests/ # Test suite
├── requirements.txt # Runtime deps
├── requirements-dev.txt # Dev/test deps
├── .env.example # Env var template
├── pyproject.toml # Project config
├── Makefile # Dev commands
└── setup.sh # Setup script
| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
Your OpenAI key | Required |
MODEL_NAME |
GPT model name | gpt-4o-mini |
MAX_TOKENS |
Max tokens per reply | 500 |
RATE_LIMIT |
Requests per minute | 10/minute |
API_HOST |
App host | 0.0.0.0 |
API_PORT |
App port | 8000 |
LOG_LEVEL |
Logging verbosity | INFO |
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Web UI frontend |
/chat |
POST | Standard chat response |
/chat/stream |
POST | Streaming chat response |
/health |
GET | Health check |
docker build -t wh0dini-ai .
docker run -p 8000:8000 --env-file .env wh0dini-ai- Open in VS Code
- Install the “Dev Containers” extension
- Press
Ctrl+Shift+P→Reopen in Container - Magic.
Run commands via make:
make help # List all tasks
make dev # Dev dependencies
make run # Start app
make test # Run tests with coverage
make lint # Lint with flake8
make format # Format with black & isort
make type-check # Check types with mypy
make check # Run all checksRun tests manually:
pytest -v
pytest tests/test_api.pyblack— Formatterisort— Import sortingflake8— Lintermypy— Type checkerpre-commit— Git hook runner
Set it up:
pip install pre-commit
pre-commit installWe welcome contributions!
- Fork the repo
git checkout -b feature/amazing-idea- Make your changes
make checkto validate- Push and open a PR
Licensed under the MIT License.
Have a question, bug, or feature request?
Open an issue on the GitHub repo.
(Insert an image or GIF of the app UI here to make devs go "Ooooh")