APIMaster.ai

BGE-M3 · Enviar una solicitud

Modelo multilingüe de BAAI con 1024 dimensiones para recuperación de documentos. Esta API devuelve vectores densos, sin pesos dispersos ni vectores ColBERT. No necesita un prefijo de instrucciones especial para la consulta.

Modelo multilingüe de BAAI con 1024 dimensiones para recuperación de documentos. Esta API devuelve vectores densos, sin pesos dispersos ni vectores ColBERT. No necesita un prefijo de instrucciones especial para la consulta.

Verificado el 2026-10-02: ruta activa desde $0.01 por millón de tokens de entrada. Es el precio de la ruta APIMaster, no una tarifa oficial universal; prevalece la tarjeta actual. Tarjeta del modelo en vivo

Enviar una solicitud

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);

Parámetros y límites

Envía en input una cadena no vacía o un arreglo de cadenas no vacías. encoding_format: float devuelve un arreglo numérico. No envíes messages, max_tokens ni stream. El límite de referencia es de 8192 tokens por texto; divide documentos largos y usa lotes pequeños. Los límites y la tokenización pueden variar según la ruta.

Para bge-m3 usa el vector denso completo de 1024 dimensiones y omite dimensions. Usa bge-m3 en la solicitud; response.model puede mostrar un alias del proveedor.

Leer la respuesta

Lee data[i].embedding y relaciona cada vector con su entrada mediante data[i].index. usage.prompt_tokens y usage.total_tokens indican el uso de entrada. Los vectores no se facturan como tokens de texto generado. También se probó base64, pero float facilita la inspección.

Se probaron textos individuales, lotes en chino/inglés, dimensiones y consistencia de entradas repetidas. Las pruebas validan la API, no la calidad de recuperación en todos los conjuntos de datos.

Búsqueda semántica y RAG

Divide documentos en fragmentos, crea y guarda sus vectores. Vectoriza la consulta con el mismo modelo y dimensión, ordena por similitud coseno y pasa los textos recuperados a otro modelo de chat. No mezcles modelos ni dimensiones en un índice; reconstrúyelo al cambiar de modelo.

Solución de problemas

Para 401 revisa la clave API. Para 400 revisa el ID, input no vacío y los parámetros. Para 429 o tiempos de espera del proveedor, reduce la concurrencia y reintenta con espera progresiva. Consulta el mercado de modelos para disponibilidad y precios actuales.

Siguientes pasos y referencias