Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Synapse Core Laravel Package

arnaudmoncondhuy/synapse-core

View on GitHub
Deep Wiki
Context7

Mise en œuvre du RAG (Mémoire Vectorielle)

Le RAG (Retrieval-Augmented Generation) permet à l'IA d'accéder à vos propres documents (PDF, Doc, Base de données) pour répondre de manière précise et sourcée, tout en s'affranchissant des limites de la fenêtre de contexte.


🚀 Étape 1 : Configuration du Vector Store

Synapse Core supporte plusieurs modes de stockage via l'option vector_store.default.

Mode Doctrine / PostgreSQL (Recommandé)

Si vous utilisez PostgreSQL avec l'extension pgvector, Synapse utilisera des requêtes natives ultra-performantes.

# config/packages/synapse.yaml
synapse:
    vector_store:
        default: doctrine

[!IMPORTANT] N'oubliez pas d'exécuter php bin/console doctrine:schema:update --force pour créer la table synapse_vector_memory.


🧩 Étape 2 : Configuration du Chunking

Avant d'être mémorisés, les documents doivent être découpés. Vous pouvez régler ces paramètres dans l'Admin Synapse (Onglet Embeddings) :

  1. Stratégie : Choisissez Recursive pour un découpage qui respecte les paragraphes.
  2. Taille des segments : 1000 caractères est un bon compromis.
  3. Overlap : 200 caractères permettent de garder le fil entre deux segments.

🛠 Étape 3 : Alimenter la mémoire (RAG)

Pour ajouter des documents à la mémoire de l'IA, utilisez le MemoryManager (recommandé) ou directement le VectorStoreInterface :

use ArnaudMoncondhuy\SynapseCore\Memory\MemoryManager;
use ArnaudMoncondhuy\SynapseCore\Shared\Enum\MemoryScope;

public function indexDocument(string $text, MemoryManager $memory, string $userId): void
{
    $memory->remember(
        text: $text,
        scope: MemoryScope::USER,
        userId: $userId,
        sourceType: 'document'
    );
}

🧠 Comment Synapse utilise le RAG ?

Lors d'une conversation, Synapse Core :

  1. Vectorise la question de l'utilisateur.
  2. Recherche les N segments les plus proches dans le VectorStore (filtré par user_id).
  3. Injecte ces segments dans le prompt sous forme de "Contexte de référence".
  4. L'IA répond en se basant sur ces documents.

[!TIP] Vous pouvez surveiller les requêtes RAG et les scores de similarité en activant le debug_mode dans la configuration.


🧬 Mémoire Sémantique Active (Human-in-the-loop)

En plus du RAG classique (documents pré-indexés), Synapse Core dispose d'un système de mémoire conversationnelle où le LLM peut proposer de retenir des informations importantes avec le consentement de l'utilisateur.

👉 Voir le guide dédié : Mémoire Sémantique

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ably/pubsub-server
mstfkhazaal/defender
mfonte/base62x
karnoweb/metapilot
tobya/bcsapiwrapper
swalker2/cpanel
vish4395/laravel-translation-manager
morningtrain/economic
teksite/systeminfo-laravel
atomcms/voting
run6/weather
siokas/laravelembeddirectives
adamlien/pkuuids
gilsonsouza/lara-doc-generator
manelgavalda/enrollment_mobile
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics