APIMaster.ai

text-embedding-3-small · Enviar uma solicitação

Modelo de embeddings da OpenAI com 1536 dimensões por padrão, indicado para busca semântica e índices de bases de conhecimento. A saída com 512 dimensões via dimensions também foi testada no APIMaster.

Modelo de embeddings da OpenAI com 1536 dimensões por padrão, indicado para busca semântica e índices de bases de conhecimento. A saída com 512 dimensões via dimensions também foi testada no APIMaster.

Verificado em 2026-10-02: rota ativa a partir de $0.02 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: 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);

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.

Aqui dimensions é documentado somente para text-embedding-3-small: 1536 por padrão ou 512 no exemplo testado. Documentos e consultas devem usar a mesma dimensão.

Reduzir dimensões

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

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