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

EmbeddingClientInterface

L'interface EmbeddingClientInterface est responsable de la conversion du langage humain en vecteurs mathématiques (Embeddings). C'est le traducteur nécessaire pour que le VectorStore puisse "comprendre" le sens des mots.

🛠 Pourquoi l'utiliser ?

  • Standardisation : Utiliser un format de vecteur unique pour tout votre projet.
  • Abstraction : Passer d'OpenAI à HuggingFace sans modifier votre pipeline de RAG.
  • Efficacité : Gérer les appels par lots (batching) pour transformer de gros volumes de texte rapidement.

📋 Résumé du Contrat

Méthode Entrée Sortie Rôle
embedText(string $text) Texte brut array<float> Transforme une phrase en vecteur unique.
embedBatch(array $texts) Liste de textes array<array> Optimise le traitement de plusieurs documents.
getDimensions() - int Retourne la taille des vecteurs (ex: 1536).

🚀 Exemple : Client d'embedding simulé

=== "DebugEmbeddingClient.php"

```php
namespace App\Synapse\Embedding;

use ArnaudMoncondhuy\SynapseCore\Contract\EmbeddingClientInterface;

class DebugEmbeddingClient implements EmbeddingClientInterface
{
    public function embedText(string $text): array
    {
        // Simule un vecteur de dimension 3
        return [0.12, 0.45, 0.89];
    }

    public function embedBatch(array $texts): array
    {
        return array_map([$this, 'embedText'], $texts);
    }

    public function getDimensions(): int { return 3; }
}
```

💡 Conseils d'implémentation

  • Normalisation : La plupart des modèles (comme text-embedding-3-small d'OpenAI) retournent des vecteurs déjà normalisés. Si vous utilisez un modèle local, vérifiez si vous devez appliquer une normalisation L2.
  • Limites de tokens : Attention à la longueur du texte envoyé à embedText. Si le texte est trop long, il peut être nécessaire de le découper (Chunking) avant l'appel.

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