APIMaster.ai

text-embedding-3-small · Enviar una solicitud

Modelo de embeddings de OpenAI con 1536 dimensiones por defecto, útil para búsqueda semántica e índices de conocimiento. APIMaster también ha probado la salida de 512 dimensiones mediante dimensions.

Modelo de embeddings de OpenAI con 1536 dimensiones por defecto, útil para búsqueda semántica e índices de conocimiento. APIMaster también ha probado la salida de 512 dimensiones mediante dimensions.

Verificado el 2026-10-02: ruta activa desde $0.02 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: 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 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.

Aquí dimensions se documenta solo para text-embedding-3-small: 1536 por defecto o 512 en el ejemplo probado. Documentos y consultas deben usar la misma dimensión.

Reducir dimensiones

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

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