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

VectorStoreInterface

L'interface VectorStoreInterface est le socle du système de RAG (Retrieval-Augmented Generation) dans Synapse Core. Elle définit comment stocker et rechercher des informations "vectorisées" (embeddings) pour donner une mémoire long-terme à votre IA.

🛠 Pourquoi l'utiliser ?

  • Mémoire illimitée : Permet à l'IA d'accéder à des milliers de documents sans saturer la fenêtre de contexte.
  • Recherche sémantique : Trouve des informations basées sur le sens plutôt que sur des simples mots-clés.
  • Performances : Délègue la recherche complexe à des moteurs spécialisés (Pinecone, Weaviate, PostgreSQL avec pgvector).

📋 Résumé du Contrat

Méthode Entrée Sortie Rôle
saveMemory(array $vector, array $payload) Vecteurs + Métadonnées void Insère de nouvelles données dans la base vectorielle.
searchSimilar(array $vector, int $limit, array $filters) Vecteur de recherche array Récupère les documents les plus proches sémantiquement.

🚀 Exemple : Implémentation simplifiée en mémoire

```php
namespace App\Synapse\Vector;

use ArnaudMoncondhuy\SynapseCore\Contract\VectorStoreInterface;

class InMemoryVectorStore implements VectorStoreInterface
{
    private array $storage = [];

    public function saveMemory(array $vector, array $payload): void
    {
        $this->storage[] = [
            'vector'  => $vector,
            'payload' => $payload,
        ];
    }

    public function searchSimilar(array $vector, int $limit = 5, array $filters = []): array
    {
        // Ici, vous implémenteriez un calcul de similarité cosinus.
        return array_slice($this->storage, 0, $limit);
    }
}
```

💡 Conseils d'implémentation

[!TIP] Métadonnées : La méthode add reçoit un champ metadata. Utilisez-le pour stocker le texte source ou l'URL du document original. Cela facilitera l'affichage des sources par l'IA.

  • Identifiants : Gérez soigneusement les IDs pour éviter les doublons lors de la mise à jour de vos documents.
  • Dimensionalité : Assurez-vous que votre Store accepte la même dimension de vecteur que celle générée par votre EmbeddingClientInterface (ex: 1536 pour OpenAI).

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