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.
