APIMaster.ai

BGE-M3 · Enviar uma solicitação

Modelo multilíngue da BAAI com 1024 dimensões para recuperação de documentos. Esta API retorna vetores densos, sem pesos esparsos ou vetores ColBERT. Não exige um prefixo especial de instruções na consulta.

Modelo multilíngue da BAAI com 1024 dimensões para recuperação de documentos. Esta API retorna vetores densos, sem pesos esparsos ou vetores ColBERT. Não exige um prefixo especial de instruções na consulta.

Verificado em 2026-10-02: rota ativa a partir de $0.01 por milhão de tokens de entrada. É o preço da rota APIMaster, não um preço oficial universal; o cartão atual do modelo prevalece. Cartão atual do modelo

Enviar uma solicitação

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 e limites

Envie em input uma string não vazia ou um array de strings não vazias. encoding_format: float retorna um array numérico. Não envie messages, max_tokens ou stream. O limite de referência é de 8192 tokens por texto; divida documentos longos e use lotes pequenos. Limites e tokenização podem variar por rota.

Para bge-m3, use o vetor denso completo de 1024 dimensões e omita dimensions. Use bge-m3 na solicitação; response.model pode conter um alias do provedor.

Ler a resposta

Leia data[i].embedding e associe cada vetor à entrada por data[i].index. usage.prompt_tokens e usage.total_tokens indicam o uso de entrada. Vetores não são cobrados como tokens de texto gerado. base64 também foi testado, mas float facilita a inspeção.

Testes reais aprovados para texto único, lotes em chinês/inglês, dimensões e consistência de entradas repetidas. Validam o comportamento da API, não a qualidade de busca em todos os dados.

Busca semântica e RAG

Divida os documentos em trechos, gere e armazene seus vetores. Vetorize a consulta com o mesmo modelo e dimensão, classifique por similaridade de cosseno e envie os textos recuperados a um modelo de chat separado. Não misture modelos nem dimensões no mesmo índice; reconstrua-o ao trocar de modelo.

Solução de problemas

Para 401, confira a chave API. Para 400, confira o ID, input não vazio e os parâmetros. Para 429 ou timeout do provedor, reduza a concorrência e repita com espera progressiva. Consulte o marketplace para disponibilidade e preços atuais.

Próximos passos e referências