Weave Code
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.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle