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.
| 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). |
=== "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; }
}
```
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.embedText. Si le texte est trop long, il peut être nécessaire de le découper (Chunking) avant l'appel.How can I help you explore Laravel packages today?