APIMaster.ai

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.

Suite et références