How imkumar80/enry-bol works
Enry Voice OS turns shopkeepers’ multilingual speech into retail actions: browser audio reaches the voice gateway, turn management detects speech boundaries and handles interruptions, ASR produces a transcript, the agent selects or confirms an action, and the response is streamed back as speech. Retail actions cover billing, inventory, customer credit and payments, and daily summaries. The dashboard also exposes REST-backed customer, inventory, transaction, and checkout views. The README documents these capabilities; some links for unsampled modules rely on that documentation and the project structure.
Main entry points: db.py SQLite Store · turn_manager.py Turn Manager · app.js Browser Client · gateway.py Voice Gateway
Components 20
Shopkeeper Client
- Dashboard UI
static/index.html - Browser Client
static/app.js
Voice Pipeline
- FastAPI API
app.py - Voice Gateway
voice/gateway.py - Turn Manager
voice/turn_manager.py - Speech Detection
voice/vad.py - Streaming ASR
voice/asr.py - TTS Provider
tts/cartesia.py
Agent Actions
- ReAct Agent
agent/graph.py - LLM Adapter
agent/llm.py - Retail Action Tools
agent/tools.py
Retail Data
- SQLite Store
db.py - Inventory
db.py - Bills & Checkout
db.py - Customer Ledger
db.py - Daily Summaries
db.py
Other components
- Shopkeeper
- Deepgram ASR
- Gemini
- Cartesia TTS
Connections 22
- Shopkeeper → Browser Client: uses
- Browser Client → Dashboard UI: renders
- Browser Client → Voice Gateway: streams audio
- Voice Gateway → Turn Manager: routes events
- Turn Manager → Speech Detection: checks audio
- Turn Manager → Streaming ASR: sends speech
- Streaming ASR → Deepgram ASR: transcribes
- Turn Manager → ReAct Agent: processes transcript
- ReAct Agent → LLM Adapter: requests decisions
- LLM Adapter → Gemini: queries
- ReAct Agent → Retail Action Tools: dispatches actions
- Retail Action Tools → SQLite Store: reads and writes
- Turn Manager → TTS Provider: speaks response
- TTS Provider → Cartesia TTS: generates audio
- TTS Provider → Voice Gateway: streams audio
- Voice Gateway → Browser Client: sends events
- Browser Client → FastAPI API: requests REST data
- FastAPI API → SQLite Store: reads and writes
- SQLite Store → Inventory: stores
- SQLite Store → Bills & Checkout: stores
- SQLite Store → Customer Ledger: stores
- SQLite Store → Daily Summaries: provides totals