Documentation
Embeddings
Des vecteurs multilingues pour la recherche sémantique, les recommandations et le regroupement.
Les embeddings transforment des textes en vecteurs : deux textes de sens proche donnent des vecteurs proches, quelle que soit leur langue. Ils servent à la recherche sémantique, aux recommandations, au regroupement et au dédoublonnage. C’est le même modèle multilingue que celui de Gaspard.
Scope embeddings, réservé aux applications serveur (clé secrète). Chaque texte vectorisé
compte comme une unité dans l’usage de votre application. Rien n’est conservé.
Vectoriser #
POST /v1/public/embeddings avec 1 à 32 textes de 2 000 caractères au plus chacun, et
32 000 caractères en tout.
curl -X POST https://hubmix.dealmood-solutions.com/v1/public/embeddings \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"texts": ["Chambre étudiante près du campus", "Student room near campus"]}'{
"model": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
"dimensions": 384,
"embeddings": [
[0.0213, -0.0871, 0.0042, "…"],
[0.0198, -0.0842, 0.0057, "…"]
]
}Les vecteurs reviennent dans l’ordre des textes. model et dimensions disent avec quoi ils
ont été calculés : gardez-les à côté de vos vecteurs et recalculez tout si le modèle change (des
vecteurs de deux modèles ne se comparent pas).
Comparer #
Comparez deux vecteurs avec la similarité cosinus : 1 = même sens, autour de 0 = sans rapport.
function cosine(a, b) {
let dot = 0, na = 0, nb = 0;
for (let i = 0; i < a.length; i++) {
dot += a[i] * b[i];
na += a[i] * a[i];
nb += b[i] * b[i];
}
return dot / Math.sqrt(na * nb);
}Pour beaucoup de vecteurs, rangez-les dans une base qui sait chercher les plus proches (PostgreSQL avec pgvector, Qdrant, Elasticsearch…).
Erreurs : 403 insufficient_scope, 422 invalid_request (trop de textes, texte vide ou trop
long). Voir Erreurs, limites et quotas.