Endpoints
Embeddings
POST /embeddings : transformez du texte en vecteurs pour la recherche sémantique, le clustering et le RAG, avec le même format que l'API OpenAI.
Essayer dans le playgroundTransformez du texte en vecteurs pour la recherche sémantique, le clustering, la déduplication et la génération augmentée par récupération (RAG). L'endpoint a la même forme que le POST /embeddings d'OpenAI, donc client.embeddings.create(...) fonctionne sans modification.
POST https://api14.com/api/v1/embeddings
Requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | oui | Un identifiant de modèle d'embeddings, par ex. openai/text-embedding-3-small. |
input | string ou string[] | oui | Texte à vectoriser. Passez un tableau pour vectoriser plusieurs entrées en une seule requête. |
dimensions | integer | non | Taille du vecteur de sortie, pour les modèles qui permettent de le raccourcir (par ex. text-embedding-3-*). |
encoding_format | string | non | float (par défaut) ou base64. |
user | string | non | Votre propre identifiant d'utilisateur final, transmis au fournisseur. |
provider | object | non | Préférences de routage des fournisseurs. Voir Routage des fournisseurs. |
Exemple
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.embeddings.create({
"model": "openai/text-embedding-3-small",
"input": [
"The quick brown fox",
"Lorem ipsum"
]
});
console.log(result.data.map((d) => d.embedding.length));
Réponse
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
],
"model": "openai/text-embedding-3-small",
"usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}
data[i].index correspond à la position de l'entrée dans votre tableau input.
Choisir un modèle
Listez les modèles d'embeddings avec leurs prix, sans clé d'API :
curl https://api14.com/api/v1/embeddings/models
# ou, avec les catégories et nos prix :
curl "https://api14.com/api/v1/models?category=embeddings"
Les vecteurs de modèles différents ne sont pas comparables. Stockez l'identifiant du modèle à côté de chaque vecteur et revectorisez votre corpus quand vous changez de modèle.
Tarifs
Les embeddings sont facturés par token d'entrée au prix indiqué du modèle, affiché en « $ / 1M tokens ». Le coût de chaque requête est renvoyé dans usage.cost (USD) et débité de votre solde. Voir Tarifs et facturation.
Conseils
- Regroupez les entrées : une requête de 100 chaînes est plus rapide et compte pour une seule requête dans votre limite de débit.
- Gardez chaque entrée sous la longueur de contexte du modèle ; un texte plus long est rejeté en amont.
- Normalisez les vecteurs (la plupart des modèles renvoient déjà une longueur unitaire) et utilisez la similarité cosinus.
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | model_required / invalid_json | model manquant ou corps qui n'est pas un objet JSON. |
| 401 | invalid_api_key | Clé manquante ou invalide. |
| 402 | insufficient_balance | Votre solde en USD est à 0 $. |
| 403 | model_not_allowed | La liste de modèles autorisés de la clé exclut ce modèle. |
| 404 | model_not_found | Identifiant de modèle inconnu ou désactivé. |
| 429 | rate_limited | Requêtes par minute dépassées. |
Liste complète : Erreurs.