Guías de integración · 2026-10-10

Modelo alojado en la UE con error: guía de cambio

Si un modelo alojado en la UE devuelve 503 o 429, cambia a la otra fila de la misma familia con la misma clave de LLMTR y revisa qué errores lo justifican.

Diagrama simple: un cliente llama primero a su id de modelo principal y, ante un 503 o 429, pasa con la misma clave a la otra fila de la misma familia; el par funciona en ambos sentidos.

Respuesta corta: pasa a la otra fila de la misma familia

LLMTR (llmtr.com) es una pasarela que da acceso a modelos de lenguaje alojados en Turquía y en proveedores globales a través de una única API compatible con OpenAI. Cuando el modelo alojado en la UE que llamas devuelve un error, no necesitas un contrato nuevo: la misma clave y el mismo saldo llaman a la otra fila de la misma familia de modelos. Si tu fila principal es greenpt/glm-5.3-eu, la alternativa es tensorx/glm-5.3-tensorx; si es tensorx/glm-5.3-tensorx, la alternativa es greenpt/glm-5.3-eu. La URL base sigue siendo https://llmtr.com/v1 y solo cambia la cadena del modelo.

LLMTR no cambia de proveedor por sí sola; lo hace tu cliente. Para los modelos de esta categoría, el procesamiento dentro de la Unión Europea es lo que declara el proveedor; LLMTR no lo ha verificado de forma independiente. Cada proveedor necesita su propio consentimiento de transferencia de datos; sin él la solicitud se rechaza con 403 provider_consent_required.

Un modelo alojado en la UE devuelve un error: cómo cambiar de modelo sin salir de la UE

Empieza por el tipo de error. Cambiar de fila tiene sentido con 503 model_unavailable, 429, otros errores 5xx, timeouts y errores de conexión, porque la solicitud es válida pero la fila que llamaste no responde en este momento. Enviar la misma solicitud a la otra fila de la misma familia es razonable. Prueba como máximo una fila alternativa por solicitud; si fallan las dos, pasa el error a tu aplicación tal cual.

No cambies con un 400. unsupported_input o invalid_request indican un problema en la propia solicitud, como enviar una imagen a una fila sin entrada de imagen. La otra fila puede rechazar la misma solicitud, así que corrige primero la solicitud.

Tampoco cambies con un 403. provider_consent_required indica que falta el consentimiento de transferencia de datos de ese proveedor; la solución es concederlo. El proveedor de la fila a la que cambias también necesita su consentimiento, porque son por proveedor. model_not_allowed se refiere al alcance de modelos de la clave; corrige el alcance.

Cinco pares de la misma familia de modelos

Los pares siguientes son dos filas de la misma familia de modelos. Sea cual sea tu fila principal, la otra fila de la familia es la alternativa; el par funciona en ambos sentidos. Para una fila sin par, elige otro modelo alojado en la UE según tu necesidad y pruébalo antes con tus propios prompts.

El precio de cada fila está en su propia página de modelo; abre ambas páginas antes de depender de una alternativa. No uses la lógica de cambio con filas de embeddings: los vectores de dos filas de embeddings distintas no se mezclan en un mismo índice, así que cambiar de proveedor implica volver a generar los embeddings del corpus.

Pares de filas de la misma familia en GreenPT y TensorX (comprobado el 2026-10-09)
Familia de modelosFila de GreenPTFila de TensorX
GLM-5.3greenpt/glm-5.3-eutensorx/glm-5.3-tensorx
GLM-5.3 Flashgreenpt/glm-5.3-flash-eutensorx/glm-5.3-flash-tensorx
DeepSeek V4 Flash 0731greenpt/deepseek-v4-flash-0731tensorx/deepseek-v4-flash-0731-tensorx
DeepSeek V4.1 Flashgreenpt/deepseek-v4.1-flashtensorx/deepseek-v4.1-flash-tensorx
Kimi K2.7 Codegreenpt/kimi-k2.7-code-eutensorx/kimi-k2.7-code-tensorx

Un flujo de cambio en ambos sentidos en Python

La función complete siguiente prueba en orden la lista de ids de modelo que le pases. Pasa al siguiente modelo solo con los códigos 429, 500, 502, 503 y 504, y con timeouts y errores de conexión; cualquier otro error se lanza tal cual. La función también devuelve el id del modelo que respondió, para que registres qué fila se usó. Pon tu fila principal al principio de la lista.

La otra fila viene de un proveedor distinto, así que el formato o la longitud de la respuesta pueden variar. Mantén el código que procesa las respuestas independiente del id del modelo y prueba el cambio con tus propios prompts antes de depender de él.

Ejemplo en Python que prueba la otra fila de la misma familia con la misma clave cuando falla la fila principal.

import os
import openai
from openai import OpenAI

client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"])

FALLBACK_STATUS = (429, 500, 502, 503, 504)

def complete(messages, models):
    last_error = None
    for model_id in models:
        try:
            reply = client.chat.completions.create(
                model=model_id,
                messages=messages,
                max_tokens=500,
            )
            return reply.choices[0].message.content, model_id
        except openai.APIStatusError as e:
            # 400 and 403 are request or permission problems: re-raise them.
            if e.status_code not in FALLBACK_STATUS:
                raise
            last_error = e
        except (openai.APITimeoutError, openai.APIConnectionError) as e:
            last_error = e
    raise last_error

# Put your primary first; the pair works in either order.
models = ["greenpt/glm-5.3-eu", "tensorx/glm-5.3-tensorx"]
text, used = complete([{"role": "user", "content": "Summarize this paragraph: ..."}], models)
print(used, text[:80])

Prepara los consentimientos y el alcance de la clave antes de necesitarlos

Una ruta alternativa solo sirve si está preparada de antemano. En Dashboard > Settings > Data-transfer consents concede el consentimiento de GreenPT y el de TensorX. El consentimiento es de cuenta, se aplica a todas las claves API de la cuenta y se puede retirar en el mismo lugar. Sin él la solicitud no llega al proveedor y no se cobra. En lugar de probar la fila alternativa por primera vez durante una caída, envíale una solicitud pequeña justo después de conceder los consentimientos.

Si limitas tu clave API a modelos seleccionados, añade los dos ids del par; un modelo fuera del alcance devuelve 403 model_not_allowed. Una clave puede limitarse a un máximo de 50 modelos. LLMTR no almacena los cuerpos de prompts y respuestas; conserva metadatos como el id del modelo, los conteos de tokens, la latencia, el estado HTTP, el coste en USD y los primeros 12 caracteres de la clave.

Empezar en LLMTR: cuenta, crédito, consentimientos, clave y primera solicitud

Paso 1: crea una cuenta en llmtr.com y verifica el correo. Paso 2: recarga crédito desde el Dashboard. Se añade una vez un margen de plataforma del 8 % sobre la cantidad solicitada; por ejemplo, una recarga de 10,00 $ cuesta 10,80 $. Después, cada llamada se descuenta al precio del catálogo.

Paso 3: concede los consentimientos de GreenPT y TensorX en Settings > Data-transfer consents. Paso 4: crea una clave en Dashboard > API Keys; la clave sin procesar solo se muestra una vez, así que guárdala como LLMTR_API_KEY. Después envía la primera solicitud a https://llmtr.com/v1 con el código anterior. La misma clave y el mismo saldo funcionan para todos los modelos; cambiar de modelo es cambiar la cadena del modelo.

Configurar un cambio en ambos sentidos para modelos alojados en la UE

Cuatro pasos: cuenta y crédito, consentimientos de transferencia de datos de ambos proveedores, clave API y primera solicitud con el flujo de cambio.

  1. Cuenta y crédito. Crea una cuenta en llmtr.com, verifica tu correo y recarga crédito desde el Dashboard. Se añade una vez un margen de plataforma del 8 %; una recarga de 10,00 $ cuesta 10,80 $.
  2. Data-transfer consents. En Dashboard > Settings > Data-transfer consents concede los de GreenPT y TensorX. Sin uno de ellos la solicitud se rechaza con 403 provider_consent_required.
  3. Clave API. Crea una clave en Dashboard > API Keys. Si usas un alcance de modelos, añade los dos ids del par. Guarda la clave sin procesar como LLMTR_API_KEY.
  4. Primera solicitud. Envía la primera solicitud a https://llmtr.com/v1 con la función complete de este artículo. Si la fila principal devuelve 503 o 429, se prueba la siguiente de la lista.

Frequently asked questions

¿LLMTR cambia a otro modelo automáticamente cuando un modelo devuelve un error?

No. LLMTR no cambia de proveedor por sí sola. Tu cliente captura el error y llama con la misma clave a la otra fila de la misma familia; un par funciona de GreenPT a TensorX y de TensorX a GreenPT.

¿Con qué errores debo cambiar de modelo?

Con 503 model_unavailable, 429, otros errores 5xx, timeouts y errores de conexión. Un 400 es un problema de la solicitud, 403 provider_consent_required indica que falta un consentimiento y 403 model_not_allowed apunta al alcance de la clave; el cambio no los resuelve.

¿Necesito una cuenta o un consentimiento aparte para el otro proveedor?

No necesitas otra cuenta: la misma clave y el mismo saldo funcionan. El consentimiento de transferencia de datos sí es por proveedor; el de GreenPT no cubre las filas de TensorX y el de TensorX no cubre las de GreenPT. Concede ambos de antemano.

Artículos relacionados