Búsqueda: embeddings y rerank

Las dos piezas de un RAG por la misma key: vectores para encontrar candidatos y rerank para ordenarlos por relevancia.

Embeddings

POST /v1/embeddings con el contrato de OpenAI. Recibe uno o varios textos y devuelve un vector de 1024 dimensiones por texto, en el mismo orden. Los guardas en tu base vectorial (pgvector, Qdrant, lo que uses) y buscas por similitud coseno.

El modelo es multilingüe: una pregunta en español encuentra un documento en inglés o en portugués sin traducir nada antes.

r = client.embeddings.create(
    model="jina-embeddings-v5-omni-small",
    input=["¿Cómo cambio mi contraseña?", "Olvidé la clave del correo"],
)
vectores = [d.embedding for d in r.data]  # 1024 números cada uno

Rerank

POST /v1/rerank recibe una consulta y una lista de documentos, y devuelve los documentos ordenados por relevancia con un puntaje entre 0 y 1. No es parte del SDK de OpenAI, así que se llama con un POST directo y la misma key.

El patrón habitual es traer 20 a 50 candidatos con embeddings y pasarlos por rerank para quedarte con los 3 a 5 mejores antes de mandárselos al modelo de texto. Es más barato que darle al modelo todo el contexto y responde mejor.

import requests

r = requests.post(
    "https://ai.truo.cloud/v1/rerank",
    headers={"Authorization": "Bearer sk-…"},
    json={
        "model": "jina-reranker-v2-base-multilingual",
        "query": "¿Cómo apunto mi dominio al hosting?",
        "documents": [
            "Cambia los DNS en tu registrador a ns1 y ns2 de tu plan.",
            "Los respaldos se guardan 30 días.",
        ],
        "top_n": 1,
    },
)
print(r.json()["results"])  # [{"index": 0, "relevance_score": …}]

Precio y planes

Los dos se cobran por token de entrada, a $0.065 por millón, del mismo presupuesto que el resto. Están en los tres planes. En rerank cuentan los tokens de la consulta y de los documentos juntos.

La referencia formal de todas las APIs de TruoCloud vive en docs.truo.cloud. Esta guía cubre el uso del gateway de Truo AI.