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.
Synapse Core supporte plusieurs modes de stockage via l'option vector_store.default.
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 --forcepour créer la tablesynapse_vector_memory.
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) :
Recursive pour un découpage qui respecte les paragraphes.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'
);
}
Lors d'une conversation, Synapse Core :
VectorStore (filtré par user_id).[!TIP] Vous pouvez surveiller les requêtes RAG et les scores de similarité en activant le
debug_modedans la configuration.
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
How can I help you explore Laravel packages today?