Persona-Aware AI Analytics & RAG Copilot — 9-persona, role-scoped copilot with GraphRAG-lite retrieval, ML forecasting, bilingual (EN/FR) UI, and board-ready exports.
Live demo: https://intelai.ysiddo-ai-projects.app · password-less role login (DEMO_MODE). First request may take ~60 s to wake the on-demand backend.
Self-hosting: see SELF_HOSTING.md.
Data Model & Benchmarks: see DATA_SEEDING.md.
| Area | Detail |
|---|---|
| 9-persona RAG copilot | CEO, CFO, CTO, COO, CHRO, ESG, Risk, Analyst, Assistant — role-scoped data, WS streaming, citations |
| GraphRAG-lite | Multi-hop entity graph for cross-domain queries (USE_GRAPH_RAG=true) |
| Hybrid retrieval | Dense + BM25 + RRF + BGE reranker; degrades gracefully |
| Answer-block structuring | Backend parses LLM markdown into typed blocks (heading, kpi, list, quote, code) |
| 169 curated KPIs | Finance, HR, IT, Ops, Logistics, ESG, Growth — 36-month history, 7 benchmarking scenarios |
| ML forecasting | Monte Carlo with confidence bands |
| Data export/ingest | PDF / Excel / CSV / JSON export; CSV & document ingestion |
| Auth + RBAC | JWT, role-based pages, per-persona data scoping, audit log |
| Admin governance | User management (create/edit/disable), role viewer, scenario switcher, vector store reindex |
| Multi-provider LLM | Groq (default) / Anthropic via LiteLLM |
| Bilingual | Full EN / FR UI and copilot responses |
React + Vite (Recharts · TanStack Query · i18n) → Vercel / Netlify
│ HTTP / WebSocket /api/v1/*
FastAPI (src/api/server.py)
auth · chat (9 personas) · KPIs · insights · forecasting · admin
│
PostgreSQL (Neon) LLM (Groq / Anthropic via LiteLLM)
KPIs · auth · sessions · GraphRAG-lite · hybrid retrieval
vectors (pgvector opt-in) BGE reranker · BM25
Prerequisites: Python 3.11, Node 18+, Postgres URL, GROQ_API_KEY.
git clone https://gateway.ysiddo-ai-projects.app/git/IntelAI.git
cd IntelAI
cp .env.example .env # fill POSTGRES_URL, GROQ_API_KEY, SECRET_KEY
# Backend (port 8000 — tables & seed created automatically)
pip install -r requirements.txt
python main.py
# Frontend (port 5173, proxies /api → :8000)
cd frontend && npm install && npm run devDefault login: admin / admin123 — change after first login.
Docker:
docker compose -f docker-compose.dev.yml up --build # app only (uses .env DB)
docker compose up --build # app + bundled Postgres| Variable | Required | Description |
|---|---|---|
POSTGRES_URL |
✅ | Neon / Railway / local Postgres |
GROQ_API_KEY |
✅ | Default LLM provider |
SECRET_KEY |
✅ | JWT signing key |
ANTHROPIC_API_KEY |
⬜ | Claude reasoning tier |
USE_GRAPH_RAG |
⬜ | true = GraphRAG-lite multi-hop |
USE_HYBRID_RETRIEVAL |
⬜ | true = dense+BM25+RRF+reranker |
VECTOR_STORE |
⬜ | memory · chroma · pgvector · qdrant |
LLM_MODEL |
⬜ | Groq model id (default llama-3.1-8b-instant) |
/health · /api/docs
POST /api/v1/auth/login GET /api/v1/auth/me
POST /api/v1/chat WS /api/v1/ws/chat GET /api/v1/personas
GET /api/v1/kpis[/periods|/metrics|/categories]
GET /api/v1/insights/{health,risk,summary,anomalies}
POST /api/v1/forecast GET /api/v1/glossary
POST /api/v1/data/export POST /api/v1/ingest/{metrics,csv,document}
GET /api/v1/admin/{users,roles,audit,scenario}
Full interactive reference at /api/docs.
pytest tests/ -q # all in-process (no live server needed)
pytest tests/test_smoke.py -q # 5 smoke checks (zero deps)
pytest tests/test_api.py -q # 42 auth/RBAC/endpoint checks
pytest tests/test_exhaustive_api.py -q # 71 exhaustive API coverage tests
pytest tests/test_chat.py -q # 9 chat endpoint + answer-block assertionsDB-dependent tests run automatically when POSTGRES_URL is reachable and skip cleanly otherwise — CI is green without a database.
Seven seeded scenarios (selectable from the Admin → Scenarios tab or via POST /api/v1/admin/scenario):
| Scenario | Description |
|---|---|
healthy |
S&P 500 baseline |
declining_financial |
Revenue contraction & margin compression |
high_churn_crisis |
Customer retention failure |
operational_meltdown |
OEE collapse & quality failures |
talent_crisis |
High attrition, open-req spike |
cybersecurity_breach |
Security incident — SLA/SLO degrade |
esg_compliance_failure |
Governance failures & emissions spike |
IntelAI deploys as one cloud service. Connect the repo on Render or your preferred host,
set the env vars above, attach a Postgres add-on (Neon recommended). Deploy the frontend separately on Vercel with
VITE_API_BASE_URL pointing to the backend service URL.
Two reusable packages are extracted from this codebase and published to PyPI:
pip install intelai # v0.1.2 — the full deployable app
pip install omnismart-personas # v0.1.3 — persona templates for LangChain RAG projectsAGPL-3.0 — see LICENSE.
This project is open-source under the AGPL-3.0 License. It is completely free for researchers, students, and open-source hobbyists.
Commercial Use: The AGPLv3 license requires that any proprietary network service (SaaS, internal corporate tools) that uses or modifies this code must also open-source its entire backend.
If you wish to use this framework in a closed-source commercial environment, or require Enterprise features (SSO, Active Directory, Custom VPC Deployment, Strict RBAC), you must obtain a Commercial License. Please reach out to discuss commercial licensing and integration consulting.
This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.
- What is collected: A startup event timestamp and anonymized deployment origin. No API keys, no user prompts, and no sensitive application data is ever collected.
- How to disable: We respect your privacy and development environment. To opt-out, simply set
TELEMETRY_OPT_OUT=truein your.envfile.
This project is licensed under the AGPL-3.0 License.
Commercial Use: If you wish to use this software commercially without releasing your own source code, please see COMMERCIAL.md to obtain a commercial license.
Telemetry: See TELEMETRY.md for our privacy-first data practices.