All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 7s
- 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
8.4 KiB
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) ouslides_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