Files
Momento/docs/fonctionnalites-ia.md
Antigravity 1fcea6ed7d
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 7s
feat: brainstorm sessions, PDF document Q&A, embedding fixes, and UI improvements
- Add brainstorm feature with collaborative canvas, AI idea generation, live cursors, playback, and export
- Add PDF upload/extraction/ingestion pipeline with pgvector document search (RAG)
- Add document Q&A overlay with streaming chat and PDF preview
- Add note attachments UI with status polling, grid layout, and auto-scroll
- Add task extraction AI tool and agent executor improvements
- Fix NoteEmbedding missing updatedAt column, re-index 66 notes with 1536-dim embeddings
- Fix brainstorm 'Create Note' button: add success toast and redirect to created note
- Fix memory echo notification infinite polling
- Fix chat route to always include document_search tool
- Add brainstorm i18n keys across all 14 locales
- Add socket server for real-time brainstorm collaboration
- Add hierarchical notebook selector and organize notebook dialog improvements
- Add sidebar brainstorm section with session management
- Update prisma schema with brainstorm tables, attachments, and document chunks
2026-05-14 17:43:21 +00:00

8.4 KiB

Fonctionnalités IA — Momento

Architecture

Trois fournisseurs IA indépendants, chacun configurable séparément :

Tier Usage Variables
Tags Tags, labels, reformulation, suggestions de titre AI_PROVIDER_TAGS, AI_MODEL_TAGS
Embedding Recherche sémantique, Memory Echo, similarité AI_PROVIDER_EMBEDDING, AI_MODEL_EMBEDDING
Chat Chat RAG, agents, résumés, vision, brainstorm AI_PROVIDER_CHAT, AI_MODEL_CHAT

13 fournisseurs supportés : OpenAI, Google Gemini, Anthropic, DeepSeek, OpenRouter, Mistral, Ollama, ZAI, LM Studio, Custom OpenAI, MiniMax, GLM, Anthropic Custom.

Hiérarchie de fallback : Config spécifique → Tags → Embedding → Général → Env.


1. Notes — Écriture intelligente

Suggestions de titre

  • 3 propositions (Direct, Question, Créatif) en 3-8 mots
  • Détection automatique de la langue du contenu
  • Toggle utilisateur titleSuggestions

Tags contextuels automatiques (IA2)

  • Suggestions parmi les labels existants du carnet OU création de nouveaux
  • Confiance > 0.5 (labels existants), > 0.3 (nouveaux)
  • Toggle utilisateur autoLabeling

Création auto de labels (IA4)

  • Analyse un carnet (15+ notes) et détecte les thèmes récurrents
  • Un thème doit apparaître dans 5+ notes, confiance > 0.60
  • Max 5 suggestions, labels marqués type='ai'

Reformulation de paragraphe — 6 modes

  • Clarifier : élimine l'ambiguïté
  • Raccourcir : condense 30-50%
  • Améliorer le style : vocabulaire, structure
  • Corriger la grammaire : corrections minimales
  • Traduire : vers langue cible
  • Améliorer tous les modes : les 3 principaux en un appel

Traduction

  • Traduction vers n'importe quelle langue cible

Description d'images (Vision)

  • Mode description : décrit le contenu (max 100 mots)
  • Mode titre : 3 titres descriptifs de 3-7 mots
  • Supporte images locales et distantes

Suggestion de carnet

  • Suggère le carnet le plus approprié lors de la création d'une note
  • Analyse contenu + labels existants

2. Recherche sémantique

Recherche hybride (FTS + Vectorielle)

  • Phase 1 : PostgreSQL FTS (tsvector / plainto_ts_query, index GIN) → 50 candidats
  • Phase 2 : pgvector recherche cosinus-distance (index HNSW) → 50 candidats, seuil 0.3
  • Phase 3 : Reciprocal Rank Fusion (RRF, k=60) pour le classement final
  • Filtrage par carnet optionnel
  • Fallback FTS-only si vectorielle échoue

Embeddings

  • pgvector(1536) dans PostgreSQL
  • Régénération automatique après 7 jours
  • Génération par lot avec Promise.all

3. Memory Echo — Connexions proactives

Insights automatiques

  • Détecte les connexions sémantiques entre notes via similarité cosinus
  • Seuil de similarité : 0.75 (normal), 0.50 (démo)
  • Génère une explication en 1 phrase (max 15 mots) via IA
  • Fréquence configurable : daily / weekly / custom (3/jour)

Feedback adaptatif

  • Thumbs up → baisse le seuil de 0.05 (plus de suggestions)
  • Thumbs down → monte le seuil de 0.15 (moins de suggestions)

Fusion de notes

  • Fusion intelligente de plusieurs notes en une seule structurée
  • Consolidation, suppression des doublons, organisation logique

Connexions par note

  • Liste toutes les connexions sémantiques pour une note avec pagination

4. Chat IA — RAG avec outils

Chat contextuel (streaming)

  • Retrieval-Augmented Generation avec notes de l'utilisateur
  • Recherche sémantique (seuil 0.5, 0.3 pour carnet spécifique)
  • Prompt système en français
  • Outils disponibles : note_search, note_read, web_search, web_scrape
  • Max 5 steps d'outils
  • Supporte contexte de carnet, contexte Copilot (note en cours), images (vision)
  • Conversations persistées, historique 10 derniers messages
  • Prompts localisés (en, fr, fa, es)

Insights de chat

  • Résumé synthétique ou 3 insights à partir des 5 notes les plus récentes

5. Organisation automatique

Organisation par lot (IA3)

  • Classe les notes sans carnet dans les carnets existants
  • Guide de classification thématique (sport → Personnel, travail → Travail, etc.)
  • Confiance > 0.60, max 50 notes analysées
  • Prompts localisés en 12 langues

Résumé de carnet (IA6)

  • 5 sections : Thèmes Principaux, Statistiques, Éléments Temporels, Points d'Attention, Insights Clés
  • Analyse jusqu'à 100 notes récentes
  • Prompts localisés en 5 langues

6. Agents IA — 6 types

Scraper

  • Scrape des URLs (Jina Reader), détecte et parse les flux RSS
  • Synthèse IA, extraction d'images (Cheerio + Sharp)
  • Placement intelligent d'images via IA
  • Titre généré par IA, notification par email

Researcher

  • Génère des requêtes de recherche, scrape les sources
  • Crée une note de recherche structurée

Monitor

  • Analyse les notes récentes d'un carnet
  • Produit des insights et connexions récurrents

Custom

  • Rôle personnalisé libre avec URLs source optionnelles

Slide Generator

  • Crée des présentations via pptx_create (PowerPoint) ou slides_create (HTML Reveal.js)

Excalidraw Generator

  • Crée des diagrammes Excalidraw à partir d'un format simplifié
  • 7 types : flowchart, mindmap, architecture-cloud, org-chart, timeline, process-map, auto
  • Auto-layout via Dagre

Ordonnancement

  • Fréquences : manual, hourly, daily, weekly, monthly
  • Fuseaux horaires IANA supportés

7. Génération de contenu

PowerPoint (PptxGenJS)

  • 20 thèmes de couleur, 4 styles (sharp/soft/rounded/pill)
  • 15 layouts de slides
  • Pré-fetch d'images en base64

Slides HTML (Reveal.js)

  • Mêmes thèmes et layouts que PPTX
  • Interactif, speaker notes, cadre décoratif optionnel

Excalidraw

  • Format simplifié (nodes + edges) → auto-layout Dagre
  • Calcul de qualité (overlaps, croisements)
  • Sauvegarde en DB

8. Brainstorm — Vagues de pensée

Génération de vagues IA

  • 3 vagues successives : Variations → Analogies → Disruptions
  • Chaque vague enrichie avec contexte des notes existantes
  • Connexions aux notes existantes via embeddings (derived_from, opposes, extends, synthesizes, transposes)

Enrichissement d'idées manuelles

  • LLM enrichit titre, description, connectionToSeed, noveltyScore
  • Placement sémantique auto : embedding → similarité cosinus → meilleur parent

Canvas D3 interactif

  • Graphe radial avec 3 anneaux (vagues 1-2-3)
  • Drag & drop, zoom, sélection, création inline
  • Curseur fantôme AI pendant la génération

Collaboration temps réel

  • Socket.io : curseurs live, déplacement de nœuds, activité
  • Partage via modèle NoteShare (email → notification → accepter/refuser)
  • Avatars avec présence émeraude

Export → Note

  • Crée une note structurée avec résumé, vagues, connexions, notes sollicitées
  • Ouvre directement la note créée

9. Outils disponibles pour les agents

Outil Description
web_search Recherche web via SearXNG ou Brave Search
web_scrape Scraping via Jina Reader (markdown) + RSS auto-détection
note_search Recherche hybride dans les notes (sémantique + mots-clés)
note_read Lit une note par ID
note_create Crée une note (markdown, images optionnelles)
note_update Modifie titre/contenu d'une note
url_fetch Fetch d'URL avec parsing JSON/CSV/texte
memory_search Recherche dans l'historique des exécutions d'agent
pptx_create Génère un PowerPoint
slides_create Génère des slides HTML Reveal.js
excalidraw_create Génère un diagramme Excalidraw

10. Détection de langue

  • Hybride : TinyLD pour notes courtes (<50 mots, ~8ms), IA pour notes longues
  • Mapping TinyLD → ISO 639-1, 62 langues dont le persan
  • 19 codes explicitement mappés + fallback

Toggles utilisateur (UserAISettings)

Toggle Fonctionnalité
autoLabeling Tags contextuels automatiques
paragraphRefactor Reformulation de paragraphe
titleSuggestions Suggestions de titre
memoryEcho Memory Echo proactif
memoryEchoFrequency daily / weekly / custom
demoMode Seuils abaissés pour démo
preferredLanguage Langue préférée pour les agents

Chiffres

  • 46 fichiers IA
  • ~10 500+ lignes de code
  • 26 routes API IA
  • 12 outils enregistrés
  • 6 types d'agents
  • 13 fournisseurs supportés
  • Prompts localisés : fr, en, fa, es, de, it, pt, nl, pl, ru, ja, ko, zh, ar, hi