Getting text embedding

Minimal TransformersPHP example with Xenova/paraphrase-multilingual-MiniLM-L12-v2

A minimal example of generating a text embedding in PHP: build an embeddings pipeline, pass text to the model, and get the vector with normalize=true and pooling=mean.

Example of code:

 
<?php

use function Codewithkyrian\Transformers\Pipelines\pipeline;

$text 'PHP is not only a web tool, but also an engineering tool.';
$embedding = [];
$embeddingError null;

try {
    
$embedder pipeline(task'embeddings'modelName'Xenova/paraphrase-multilingual-MiniLM-L12-v2');
    
$result $embedder($textnormalizetruepooling'mean');
    
$embedding array_map(static fn ($v): float => (float) $v$result[0]);
} catch (
Throwable $e) {
    
$embeddingError $e->getMessage();
}