Saltar al contenido principal

Introducción a la funcionalidad

Los modelos de visión y lenguaje (Vision-Language Model, VLM) son una clase de modelos multimodales de gran escala que admiten entradas de imagen y texto al mismo tiempo, con capacidad para comprender el contenido visual y procesar información entre modalidades. El modelo puede generar respuestas de alta calidad basadas en la información combinada de imágenes y texto, y se utiliza ampliamente en escenarios como reconocimiento de imágenes, comprensión de contenido y preguntas y respuestas inteligentes.

Escenarios de uso típicos

  • Reconocimiento y descripción del contenido de imágenes: identifica automáticamente objetos, colores, escenas y relaciones espaciales en las imágenes, y genera descripciones en lenguaje natural.
  • Comprensión integral de imagen y texto: combina entradas de imagen y texto para permitir conversaciones de múltiples turnos relacionadas con el contexto y respuestas a tareas complejas.
  • Preguntas y respuestas asistidas por visión: puede complementar herramientas de OCR, identificar información textual incrustada en imágenes y responder preguntas.
  • Aplicaciones futuras ampliadas: adecuado para asistentes visuales inteligentes, percepción robótica, realidad aumentada y otros escenarios interactivos.

Instrucciones de llamada a la API

Para llamar a un modelo de visión y lenguaje, se debe usar la interfaz /chat/completions, que admite entradas mixtas de imagen y texto.

Parámetros de procesamiento de imágenes

Use el campo detail para configurar la precisión del procesamiento de imágenes. Se admiten las siguientes opciones:
  • high: alta resolución, conserva más detalles, adecuada para tareas detalladas.
  • low: baja resolución, procesamiento rápido, adecuada para respuestas en tiempo real.
  • auto: el sistema selecciona automáticamente el modo adecuado.

Ejemplos de formato de mensajes

Formato de imagen por URL

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image.png",
        "detail": "high"
      }
    },
    {
      "type": "text",
      "text": "Describe la escena de la imagen."
    }
  ]
}

Formato de imagen en Base64

{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}",
        "detail": "low"
      }
    },
    {
      "type": "text",
      "text": "¿Qué contenido textual aparece en la imagen?"
    }
  ]
}

Código de ejemplo para codificación de imágenes en Base64 (Python)

import base64
from PIL import Image
import io

def image_to_base64(image_path):
    with Image.open(image_path) as img:
        buffered = io.BytesIO()
        img.save(buffered, format="JPEG")
        return base64.b64encode(buffered.getvalue()).decode('utf-8')

base64_image = image_to_base64("path/to/your/image.jpg")

Modo de múltiples imágenes

Se admite enviar varias imágenes junto con texto como entrada. Se recomienda usar como máximo dos imágenes para obtener mejor rendimiento y comprensión.
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image1.png"
      }
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}"
      }
    },
    {
      "type": "text",
      "text": "Compara las características comunes de estas dos imágenes."
    }
  ]
}

Modelos compatibles

A continuación se muestran los modelos de visión y lenguaje (VLM) actualmente compatibles con la plataforma:

Método de facturación

La entrada de imágenes de los modelos de visión y lenguaje se convertirá en Tokens y se calculará junto con el texto para determinar el coste de la llamada:
  • Las reglas de estimación de Tokens de imagen varían ligeramente según el modelo;
  • Los estándares de facturación detallados se pueden consultar en la página de descripción del modelo correspondiente.

Código de ejemplo para llamadas a la API

Descripción de una sola imagen

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.highwayapi.ai/openai")

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/cityscape.jpg"}},
                {"type": "text", "text": "Describe los principales edificios de la imagen."}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Análisis comparativo de múltiples imágenes

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://example.com/product1.jpg"}},
                {"type": "image_url", "image_url": {"url": "https://example.com/product2.jpg"}},
                {"type": "text", "text": "Compara las principales diferencias entre estos dos productos."}
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Preguntas frecuentes y notas

  • La resolución y la nitidez de la imagen afectan la precisión del reconocimiento del modelo; se recomienda usar fuentes de imagen claras.
  • La codificación Base64 genera un tamaño relativamente grande; se recomienda que las imágenes no superen 1MB.
  • Si encuentra algún problema, consulte la documentación para desarrolladores de la plataforma o envíe un ticket para obtener soporte.