> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Modelos de visión y lenguaje

export const VisionModels = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const INIT_DISPLAY_COUNT = 3;
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("vision-models");
      if (clientComponent && window.jiekouRemoteData.llmModels.status === 'loaded') {
        const modelList = window.jiekouRemoteData.llmModels.data.filter(model => {
          return (model.features || []).includes('vision');
        });
        let displayModels = modelList.slice(0, INIT_DISPLAY_COUNT).map(model => {
          return `<li><span class="model-id-item">${model.id}</span></li>`;
        }).join('');
        let showMoreButton = '';
        if (modelList.length > INIT_DISPLAY_COUNT) {
          showMoreButton = `<button id="show-more-vision-model-btn" style="margin-left: 32px; color: rgb(40 116 255)">展示更多</button>`;
        }
        clientComponent.innerHTML = `
          <ul>${displayModels}</ul>
          ${showMoreButton}
        `;
        document.getElementById('show-more-vision-model-btn')?.addEventListener('click', () => {
          clientComponent.innerHTML = `
            <ul>${modelList.map(model => {
            return `<li><span class="model-id-item">${model.id}</span></li>`;
          }).join('')}</ul>
          `;
        });
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="vision-models"></div>;
  }
};

## 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

```json theme={null}
{
  "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

```json theme={null}
{
  "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)

```python theme={null}
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.

```json theme={null}
{
  "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:

<VisionModels />

## 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

```python theme={null}
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

```python theme={null}
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.
