AI-powered restaurant operations management platform for Chili's #605 Auburn Hills
Complete email automation + AI agent orchestration + Visual debugging + Intelligent chat assistant
ChiliHead OpsManager v2.1 automates restaurant operations for John at Chili's #605 in Auburn Hills. The system:
- Monitors Gmail for restaurant-related emails (filtered by domain/sender)
- Processes emails through 5 specialized AI agents orchestrated by Apache Dolphin Scheduler
- Extracts tasks and deadlines automatically from leadership communications
- Provides AUBS - Your friendly AI assistant with complete operational awareness
- Visualizes everything through Open-WebUI with embedded debugging tools
AUBS (Auburn Hills Business System) is your friendly, intelligent operations assistant who:
- Has complete awareness of all emails, tasks, and deadlines
- Understands Chili's operations, RAP Mobile metrics, and HotSchedules
- Prioritizes like you would (leadership deadlines first, then team issues, then guests)
- Talks conversationally - not like a robot
- Available 24/7 via chat in Open-WebUI
- 5 AI Agents working together:
- Triage Agent: Categorizes and routes emails
- Vision Agent: OCR for invoices, receipts, PDFs
- Deadline Scanner: Extracts dates and deadlines
- Task Categorizer: Identifies action items
- Context Agent: Synthesizes everything with 30-day memory
- Email Filtering: Only processes emails from
chilis.com,brinker.com,hotschedules.com - Attachment Handling: OCR, PDF parsing, image analysis
8 tabs for complete operational visibility:
- Dashboard - Overview of operations
- Emails - Inbox, processed emails, agent outputs, quick actions
- Tasks - Task management with priorities and due dates
- Calendar - Events, deadlines, scheduling
- Debug - UI-TARS execution timeline, agent decisions, screenshots, DAG visualization
- Analytics - Performance metrics, agent stats, email volume, response times
- Agents - Agent status, model selection, performance, logs
- Settings - Model config, thresholds, notifications, integrations
- Apache DolphinScheduler 3.2.0 - DAG-based workflow orchestration
- Fault-tolerant - Automatic retries and error handling
- Visual debugging - UI-TARS embedded in Open-WebUI
- GPU acceleration - NVIDIA GPU support for Vision Agent
Easy model swapping between:
- OpenAI: GPT-4o, GPT-5
- Anthropic: Claude Sonnet 4 (AUBS uses this)
- Ollama: Llama 3.2, local models
Configure per-agent in .env file.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Open-WebUI (Port 3040) β
β Dashboard | Emails | Tasks | Calendar | Debug | Analytics β
β Chat with AUBS β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AUBS (Autonomous Unified Business System) β
β Orchestrator | DAG Builder | Action Router β
β Chat Service (Claude Sonnet 4) β
ββββββββββ¬βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ
β Email Ingestion β β Apache Dolphin Scheduler 3.2.0 β
β - IMAP Monitor β β - DAG Execution β
β - Domain Filter β β - GPU/CPU Workers β
β - Attachment DL β β - Task Scheduling β
ββββββββββββββββββββ ββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Triage Agent β β Vision Agent β β Deadline Agent β
β (Llama 3.2) β β (GPT-4o + GPU) β β (Llama 3.2) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
βββββββββββββββββββββββββββββββΌβββββββββββββββββββββ
βΌ
βββββββββββββββββββββββ
β Task Agent β
β (Llama 3.2) β
ββββββββββββ¬βββββββββββ
βΌ
βββββββββββββββββββββββ
β Context Agent β
β (Claude Sonnet 4) β
β NO FALLBACK β
ββββββββββββ¬βββββββββββ
βΌ
ββββββββββββββββββββββββββββββββββββββββββββ
β MCP Tools (Actions) β
β - Task Manager - SMS Sender β
β - Calendar Sync - Email Responder β
ββββββββββββββββββββββββββββββββββββββββββββ
Infrastructure:
βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ
β PostgreSQL β Redis β NATS β Qdrant β Ollama β
β (Data) β (Cache) β (Events) β (Vectors) β (LLMs) β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ
- Docker Desktop with WSL2 enabled
- NVIDIA GPU with CUDA support (for Vision Agent)
- 16GB+ RAM recommended
- Gmail account with App Password configured
- OpenAI API key (optional, for GPT models)
- Anthropic API key (for Claude / AUBS chat)
-
Clone Repository
git clone https://github.com/johnohhh1/ohhhmail.git cd ohhhmail -
Configure Environment
Edit
infrastructure/docker/.envwith your credentials:- OpenAI API key (if using GPT models)
- Anthropic API key (required for AUBS chat)
- Gmail credentials
- Email filtering (allowed domains/senders)
CRITICAL Email Filtering:
ALLOWED_DOMAINS=chilis.com,brinker.com,hotschedules.com ALLOWED_SENDERS= BLOCKED_DOMAINS=spam.com BLOCKED_SENDERS=
-
Start All Services
start.bat
This will:
- Check Docker is running
- Start all 13 services via Docker Compose
- Wait for services to initialize
- Open Open-WebUI in your browser
-
Access Services
- Open-WebUI: http://localhost:3040
- Dolphin Scheduler: http://localhost:12345 (admin/admin)
- AUBS API: http://localhost:5000
- Grafana (optional): http://localhost:3001
- Open http://localhost:3040
- Click the chat button (floating button in bottom-right)
- Start chatting!
You: "What's urgent today?"
AUBS: "Hey John! Here's what needs your attention:
- Leadership deadline - Your DM needs the manager schedule by Friday 5pm
- Team issue - Sarah called out for tonight's shift
- Guest complaint - Slow service feedback from last night
Want me to help you prioritize?"
You: "Help me plan my next 2 hours"
AUBS: "Sure! Based on what we have:
First 30 minutes:
- Review and send manager schedule to DM (critical deadline)
- Call Sarah to confirm her shift status
Next 60 minutes:
- Address guest complaint - review section 3 service times
- Prep for tonight with one server short
The DM deadline is most urgent. Want me to pull up the schedule?"
You: "What's our comp sales this week?"
AUBS: "I don't have access to RAP Mobile data yet (coming in next update), but I can see we processed 47 emails this week with 3 from corporate leadership. Want me to check if any mentioned sales numbers?"
- postgres - PostgreSQL 15 (persistent storage)
- redis - Redis 7 (caching, state)
- nats - NATS JetStream (event streaming)
- qdrant - Vector database (context memory)
- ollama - Local LLM hosting
- dolphin-server - Dolphin scheduler server
- dolphin-worker-gpu - GPU worker for Vision Agent
- dolphin-worker-cpu - CPU workers for other agents
- aubs - AUBS orchestrator and chat service
- email-ingestion - Gmail monitoring and filtering
- open-webui - Web interface (port 3040)
- uitars - Visual debugging service
- grafana (optional) - Monitoring dashboards
| Agent | Model | Purpose | Timeout |
|---|---|---|---|
| Triage | llama3.2:8b-instruct | Email categorization | 15s |
| Vision | gpt-4o (GPU) | OCR, image processing | 30s |
| Deadline | llama3.2:8b-instruct | Date extraction | 15s |
| Task | llama3.2:8b-instruct | Action identification | 15s |
| Context | claude-sonnet-4 | Context synthesis (NO FALLBACK) | 30s |
All agents configurable per environment in .env.
- start.bat - Start all services
- stop.bat - Stop all services
- status.bat - Check service health
- logs.bat - View service logs (interactive menu)
- setup.bat - Initial setup and dependency installation
# View all services
docker-compose ps
# View logs for specific service
docker-compose logs -f aubs
docker-compose logs -f email-ingestion
# Restart a service
docker-compose restart aubs
# Stop everything
docker-compose down
# Rebuild and restart
docker-compose up -d --buildEdit infrastructure/docker/.env to change models:
# Triage Agent - Fast categorization
TRIAGE_AGENT_PROVIDER=ollama
TRIAGE_AGENT_MODEL=llama3.2:8b-instruct
TRIAGE_AGENT_FALLBACK=openai:gpt-4o-mini
# Vision Agent - OCR (needs GPU)
VISION_AGENT_PROVIDER=openai
VISION_AGENT_MODEL=gpt-4o
VISION_AGENT_GPU=true
# Context Agent - CRITICAL, NO FALLBACK
CONTEXT_AGENT_PROVIDER=anthropic
CONTEXT_AGENT_MODEL=claude-sonnet-4
CONTEXT_AGENT_FALLBACK=DISABLED# Only process emails from these domains
ALLOWED_DOMAINS=chilis.com,brinker.com,hotschedules.com
# Optionally restrict to specific senders
ALLOWED_SENDERS=dm@chilis.com,regional@brinker.com
# Block specific domains or senders
BLOCKED_DOMAINS=spam.com,marketing.com
BLOCKED_SENDERS=noreply@spam.comAfter changing filters, restart email-ingestion:
docker-compose restart email-ingestionohhhmail/
βββ aubs/ # AUBS orchestrator
β βββ src/
β βββ main.py # FastAPI app
β βββ orchestrator.py # DAG builder
β βββ dag_builder.py # DAG construction
β βββ action_router.py # MCP tool routing
β βββ chat.py # AUBS chat service β
β
βββ agents/ # 5 AI agents
β βββ triage/
β βββ vision/
β βββ deadline/
β βββ task/
β βββ context/
β
βββ email_ingestion/ # Gmail monitoring
β βββ monitor.py # IMAP monitoring
β βββ processor.py # Email processing β (filtering)
β βββ config.py # Configuration
β
βββ openwebui/ # Open-WebUI components
β βββ components/
β β βββ Dashboard.tsx
β β βββ EmailDashboard.tsx
β β βββ TaskManager.tsx
β β βββ CalendarView.tsx
β β βββ UITARSDebugPanel.tsx # Embedded debugging
β β βββ Analytics.tsx
β β βββ AgentMonitor.tsx
β β βββ Settings.tsx
β β βββ ChatWithAUBS.tsx # AUBS chat UI β
β βββ config/
β βββ tabs-config.json # 8 tabs configuration
β
βββ mcp_tools/ # MCP action tools
β βββ task_manager.py
β βββ calendar_integration.py
β βββ sms_sender.py
β
βββ shared/ # Shared libraries
β βββ models.py # Pydantic models
β βββ llm_config.py # Multi-provider LLM
β βββ clients/ # Service clients
β
βββ infrastructure/
β βββ docker/
β β βββ docker-compose.yml # 13 services
β β βββ .env # Configuration β
β βββ dolphin/ # Dolphin configs
β
βββ docs/ # Documentation
β βββ AUBS_GUIDE.md # AUBS user guide β
β βββ BUILD_STATUS.md # Implementation status
β βββ IMPLEMENTATION_PLAN.md # 10-week plan
β βββ QUICK_START.md # Getting started
β
βββ start.bat # Windows start script
βββ stop.bat # Windows stop script
βββ status.bat # Health check script
βββ logs.bat # Log viewer script
β = Recently updated with AUBS persona and email filtering
- AUBS Guide - Complete guide to using AUBS
- Quick Start - Getting started guide
- Build Status - Implementation status
- Implementation Plan - 10-week roadmap
- Build Orchestrator - AI swarm build strategy
# Check all services
status.bat
# Individual health endpoints
curl http://localhost:5000/health # AUBS
curl http://localhost:8001/health # Email Ingestion
curl http://localhost:12345/dolphinscheduler/health # Dolphin# Interactive log viewer
logs.bat
# Or direct Docker commands
docker-compose logs -f aubs
docker-compose logs -f email-ingestion
docker-compose logs -f dolphin-server- Open http://localhost:3040
- Click "Debug" tab
- View:
- Execution timeline with timestamps
- Agent decisions and reasoning
- Screenshots from Vision Agent
- DAG visualization
- Replay capability
- Complete project structure (40+ directories)
- Docker infrastructure (13 services)
- Shared client libraries (Dolphin, NATS, Qdrant, Ollama, LLM)
- AUBS service (orchestrator, DAG builder, action router)
- All 5 AI agents (Triage, Vision, Deadline, Task, Context)
- MCP tools (Task, Calendar, SMS, Email)
- Email ingestion with CRITICAL filtering
- Open-WebUI components (8 tabs)
- AUBS chat with full persona and operational awareness β
- Windows batch files for management
- Complete documentation
- PostgreSQL persistence for chat sessions
- RAP Mobile metrics integration
- HotSchedules integration
- Google Calendar sync
- ChiliHead 5-Pillar Delegations (can wait)
- Proactive AUBS alerts
- Voice interface for AUBS
- Performance trend analysis
- Mobile app
- Multi-restaurant support
- All data stays on your infrastructure
- No external data sharing
- Gmail credentials stored securely in environment variables
- Email filtering prevents spam and noise
- OpenAI API key: Optional (only if using GPT models)
- Anthropic API key: Required (for AUBS chat and Context Agent)
- All API calls encrypted and ephemeral
- Currently single-user (John)
- Can be extended with authentication
-
Check AUBS service:
docker-compose ps aubs docker-compose logs -f aubs
-
Verify Anthropic API key in
.env:ANTHROPIC_API_KEY=sk-ant-api03-...
-
Restart AUBS:
docker-compose restart aubs
- Check email filtering configuration in
.env - Verify Gmail credentials
- Check email-ingestion logs:
docker-compose logs -f email-ingestion
- Verify Docker Desktop is running
- Check port 3040 is available (not 3000)
- Review
.envfor missing values - Check logs:
docker-compose logs
- Verify NVIDIA drivers installed
- Check Docker Desktop GPU support enabled
- Test:
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
Built specifically for:
- John Olenski - Managing Partner
- Chili's #605 - Auburn Hills, Michigan
- Brinker International - Franchise operations
Contact:
- Email: john.olenski@gmail.com
- GitHub: @johnohhh1
Private & Confidential - All Rights Reserved
Built with β€οΈ by a GM who believes great people deserve great tools.
πΆοΈ "Excellence Through Leadership & Accountability"