Persona-Aware AI Analytics & RAG Copilot — multi-domain KPI intelligence, GraphRAG-lite, ML forecasting.
Project description
IntelAI
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.
Features
| 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) |
| 90+ 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 |
Architecture
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
Quickstart
Prerequisites: Python 3.11, Node 18+, Postgres URL, GROQ_API_KEY.
git clone https://github.com/Yacine-ai-tech/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 dev
Default 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
Configuration (.env)
| 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) |
Key API Endpoints
/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.
Tests
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 # 30+ auth/RBAC/endpoint checks
pytest tests/test_chat.py -q # chat endpoint + answer-block assertions
DB-dependent tests run automatically when POSTGRES_URL is reachable and skip cleanly otherwise — CI is green without a database.
Benchmarking Scenarios
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 |
Deploy
IntelAI deploys as one cloud service (railway.toml included). Connect the repo on Railway,
set the env vars above, attach a Postgres add-on. Deploy the frontend separately on Vercel with
VITE_API_BASE_URL pointing to the Railway service URL.
License
MIT — see LICENSE.
⚖️ License & Enterprise Use (Dual-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.
📡 Anonymous Telemetry
This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.
- What is collected: Only the project name and a "startup" event timestamp. No PII, no API keys, no user data.
- How to disable: We respect your privacy. To opt-out, simply set
TELEMETRY_OPT_OUT=truein your.envfile.
Licensing
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file intelai-0.1.2.tar.gz.
File metadata
- Download URL: intelai-0.1.2.tar.gz
- Upload date:
- Size: 138.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0284cb6489c236d8276d5c106ab4f14eed818f6ecb188d4c5a0edcbe78909c30
|
|
| MD5 |
f52fa1c0c910d7e477fb3d42b231cddc
|
|
| BLAKE2b-256 |
4c58c44413d9c3ab4381874b84803c852afda4452d3651c131a482c97de678fb
|
File details
Details for the file intelai-0.1.2-py3-none-any.whl.
File metadata
- Download URL: intelai-0.1.2-py3-none-any.whl
- Upload date:
- Size: 140.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edf3037f815f89df9d7f8e15cf433d29ce934b5439e6bf1af800576447e92874
|
|
| MD5 |
7b0e3ff7522d2f8e9e25657b9081867e
|
|
| BLAKE2b-256 |
a55f088b86f66cd3c49831f6f941d01dd2d8cf71a89b33966a087fcd43e3c053
|