Welcome to OmniButler Documentation¶
OmniButler is a comprehensive financial management platform designed to help families manage their wealth and financial activities through advanced AI technology. The platform seamlessly integrates with banking systems, email, and calendar services to provide a holistic view of your financial life.
Key Features¶
- Smart Account Syncing: Connect all your financial accounts in seconds with our Plaid integration and AI-powered transaction categorization.
- Bank-Level Security: Enterprise-grade encryption and authentication using Firebase and AES-256 standards.
- Sophisticated AI Assistant: Natural language interaction with your financial data through a state-of-the-art LLM system with multi-context memory.
- Real-Time Transaction Analysis: Instant insights on spending patterns and financial health with streaming responses.
- Family Access Controls: Securely share financial visibility with family members while maintaining privacy.
- Multi-Channel Interaction: Access your financial assistant through WebSocket (web/mobile), WhatsApp, or voice interfaces.
System Architecture¶
OmniButler is built using a clean architecture approach with three primary layers:
Core Components¶
1. AI Conversation System¶
- LLM Integration: Supports OpenAI and TogetherAI models with streaming responses
- Memory Architecture:
- Message History: Stores conversation context using Redis
- Vector Store: Enables semantic search across financial data
- Context Manager: Maintains state between interactions
- Specialized Tools:
- Transaction retrieval and analysis
- Location-based services
- WhatsApp messaging
- Calendar management
2. Data Management¶
- Financial Data Storage: Secure transaction storage in Turso databases
- User Profile Management: Firebase and Firestore for authentication and user data
- Vector Embeddings: Redis-powered semantic search capabilities
3. Integration Layer¶
- Banking Connections: Plaid integration for financial institution access
- Communication Channels: WebSocket, Twilio (WhatsApp/voice)
- External Services: Google Calendar, Gmail, location services
Getting Started¶
Explore our documentation to learn more about OmniButler's capabilities:
Core Flows¶
- User Signup Process
- Bank Account Integration
- Email Integration
- Calendar Integration
- AI Chatbot Capabilities
Communication Methods¶
WhatsApp Integration¶
Technical Details¶
- Transaction Classification System
- Memory and Context Architecture
- Available Tools and Retrievers
- Startup Cleanup for Stale Sync Records
Production & Security¶
Developer Resources¶
- API Documentation
- Database Schema
- Deployment Guide
- Contributing Guidelines
- Development Best Practices
Code Audits¶
Technology Stack¶
OmniButler leverages modern technologies to deliver a seamless experience:
- Backend: Python, FastAPI, WebSockets
- AI/ML: LangChain, OpenAI, TogetherAI
- Data Storage: Redis, Firestore, Turso
- Integration: Plaid, Firebase, Twilio
- DevOps: Poetry, Docker, GitHub Actions
Documentation Structure¶
Architecture Decision Records (ADRs)¶
Located in /docs/adr/, these documents capture key architectural decisions. See ADR Audit Summary for current implementation status of all ADRs.
- ADR Status Guidelines - How we track ADR implementation
- All ADRs (001-027) - Complete list of architecture decisions
- ADR Drafts & Implementation Notes - Working drafts and detailed implementation tracking
Implementation Documentation¶
Flows¶
Located in /docs/flows/, these documents describe end-to-end processes:
- WhatsApp Integration
- End-to-end WhatsApp message flow
- Implements: ADR-004
-
Related: WhatsApp Message Handling
- Email processing flow
-
Related: Email Processing Use Case
-
Voice message processing flow
-
Real-time chat implementation
-
Banking data integration flow
-
User registration process
- Calendar synchronization flow
Use Cases¶
Located in /docs/use_cases/ and /docs/whatsapp/, these documents detail specific implementations:
- WhatsApp Message Handling
- WhatsApp message processing implementation
- Implements: ADR-004
-
Related: WhatsApp System Overview
- User-WhatsApp linking system
- Implements: ADR-004
-
Related: WhatsApp System Overview
- Email message processing implementation
- Related: Email Integration Flow
Development Guidelines¶
Located in /docs/:
- Development Practices
- General development guidelines
- Referenced by: All implementation docs
API Documentation¶
- API Overview
- API endpoints and usage
- Referenced by: All flow docs
- API Reference Documentation
- Auto-generated API reference from docstrings
- Provides detailed method signatures and parameters
Documentation Relationships¶
```mermaid graph TD A[ADRs] → B[Implementation Docs] B → C[Flow Docs] B → D[Use Case Docs] E[Dev Practices] → B F[API Docs] → C
subgraph ADRs
A1[ADR-001] --> A
A2[ADR-002] --> A
A3[ADR-003] --> A
A4[ADR-004] --> A
end
subgraph WhatsApp
W1[WhatsApp System Overview] --> C
W2[WhatsApp Message Handling] --> D
W3[WhatsApp User Mapping] --> D
A4 --> W1
A4 --> W2
A4 --> W3
end
```
How to Use This Documentation¶
- For Architecture Decisions
- Start with relevant ADR
-
Follow references to implementation details
-
For Implementation Details
- Start with flow document
- Reference use case document for specifics
-
Check ADRs for architectural context
-
For Development
- Follow development practices
- Reference API docs for endpoints
- Use flow docs for process understanding