BGE-M3 · Envoyer une requête
Modèle multilingue BAAI à 1024 dimensions pour la recherche documentaire. Cette API renvoie des vecteurs denses, sans poids creux ni vecteurs ColBERT. Aucun préfixe d'instruction spécial n'est nécessaire pour les requêtes.
Modèle multilingue BAAI à 1024 dimensions pour la recherche documentaire. Cette API renvoie des vecteurs denses, sans poids creux ni vecteurs ColBERT. Aucun préfixe d'instruction spécial n'est nécessaire pour les requêtes.
Vérifié le 2026-10-02 : route active à partir de $0.01 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: bge-m3
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": "bge-m3", "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="bge-m3",
input=["Semantic search retrieves related documents.", "猫在窗边休息。"],
encoding_format="float",
)
for item in result.data:
print(item.index, len(item.embedding)) # 1024
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: "bge-m3",
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.
Pour bge-m3, utilisez le vecteur dense complet à 1024 dimensions et omettez dimensions. Envoyez l'ID bge-m3 ; response.model peut contenir un alias du fournisseur.
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.
