API Reference

/v1/embeddings

Embeddings para retrieval, clustering y búsqueda semántica. Modelo: `Qwen/Qwen3-Embedding-8B` (4 096 dimensiones, multilingüe, optimizado para contextos largos).

Resumen

Convierte una o varias strings en vectores densos de hasta 4 096 dimensiones. Diseñado para RAG, semantic search, clustering y deduplicación. Multilingüe — funciona igual en español, inglés, portugués, catalán y muchos otros idiomas. Soporta el parámetro `dimensions` (Matryoshka) para reducir el tamaño del vector sin reentrenar.

Endpoint y modelo

POST `https://api.tesseraai.cloud/v1/embeddings`. El campo `model` en el request es el literal `Qwen/Qwen3-Embedding-8B`.

AtributoValor
Dimensiones4 096 nativas; configurable hacia abajo (32–4 096) con el parámetro `dimensions`
IdiomasMultilingüe (100+ idiomas, incluyendo ES, EN, PT, CA, IT, FR, DE)
Tipo de inputstring o array de strings
Longitud máxima8 192 tokens por entrada
QuantizaciónQ8_0 GGUF (calidad casi idéntica a FP16)
LicenciaApache 2.0

Dimensiones de salida

El modelo está entrenado con Matryoshka Representation Learning (MRL): los primeros N componentes del vector codifican una representación auto-contenida del input. Esto te permite pedir vectores más cortos sin reentrenar el modelo y con pérdida mínima de calidad. Pasa el parámetro estándar `dimensions` (compatible con la API de OpenAI) y Tessera trunca el vector y lo re-normaliza a longitud unitaria server-side, listo para usar con cosine similarity.

  • `dimensions` es opcional. Sin él recibes el vector nativo de 4 096 dimensiones.
  • Acepta cualquier valor entre 32 y 4 096. Valores típicos: 1 536 (límite HNSW de pgvector), 1 024, 768, 512.
  • No hay coste extra de inferencia: la truncación se aplica post-inferencia en el gateway.
  • Los vectores devueltos son L2-normalizados — listos para `cosine_distance` en pgvector / Qdrant / Weaviate sin pasos extra.
Pedir 1 536 dimensiones
# cURL
curl https://api.tesseraai.cloud/v1/embeddings \
  -H "Authorization: Bearer $TESSERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-Embedding-8B",
    "input": ["Texto 1", "Texto 2"],
    "dimensions": 1536
  }'

# Python con el SDK de OpenAI
from openai import OpenAI

client = OpenAI(
    base_url="https://api.tesseraai.cloud/v1",
    api_key=os.environ["TESSERA_API_KEY"],
)

resp = client.embeddings.create(
    model="Qwen/Qwen3-Embedding-8B",
    input=["Texto 1", "Texto 2"],
    dimensions=1536,
)
# resp.data[0].embedding → lista de 1 536 floats, L2-normalizada
# Lista para INSERT INTO docs (embedding) VALUES (%s) en pgvector

Request

POST /v1/embeddings
curl https://api.tesseraai.cloud/v1/embeddings \
  -H "Authorization: Bearer $TESSERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-Embedding-8B",
    "input": [
      "Quiero saber el saldo de mi factura",
      "Cancelar mi suscripción"
    ]
  }'

Response

Estructura idéntica a OpenAI: `data[].embedding` es un array de 4 096 floats por cada input (o de la longitud pedida vía `dimensions`), L2-normalizado.

Respuesta
{
  "object": "list",
  "model": "Qwen/Qwen3-Embedding-8B",
  "data": [
    {"object": "embedding", "index": 0, "embedding": [0.013, 0.0062, ...]},
    {"object": "embedding", "index": 1, "embedding": [-0.022, 0.041, ...]}
  ],
  "usage": {"prompt_tokens": 12, "total_tokens": 12}
}

Casos de uso típicos

  • RAG: indexar tu corpus en Qdrant / pgvector / Weaviate y recuperar pasajes por similitud antes de enviarlos al chat model.
  • Búsqueda semántica: replace de búsqueda por keywords donde "factura impagada" debe encontrar "saldo pendiente".
  • Clustering / topic modeling: agrupar tickets, documentos o correos por similitud para análisis no supervisado.
  • Deduplicación: detectar contenido casi idéntico (FAQ duplicadas, leads repetidos) por umbral de similitud coseno.