RAG y datos · 2026-10-10

API de clasificación de imágenes: sí/no, categoría y puntuación de calidad con Perplexity Decider

Clasifica imágenes con perplexity/pplx-decider-v1.1-27b: data URL en base64, redimensionar a 1440 píxeles, preguntas noul/choice/score y coste por imagen.

Diagrama simple: una imagen codificada como data URL va a https://llmtr.com/v1/systemone y vuelve como una categoría con su probabilidad.

Respuesta corta: pon la imagen en el array state y define las preguntas

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. Para clasificar una imagen por sí/no o por categoría, llamas a perplexity/pplx-decider-v1.1-27b en el endpoint https://llmtr.com/v1/systemone; la dirección base es https://llmtr.com/v1. Pones la imagen en el array state como data URL en base64 y defines tus preguntas; cada una devuelve una probabilidad, una opción o una puntuación.

Decider no escribe una descripción de la imagen; solo responde a las preguntas que haces. Eso elimina el paso de análisis en tareas como ordenar fotos de producto por categoría, preguntar si una imagen muestra a una persona o contenido prohibido, o puntuar la calidad de la foto de un anuncio. El precio es de 0,02 $ por 1M de tokens de entrada y la salida no tiene precio.

Cómo clasificar una imagen por sí/no o por categoría con una API

Envía el campo state como array. En él pueden ir juntas partes de texto y partes de imagen con la forma {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}. Una parte de texto corta, como «foto del anuncio de un vendedor», da contexto al modelo. Las preguntas se definen en el mapa questions, igual que con estados de texto.

El ejemplo en Python de abajo reduce primero la imagen para que su lado más largo mida 1440 píxeles, la codifica como JPEG en base64 y hace tres preguntas en una sola solicitud: si la foto muestra a una persona (noul), qué categoría de producto es (choice) y cuánto sirve para un anuncio (score). Usa las bibliotecas requests y Pillow.

Ejemplo en Python que reduce una imagen a 1440 píxeles, la convierte en data URL y la clasifica con preguntas noul, choice y score.

import base64
import io
import os

import requests
from PIL import Image


def to_data_url(path, max_side=1440):
    image = Image.open(path).convert("RGB")
    image.thumbnail((max_side, max_side))
    buffer = io.BytesIO()
    image.save(buffer, format="JPEG", quality=90)
    return "data:image/jpeg;base64," + base64.b64encode(buffer.getvalue()).decode()


response = requests.post(
    "https://llmtr.com/v1/systemone",
    headers={"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]},
    json={
        "model": "perplexity/pplx-decider-v1.1-27b",
        "state": [
            "Listing photo uploaded by a seller.",
            {"type": "image_url", "image_url": {"url": to_data_url("listing.jpg")}},
        ],
        "questions": {
            "shows_person": {
                "type": "noul",
                "instructions": "Does the photo show a person?",
            },
            "category": {
                "type": "choice",
                "instructions": "Which product category does the photo show?",
                "criteria": {"shoes": None, "bags": None, "clothing": None, "other": None},
            },
            "listing_quality": {
                "type": "score",
                "instructions": "How usable is this photo for a product listing?",
                "criteria": ["Unusable", "Acceptable", "Good"],
            },
        },
    },
    timeout=90,
)
response.raise_for_status()
answers = response.json()["answers"]
print(answers["category"]["choice"], answers["category"]["confidence"])

Preparar la imagen: data URL, formato y tamaño

El modelo no descarga imágenes desde una dirección. Si envías una URL http o https, la solicitud devuelve 400 provider_error; envía siempre la imagen como data URL en base64, en PNG, JPEG o WebP. La imagen se lee con un detalle de hasta 2.048 cuadros de 32x32 píxeles, por ejemplo 1440x1440 o 2048x1024. Reduce una imagen mayor a ese tamaño antes de enviarla; no se garantiza cómo se lee una imagen que supera el límite.

El cuerpo de la solicitud tiene un límite total de 24 MB, y la codificación base64 hace el archivo cerca de un tercio más grande; reducir la imagen te mantiene por debajo. Puedes poner varias imágenes en el mismo array; cada una se cuenta de nuevo en cada pregunta.

Reglas de entrada de imagen de perplexity/pplx-decider-v1.1-27b (LLMTR, 2026-10-10)
TemaRegla
FormatoPNG, JPEG, WebP; data URL en base64
URL http/httpsno se acepta, 400 provider_error
Detalle leídohasta 2.048 cuadros de 32x32 (p. ej. 1440x1440, 2048x1024)
Tokenspor imagen y por pregunta, como máximo unos 2.050
Cuerpo de la solicitud24 MB en total; base64 añade cerca de un tercio
Preguntascomo máximo 128 por solicitud

Qué tipo de pregunta usar: noul, choice y score

Usa noul cuando preguntes si algo aparece en la imagen o si la imagen cumple una regla; devuelve la probabilidad de sí entre 0 y 1. Usa choice para una categoría y añade una opción como other para imágenes que quizá no encajen en la lista; si no, el modelo siempre elige la categoría más cercana. choice admite hasta 255 opciones y devuelve la elegida junto con la probabilidad de cada opción y un valor confidence.

Usa score para valorar un nivel como la calidad o la idoneidad; defines de 2 a 10 niveles ordenados y el valor devuelto puede caer entre dos de ellos. Las probabilidades son una estimación del modelo: antes de ponerlo en producción, fija umbrales con imágenes propias cuya etiqueta conoces y pasa a una persona los resultados con confidence bajo.

Coste: la imagen se cuenta de nuevo en cada pregunta

El precio es de 0,02 $ por 1M de tokens de entrada y la salida no tiene precio. La imagen cuenta como tokens de entrada y se cuenta de nuevo en cada pregunta; una sola imagen suma como máximo unos 2.050 tokens por pregunta. Las tres preguntas del ejemplo suman como máximo unos 6.150 tokens por imagen, unos 0,000123 $, y 10.000 imágenes cuestan unos 1,23 $, sin contar el texto corto ni el de las preguntas.

Si solo preguntas la categoría, las mismas 10.000 imágenes bajan a unos 0,41 $, así que no envíes preguntas cuya respuesta no vas a usar. Con imágenes grandes el tiempo de respuesta puede crecer; pon el timeout del cliente en 90 segundos como mínimo.

Empezar en LLMTR: cuenta, clave y primera clasificación

Crea una cuenta en llmtr.com, recarga crédito y genera una clave en Dashboard > API Keys; la clave sin procesar se muestra una sola vez, así que guárdala en la variable de entorno LLMTR_API_KEY. Después envía algunas de tus imágenes con el ejemplo de arriba y compara los resultados con tus propias etiquetas. Las solicitudes se descuentan del crédito prepago al precio del catálogo, y la misma clave sirve para todos los modelos del catálogo.

Clasificar una imagen con Perplexity Decider

Reduce la imagen a 1440 píxeles, codifícala como data URL en base64 y envíala con una pregunta noul, choice o score a https://llmtr.com/v1/systemone usando perplexity/pplx-decider-v1.1-27b.

  1. Clave. Crea una cuenta en llmtr.com, recarga crédito, genera una clave en Dashboard > API Keys y guárdala en la variable de entorno LLMTR_API_KEY.
  2. Imagen. Reduce la imagen para que quepa en 2.048 cuadros de 32x32 y ponla en el array state como data URL en base64 en PNG, JPEG o WebP.
  3. Clasificación. Define tus preguntas en questions, envía la solicitud a https://llmtr.com/v1/systemone y pasa a una persona los resultados con confidence bajo.

Frequently asked questions

¿Perplexity Decider acepta imágenes?

Sí. perplexity/pplx-decider-v1.1-27b evalúa imágenes PNG, JPEG o WebP enviadas como data URL en base64 en una parte image_url del array state. Las URL http o https no se aceptan y devuelven 400 provider_error.

¿Cuánto cuesta clasificar una imagen?

La entrada cuesta 0,02 $ por 1M de tokens. Una imagen suma como máximo unos 2.050 tokens por pregunta; una imagen cuesta unos 0,000041 $ con una pregunta y unos 0,000123 $ con tres. La salida no tiene precio.

¿Tengo que reducir la imagen antes de enviarla?

Sí. La imagen se lee con un detalle de hasta 2.048 cuadros de 32x32, por ejemplo 1440x1440 o 2048x1024. No se garantiza cómo se lee una imagen mayor, y el cuerpo de la solicitud tiene un límite total de 24 MB.

Artículos relacionados