text-embedding-3-small · Envoyer une requête
Modèle d'embeddings OpenAI à 1536 dimensions par défaut, adapté à la recherche sémantique et aux bases de connaissances. APIMaster a également testé une sortie à 512 dimensions via dimensions.
Modèle d'embeddings OpenAI à 1536 dimensions par défaut, adapté à la recherche sémantique et aux bases de connaissances. APIMaster a également testé une sortie à 512 dimensions via dimensions.
Vérifié le 2026-10-02 : route active à partir de $0.02 par million de tokens d'entrée. Il s'agit du prix APIMaster de cette route, pas d'un tarif officiel universel ; la carte en direct fait foi. Carte du modèle en direct
Envoyer une requête
POST /v1/embeddings · model: text-embedding-3-small
cURL
export APIMASTER_API_KEY="YOUR_APIMASTER_API_KEY"
curl --fail-with-body "https://apimaster.ai/v1/embeddings" \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "text-embedding-3-small", "input": "Semantic search retrieves related documents.", "encoding_format": "float"}'
Python · OpenAI SDK
pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIMASTER_API_KEY"],
base_url="https://apimaster.ai/v1",
)
result = client.embeddings.create(
model="text-embedding-3-small",
input=["Semantic search retrieves related documents.", "猫在窗边休息。"],
encoding_format="float",
)
for item in result.data:
print(item.index, len(item.embedding)) # 1536
print(result.usage.prompt_tokens)
JavaScript · Node.js
const response = await fetch("https://apimaster.ai/v1/embeddings", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIMASTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "text-embedding-3-small",
input: ["Semantic search retrieves related documents.", "猫在窗边休息。"],
encoding_format: "float",
}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
console.log(result.data.map((item) => [item.index, item.embedding.length]));
console.log(result.usage.prompt_tokens);
Paramètres et limites
input doit être une chaîne non vide ou un tableau de chaînes non vides. encoding_format: float fournit un tableau numérique. N'envoyez pas messages, max_tokens ou stream. La limite de référence est de 8192 tokens par texte ; découpez les longs documents et limitez la taille des lots. Les limites et la tokenisation peuvent varier selon la route.
L'option dimensions est décrite ici uniquement pour text-embedding-3-small : 1536 par défaut, ou 512 dans l'exemple testé. Utilisez la même dimension pour les documents et les requêtes.
Réduire les dimensions
compact = client.embeddings.create(
model="text-embedding-3-small",
input="Semantic search retrieves related documents.",
encoding_format="float",
dimensions=512,
)
print(len(compact.data[0].embedding)) # 512
Lire la réponse
Lisez data[i].embedding et associez chaque vecteur à son entrée avec data[i].index. usage.prompt_tokens et usage.total_tokens indiquent les tokens d'entrée. Les vecteurs ne sont pas facturés comme des tokens de texte généré. base64 a également été testé, mais float est plus facile à examiner.
Tests en production réussis pour les textes uniques, les lots chinois/anglais, les dimensions et la cohérence des entrées répétées. Ils valident l'API, pas la qualité de recherche sur tous les corpus.
Recherche sémantique et RAG
Découpez les documents, créez et stockez leurs vecteurs. Vectorisez la requête avec le même modèle et la même dimension, classez les passages par similarité cosinus puis transmettez les textes à un modèle de conversation distinct. Ne mélangez pas modèles ou dimensions dans un index ; reconstruisez-le lorsque vous changez de modèle.
Dépannage
Pour 401, vérifiez la clé API. Pour 400, vérifiez l'ID du modèle, input et les paramètres. Pour 429 ou un délai dépassé en amont, réduisez la concurrence et réessayez avec une attente progressive. Consultez la place de marché pour la disponibilité et les prix actuels.
