๐ค AI Private Banking Agent with a Personal Financial Knowledge Graph
SentiVest is an autonomous AI banking agent built for the South African market. It goes beyond traditional banking dashboards by combining a personal financial knowledge graph with real-time transaction classification, voice-first interaction, and proactive financial intelligence.
๐ก Banks give you data. SentiVest gives you understanding.
๐งฌ The knowledge graph and life simulator. Ninety one nodes and ninety four edges linking accounts, merchants, loans, budgets, insurance and anomalies around a central You. The simulator on the left compresses months into seconds, firing salary, debit orders, fraud attempts and life events straight into the graph over a WebSocket.
๐ The audit log. Every decision the agent takes is written out as it happens, so nothing the classifier or the graph does is hidden behind a spinner.
| Traditional Banking | SentiVest |
|---|---|
| ๐ Shows balance | ๐ฎ Predicts when you'll run out |
| ๐ Lists transactions | ๐ก๏ธ Classifies and scores every one |
| ๐ฅ๏ธ Static dashboard | ๐งฌ Living knowledge graph |
| ๐ซ No memory | ๐ง Remembers your goals and habits |
| ๐ค You drive | ๐ค The agent drives |
| โณ Reactive | โก Proactive |
๐๏ธ Voice / Chat Interface 35+ handlers, multi-turn flows, persistent memory
|
๐ง AI Model Layer Qwen 2.5-3B (Ollama) + rule-based fallback
|
๐ธ๏ธ Knowledge Graph Accounts, merchants, loans, investments, insurance, tax
|
๐ก๏ธ Transaction Classifier 100+ merchants, 6 fraud indicators, SAFE/FLAG/ALERT/BLOCK
|
โ๏ธ Infrastructure FastAPI (async) + WebSocket + Investec API (OAuth2)
- ๐ก๏ธ Transaction Classification - Real-time fraud detection with weighted scoring across 100+ known merchants and 6 fraud indicators
- ๐ธ๏ธ Knowledge Graph - Personal financial graph connecting accounts, merchants, categories, loans, investments, insurance, tax, budgets, goals, and patterns
- ๐๏ธ Voice Intelligence - 35+ voice command handlers with persistent memory, multi-turn payment flows, and natural banker-like conversation
- ๐ก Proactive Insights - Budget warnings, spending habit detection, savings rate analysis, and low balance alerts without being asked
- ๐ Financial Health Score - 0-100 score (A-F grade) analyzing DTI, savings buffer, budget adherence, insurance coverage, investment diversity, and spending habits
- ๐ฆ Loan Eligibility - DTI-based assessment with verdict (Approved/Conditional/Declined), factor analysis, and max affordable calculation
- ๐ Smart Transfer - Inter-account transfers with full audit trail in the knowledge graph
- ๐ณ Beneficiary Payments - Fuzzy beneficiary matching, disambiguation, multi-step confirmation flow
- โฉ Compressed real-life financial simulation (months in seconds, 0.25x-5x speed)
- ๐ Monthly cycle: Salary โ Debit orders โ Daily spending โ Life events โ Insights
- ๐ฒ Life events: Fraud attempts, bonuses, medical emergencies, tax refunds, salary increases, international trips, car accidents
- ๐ก Real-time WebSocket event streaming with graph visualization
- ๐ฑ Phone Mockup - iPhone-style card carousel, 12 pages (Home, Ledger, Chat, Budgets, Alerts, Documents, Scanner, Tasks, Report, Test, Profile)
- ๐๏ธ Command Center - Health score ring gauge, loan eligibility panel, AI insights feed, smart transfer, spending breakdown
- ๐ธ๏ธ Knowledge Graph Visualization - D3.js interactive graph with demo step controls and simulator
- ๐ Audit Log - Real-time event feed with color-coded severity
| Layer | Technology |
|---|---|
| โ๏ธ Backend | FastAPI (Python, async) |
| ๐ง AI Model | Qwen 2.5-3B via Ollama |
| ๐ธ๏ธ Knowledge Graph | Custom in-memory graph engine |
| ๐ก Real-time | WebSocket |
| ๐ฆ Banking API | Investec Open API (OAuth2) |
| ๐๏ธ Voice | Web Speech API + Google STT |
| ๐ Visualization | D3.js |
| ๐ฅ๏ธ Frontend | Single-page HTML/JS/CSS |
- ๐ Python 3.10+
- ๐ฆ Ollama (optional - falls back to rule-based responses)
# Clone
git clone https://github.com/Nevvyboi/SentiVest.git
cd SentiVest
# Virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# (Optional) Pull AI model
ollama pull qwen2.5:3b
# Run
python main.py 8000๐ Open http://localhost:8000 in your browser.
Create a .env file:
INVESTEC_CLIENT_ID=your_client_id
INVESTEC_CLIENT_SECRET=your_secret
INVESTEC_API_KEY=your_api_key
Without these, the app uses realistic demo data.
SentiVest/
main.py # โ๏ธ FastAPI server, 28+ API routes, WebSocket
knowledge_graph.py # ๐ธ๏ธ Personal financial knowledge graph engine
voice.py # ๐๏ธ 35+ voice command handlers, payment flows, memory
model.py # ๐ง AI model integration (Ollama Qwen 2.5-3B + fallback)
agent.py # ๐ก๏ธ Transaction classifier (100+ merchants, fraud scoring)
simulator.py # ๐ฎ Life simulator, health score, loan eligibility
kg_routes.py # ๐ Knowledge graph API routes
investec_api.py # ๐ฆ Investec Open API wrapper (OAuth2)
test_all.py # ๐งช 71+ tests
static/
combined.html # ๐ฑ Single-page app (phone + dashboard)
presentation.html # ๐ค Project presentation slides
๐ See individual READMEs for detailed documentation:
static/README.md- ๐ฑ Frontend UI documentation
| Endpoint | Description |
|---|---|
POST /api/classify |
๐ก๏ธ Classify transaction (SAFE/FLAG/ALERT/BLOCK) |
POST /api/voice |
๐๏ธ Process voice command |
POST /api/chat |
๐ฌ AI chat with KG context |
GET /api/health |
๐ Financial health score (0-100) |
POST /api/loan/eligibility |
๐ฆ Loan eligibility assessment |
POST /api/transfer |
๐ Smart inter-account transfer |
GET /api/insights |
๐ก Proactive AI insights |
GET /api/transactions |
๐ Filtered transaction history |
GET /api/budgets |
๐ Budget status |
GET /api/alerts |
๐จ Active alerts |
POST /api/simulator/start |
๐ฎ Start life simulator |
WS /ws |
๐ก Real-time event stream |
Full API: 28+ main routes + 15+ knowledge graph routes.
| Metric | Count |
|---|---|
| ๐ API Endpoints | 28+ main + 15+ KG |
| ๐๏ธ Voice Commands | 35+ |
| ๐ช Known Merchants | 100+ |
| ๐ง AI Intent Types | 25+ |
| ๐ฑ UI Pages | 12 |
| ๐ฉ Fraud Indicators | 6 |
| ๐งช Tests | 71+ |
| โจ Total Features | 200+ |
python -m pytest test_all.py -vOpen presentation.html in a browser for the full project presentation (20 slides, keyboard/touch navigation, presenter notes).
๐ฎ Controls: Space/Arrow = navigate, F = fullscreen, N = speaker notes.
MIT


