UX & Cinematic UI clone ChatGPT & Odoproject ERP (via API)
Voici un schéma technique simplifié (Mermaid) + la logique d’échanges clef.
flowchart LR subgraph UI["Clone ChatGPT (Front-end Web)"] A[Colonne gauche<br/>• Conversations<br/>• Projets Odoproject] B[Zone centrale<br/>Chat temps réel] C[Barre haute<br/>Profil · Paramètres] end subgraph AI["Orchestration IA"] D[RAG & Context Manager<br/>• Mémoire courte/longue<br/>• Résumés de thread<br/>• Citations/Docs] E[Agent Odoo/Odoproject<br/>• Auth & Tokens<br/>• Mapping modèles<br/>• Caches] end subgraph ERP["Odoproject (ERP Métier)"] F[(API REST/JSON-RPC)] G[(Objets métier<br/>Project, Task, Kit, BOM,<br/>Installation, Ticket, Doc)] H[(Webhooks/Bus)] end A <-- liste projets + conv --> E B <-- prompt/intent --> D D <-- contexte & docs --> E E <--> F F <--> G H --> E E --> A D --> B
Flux principaux
-
Chargement UI → l’agent E appelle ERP.F pour lister :
- Project (en cours / assignés à l’utilisateur)
-
Conversation (threads locaux)
→ A affiche tout dans la colonne gauche (sections “Conversations” & “Projets”).
-
User prompt dans B → D (RAG) :
- Détection d’intent (ex. “montre les kits pour le site X”).
- Récupération contexte (projet sélectionné, documents liés, dernières tâches).
-
Appels ERP via E :
- Lecture/écriture sécurisée (token OAuth/API key, rôle utilisateur).
- Caching (ex. 60–120 s) pour menus/listes.
-
Mises à jour ERP (tâche créée, statut changé) :
- H Webhooks pousse un event → E → rafraîchit A/B en temps réel.
Endpoints types (exemples REST)
- GET /api/projects?assignee=:me&state=in_progress → Liste projets
- GET /api/projects/:id/summary → Résumé projet (dates, avancement, risques)
- GET /api/projects/:id/kits → Kits pédagogiques / d’installation
- GET /api/tasks?project_id=:id&state!=done → Tâches ouvertes
- POST /api/tasks {project_id, title, description, due_date} → Créer tâche
- POST /api/notes {project_id, body, attachments[]} → Journal de bord
(JSON-RPC possible : object.execute_kw('project.task','search_read',…).)
Mapping colonne gauche (modèle de données)
-
Conversation
- thread_id, title, updated_at, pin, participants[]
-
Projet ERP
- project_id, name, status, progress%, next_deadline, badges[kits, tickets]
Sécurité & gouvernance
- SSO/OAuth : jeton user transmis à E ; scopes par rôle (lecture kits ≠ création tâches).
- Journalisation : toutes écritures IA→ERP signées (qui/quoi/quand), rollback possible.
- Garde-fous IA : validation humaine requise pour actions sensibles (commande, planning).
UX clé (comme ChatGPT, mais “piloté ERP”)
-
Colonne gauche :
- Conversations (locales)
- Projets Odoproject (données live)
- Zone centrale : chat + cartes contextuelles (Kits, Tâches, Docs, Checklists).
- /commands : /résumer_projet, /créer_tâche, /afficher_kit, /export_pdf.