Skip to main content

IntelAI

CI

License: AGPL v3

License: AGPL v3 PyPI

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.

CI FastAPI Python

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 OpenAI-compatible proxies via LiteLLM (using LLM_ENDPOINT)
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  (OpenAI-compatible 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 — see SELF_HOSTING.md

# 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)

Full reference with every variable and its default lives in .env.example. The ones you're most likely to touch:

Variable Required Description
POSTGRES_URL Neon / Render / local Postgres
GROQ_API_KEY Default-tier LLM provider key
SECRET_KEY JWT signing key
REQUIRE_INTERNAL_TOKEN Set false for standalone self-hosting — see SELF_HOSTING.md
ANTHROPIC_API_KEY Reasoning-tier LLM (CEO/CFO/CTO/Risk personas); falls back to Groq if unset
LLM_DEFAULT / LLM_REASONING / LLM_JUDGE LiteLLM model IDs per tier (any provider LiteLLM supports)
USE_GRAPH_RAG true = GraphRAG-lite multi-hop
USE_HYBRID_RETRIEVAL true = dense+BM25+RRF+reranker
VECTOR_STORE chroma (dev, default) · pgvector · qdrant (prod)
AUDIO_PROCESSOR_URL / DOC_PROCESSOR_URL Pluggable audio/document processors (e.g. a VoiceFlow/DocIntel instance)
INGEST_WEBHOOK_SECRET Enables the public HMAC-signed /api/v1/webhook/{source} ingestion path

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 (Research & Evaluation)

IntelAI provides seven seeded, deterministic, benchmark-calibrated environments (78 months × 7 domains × 146 metrics, formula-derived where a real formula applies — see DATA_SEEDING.md) for evaluating RAG retrieval accuracy and forecasting models under structural stress. Selectable via the Admin → Scenarios tab or the API directly (POST /api/v1/admin/scenario):

Scenario Research Application Description
healthy Baseline RAG Eval Stable baseline calibrated to sit inside documented "healthy" benchmark bands.
declining_financial Trend Reversal Revenue contraction & margin compression; tests forecast adaptability.
high_churn_crisis Lagging Indicators Customer retention failure; tests cross-domain correlation (Growth vs Finance).
operational_meltdown Volatility Stress OEE collapse & quality failures; introduces severe noise to operational metrics.
talent_crisis Sentiment Impact High attrition, open-req spike; evaluates People-to-Operations efficiency lag.
cybersecurity_breach Shock Event Security incident; step-function disruption in SLA/SLO metrics.
esg_compliance_failure Policy Violation Governance failures & emissions spike; tests multi-hop entity reasoning.

Every scenario also carries a short cross-domain cascade (IT → Logistics/Ops → Growth → Finance, mirroring how a real incident's financial impact actually lags its root cause) — see DATA_SEEDING.md §4 for the full methodology.

Deploy

IntelAI deploys as one cloud service (render.yaml included). Connect the repo on Render, set the env vars above, and attach a Postgres add-on. Deploy the frontend separately on Vercel with VITE_API_BASE_URL pointing to the Render service URL.

License

AGPL-3.0 — 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=true in your .env file.

telemetry

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intelai-0.1.5.tar.gz (189.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intelai-0.1.5-py3-none-any.whl (187.4 kB view details)

Uploaded Python 3

File details

Details for the file intelai-0.1.5.tar.gz.

File metadata

  • Download URL: intelai-0.1.5.tar.gz
  • Upload date:
  • Size: 189.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for intelai-0.1.5.tar.gz
Algorithm Hash digest
SHA256 dee671988a548dc2c1595a7215a921cea8afaa691fc47270b61cf2f1888d9e31
MD5 e9478522ddf6629a4a307b77d8b9cd4d
BLAKE2b-256 101a0d23141fb9cbbb30d7a4f673604d6c7e3c598f68285c494255e1f7841325

See more details on using hashes here.

File details

Details for the file intelai-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: intelai-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 187.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for intelai-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8b0cdce3ba1bc62bd735f82d6767d4d5b40ddbfd7f15cc22229b3462c8205bd6
MD5 ea5f283939a9aa29f0f0831ddb88b966
BLAKE2b-256 b78e53ea90cfeac28bc825c3a9f3e4760de0dd6fff2dd612d50c09170e419db4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page