Avancement du projet
Nous construisons RAGAdmin en public. Voici le kanban réel : 14 semaines, 3 phases, 140 tâches.
S1POCFondations infra + auth
Auth multi-tenant OK, 1 modèle répond via curl LiteLLM
Fondations infra + auth
Auth multi-tenant OK, 1 modèle répond via curl LiteLLM
- Dev ADocker Compose : Postgres + Redis + MinIO + Qdrant + Keycloak + TraefikP0
- Dev AvLLM déployé (Llama 3.1 8B AWQ) + bge-m3 embeddingsP0
- Dev ALiteLLM Proxy configuré, master key + virtual keys par tenantP0
- Dev ACréation 2 realms Keycloak (acme, beta) avec users de testP1
- Dev AScript de seed DB : tenants + users + row-level security activéeP0
- Dev BInit Next.js 15 App Router, TypeScript strict, TurbopackP0
- Dev BInstall shadcn/ui, Tailwind v4, TanStack Query, next-auth v5P1
- Dev BConfig Auth.js avec provider Keycloak (2 realms)P0
- Dev BFlow login → callback → session avec tenant_id dans JWTP0
- Dev BLayout de base (sidebar + topbar + zone main)P2
S2POCChat minimal end-to-end
User chatte, messages streamés, historique persisté
Chat minimal end-to-end
User chatte, messages streamés, historique persisté
- Dev AFastAPI squelette + structure du repo (routers, services, models)P0
- Dev AMiddleware qui set RLS tenant_id à chaque requête PGP0
- Dev AModèles SQLAlchemy : tenants, users, conversations, messages, token_usageP0
- Dev AMigrations Alembic + seed données de démoP1
- Dev AEndpoint POST /api/chat qui stream vers LiteLLM en SSEP0
- Dev BIntégration assistant-ui + Vercel AI SDK sur page /chatP0
- Dev BHook useChat branché sur /api/chat avec token JWTP0
- Dev BSauvegarde conversations + messages côté backP1
- Dev BSidebar historique conversations (liste + nouvelle conv)P1
- Dev BRendu markdown + code highlighting (Shiki)P2
S3POCRAG ingestion
Upload PDF → 1 min plus tard il est dans Qdrant, status ready
RAG ingestion
Upload PDF → 1 min plus tard il est dans Qdrant, status ready
- Dev ACelery + worker Redis, config production-readyP1
- Dev AEndpoint POST /api/documents (upload → MinIO + task Celery)P0
- Dev APipeline : Unstructured.io extraction + SentenceSplitter chunkingP0
- Dev AGénération embeddings via vLLM API OpenAI-compatibleP0
- Dev AInsertion Qdrant dans collection tenant_{slug} avec metadataP0
- Dev BPage /documents avec drag & drop (react-dropzone)P0
- Dev BListe des documents avec statut (polling TanStack Query)P1
- Dev BÉtats visuels : queued / processing / ready / errorP2
- Dev BBouton suppression + confirmationP2
- Dev BToast notifications sur fin d'ingestionP2
S4POCRAG retrieval + citations
Question → réponse avec citations cliquables
RAG retrieval + citations
Question → réponse avec citations cliquables
- Dev AModifier /api/chat : embedding question + search Qdrant top_k=8P0
- Dev AConstruction prompt structuré avec chunks numérotés [1] [2]P0
- Dev APrompt système strict : obliger les citations inlineP0
- Dev AParser les [N] dans le stream, enregistrer message_citations en DBP1
- Dev AEndpoint GET /api/citations/{id} pour récupérer le chunk sourceP1
- Dev BAffichage inline des citations [1] cliquables dans les réponsesP0
- Dev BPanneau latéral qui s'ouvre au clic, montre chunk + documentP0
- Dev BPolish rendu markdown (tables, listes, blockquotes)P2
- Dev BScroll auto vers bas, gestion messages en cours d'écritureP1
- Dev BBouton régénérer + copier messageP2
S5POCMulti-tenancy visible + tracking usage
2 tenants en parallèle, données cloisonnées
Multi-tenancy visible + tracking usage
2 tenants en parallèle, données cloisonnées
- Dev AIntégration Langfuse SDK Python, wrapper sur tous les appels LLMP0
- Dev Atrace_id stocké en DB sur chaque messageP1
- Dev AMiddleware qui remplit token_usage à chaque appel LLMP0
- Dev ASQL views agrégées (usage par jour / user / modèle)P1
- Dev ATests d'isolation : tentative lecture tenant B depuis tenant AP0
- Dev BPage /admin/overview : KPIs (users actifs, tokens, coût)P0
- Dev BGraphique usage 30j avec RechartsP1
- Dev BPage /admin/users : table (TanStack Table) avec actionsP0
- Dev BModal création user (appelle API Keycloak via back)P1
- Dev BAffichage consommation par user (drill-down)P2
S6POCObservabilité admin + polish démo
Tout fonctionne bout en bout pour prospect
Observabilité admin + polish démo
Tout fonctionne bout en bout pour prospect
- Dev ASSO Keycloak propre (password policy + branding realm)P1
- Dev ASeed riche : 2 tenants fictifs avec 10 docs et 20 conversationsP0
- Dev AEndpoint /api/traces/{conv_id} qui retourne URL Langfuse filtréeP1
- Dev AAudit : vérif manuelle isolation sur toutes les routes sensiblesP0
- Dev ADockerfile de prod + compose.prod.ymlP1
- Dev BPage /admin/logs : liste conversations récentes + lien LangfuseP0
- Dev BResponsive desktop + tabletP1
- Dev BOnboarding minimal : tour interface au premier loginP2
- Dev BBranding par tenant : logo + couleur accent en CSS varP0
- Dev BPage 404 + 500 + loading skeletons partoutP2
S7POCBuffer + préparation commerciale
Démo scénarisée, infra stable, fallback prêt
Buffer + préparation commerciale
Démo scénarisée, infra stable, fallback prêt
- Dev ALoad test basique (10 users concurrents sur vLLM)P1
- Dev AFallback API cloud (OpenAI via LiteLLM) si vLLM downP0
- Dev ABackups automatiques Postgres + MinIO + Qdrant (cron)P1
- Dev AHealth checks + restart auto DockerP1
- Dev ADoc ops interne : runbook démarrage / arrêt / debugP2
- Dev BScript de démo 10 min scénarisée avec prospect fictifP0
- Dev BVidéo de secours enregistrée de la démo complèteP1
- Dev BLanding page produit minimaliste + formulaire contactP1
- Dev BPack commercial : slides pitch + onepager techniqueP1
- Dev BCollecte feedback 2-3 testeurs externes, correctionsP1
S8POCBuffer final + premières démos
POC livré, 1-2 démos prospects effectuées
Buffer final + premières démos
POC livré, 1-2 démos prospects effectuées
- Dev ADebug final issues remontées pendant testsP0
- Dev AMonitoring basique : uptime + disk + GPU (Grafana Cloud)P1
- Dev ASécurisation : rate limiting, CORS strict, headers sécuP0
- Dev AScan secrets (trufflehog) + audit deps (pip-audit, npm audit)P1
- Dev ADocumentation API OpenAPI auto-générée propreP2
- Dev BPolish final UX : microinteractions, transitions fluidesP1
- Dev BAccessibilité basique (labels ARIA, focus visible, contraste)P2
- Dev BMode sombre fonctionnelP2
- Dev B2-3 démos réelles avec prospects identifiésP0
- Dev BBacklog des retours prospects pour MVPP1
S9MVPRAG avancé
Qualité réponses +30%, latence contrôlée
RAG avancé
Qualité réponses +30%, latence contrôlée
- Dev AHybrid search Qdrant : dense + BM25 (sparse vectors)P0
- Dev AReranker bge-reranker-v2-m3 déployé sur vLLMP0
- Dev APipeline retrieval : top 20 → rerank → top 5 en contexteP0
- Dev AQuery rewriting simple (multi-query generation)P1
- Dev AMétriques qualité RAG avec Ragas (faithfulness, relevance)P1
- Dev BAffichage scores de pertinence des citations (indicateur visuel)P2
- Dev BFiltres avancés sur les documents (date, type, auteur)P1
- Dev BRecherche fulltext dans les conversations passéesP1
- Dev BFavoris / pinning conversations importantesP2
- Dev BExport conversation en markdown / PDFP2
S10MVPQuotas + notifications
Quotas hebdo appliqués, overage tracké, alertes fonctionnelles
Quotas + notifications
Quotas hebdo appliqués, overage tracké, alertes fonctionnelles
- Dev AConfig LiteLLM budgets : max_budget par virtual key, weekly resetP0
- Dev AJob cron lundi 00:00 : archivage weekly_usage + calcul overageP0
- Dev AWebhook LiteLLM → notif quand seuil 80% / 100% atteintP1
- Dev ATable weekly_usage et invoices (scaffold, pas encore Stripe)P0
- Dev ALogique : soft limit (warning) vs hard limit (block) configurableP1
- Dev BCompteur quota dans header (barre progression visible)P0
- Dev BNotifications in-app (toast + badge) sur seuilsP1
- Dev BPage /admin/billing : preview facture + breakdown overageP0
- Dev BEmail transactionnel (Resend) pour alertes adminP1
- Dev BSettings tenant : ajuster quotas par user, plansP1
S11MVPFacturation Stripe
Premier paiement test réussi, cycle de billing fonctionnel
Facturation Stripe
Premier paiement test réussi, cycle de billing fonctionnel
- Dev AIntégration Stripe : Customer, Subscription, Meter (usage-based)P0
- Dev AWebhooks Stripe : customer.subscription.updated, invoice.paidP0
- Dev ASync : tenant.plan_id ↔ Stripe subscriptionP1
- Dev AEnvoi usage overage vers Stripe Meter en fin de périodeP0
- Dev AGestion trial, downgrade, past_due avec état tenantP1
- Dev BPage /admin/billing complète : factures, méthode paiementP0
- Dev BIntégration Stripe Customer PortalP1
- Dev BTunnel upgrade plan avec Stripe CheckoutP0
- Dev BPage publique /pricing avec 3 plansP1
- Dev BFlow signup → Stripe Checkout → création tenant autoP0
S12MVPPremier agent LangGraph
Agent multi-step avec RAG-as-tool visible dans UI
Premier agent LangGraph
Agent multi-step avec RAG-as-tool visible dans UI
- Dev AAgent LangGraph : planner + RAG tool + synthesisP0
- Dev AStreaming des étapes intermédiaires (tool calls visibles)P0
- Dev AIntégration Langfuse pour traces d'agent multi-stepP1
- Dev AEndpoint /api/agent/chat séparé du chat simpleP1
- Dev ALimites sécu : max iterations, timeout, tokens maxP0
- Dev BUI agent : affichage des étapes (thinking → searching → writing)P0
- Dev BToggle chat simple / agent avancé dans l'interfaceP1
- Dev BRendu riche des tool calls (citations, docs consultés)P1
- Dev BSettings : activer/désactiver agent par tenantP2
- Dev BExemples de prompts système pré-configurésP2
S13ProductionProduction readiness
Migration K3s, monitoring complet, backups automatisés
Production readiness
Migration K3s, monitoring complet, backups automatisés
- Dev AMigration Docker Compose → K3s (cluster single-node OK)P0
- Dev AHelm charts pour chaque service (vLLM, LiteLLM, back, front)P1
- Dev APrometheus + Grafana + Loki avec dashboards pré-configurésP0
- Dev AAlerting Grafana : GPU OOM, DB slow, erreurs 5xx, disk fullP0
- Dev ARunbook incidents : playbook par type d'alerteP1
- Dev BTests E2E Playwright : auth, chat, upload, isolation tenantP0
- Dev BCI/CD GitHub Actions : lint + tests + build + deploy stagingP0
- Dev BFeature flags (Unleash ou PostHog) pour rollout progressifP2
- Dev BObservabilité front : Sentry + Web VitalsP1
- Dev BStatus page publique (Uptime Kuma ou Better Stack)P2
S14ProductionSécurité + onboarding pilotes
1-2 pilotes en prod, audit sécu passé
Sécurité + onboarding pilotes
1-2 pilotes en prod, audit sécu passé
- Dev AAudit sécu externe : pentest focus isolation multi-tenantP0
- Dev AChiffrement at-rest (disques) + in-transit (TLS partout)P0
- Dev APolitique RGPD : DPA template, data retention, export/deleteP0
- Dev ASecrets rotation automatique (Vault ou sealed-secrets)P1
- Dev APlan DR (disaster recovery) + test de restaurationP1
- Dev BFlow onboarding tenant : self-serve (ou assisté) completP0
- Dev BDocumentation publique (docs)P1
- Dev BHelp center in-appP2
- Dev BOnboarding users : invitation email + tutoriel 1er loginP1
- Dev BRetours pilotes intégrés, premières itérations produitP1
Envie de suivre l'avancée de près ?
Nous ouvrons un programme de design partners pour tester la plateforme sur vos propres documents.
RAGAdmin