Analizar imágenes como input
Los modelos de OpenAI con capacidades de visión pueden procesar imágenes como entrada y analizarlas para extraer información, describir contenido o responder preguntas específicas sobre elementos visuales. Esta funcionalidad multimodal permite crear aplicaciones que combinan texto e imágenes de manera natural.
La API Responses de OpenAI proporciona tres métodos principales para incluir imágenes como entrada en las solicitudes: mediante URLs públicas, archivos codificados en Base64, o identificadores de archivos subidos previamente.
Análisis mediante URL de imagen
El método más directo para analizar una imagen es proporcionar una URL pública que apunte al archivo de imagen. Este enfoque es ideal cuando las imágenes están alojadas en servidores web accesibles:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1-mini",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "¿Qué elementos puedes identificar en esta imagen?"},
{
"type": "input_image",
"image_url": "https://ejemplo.com/mi-imagen.jpg"
}
]
}]
)
print(response.output_text)
Este método es eficiente para imágenes que ya están disponibles online, ya que no requiere procesamiento adicional de archivos locales.
Ejemplo completo:
Análisis mediante codificación Base64
Para imágenes almacenadas localmente, puedes convertirlas a formato Base64 y incluirlas directamente en la solicitud:
import base64
from openai import OpenAI
client = OpenAI()
def encode_image(image_path):
"""Convierte una imagen local a formato Base64"""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# Cargar y codificar la imagen
image_path = "documento_escaneado.jpg"
base64_image = encode_image(image_path)
response = client.responses.create(
model="gpt-4.1",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Extrae el texto de este documento"},
{
"type": "input_image",
"image_url": f"data:image/jpeg;base64,{base64_image}"
}
]
}]
)
print(response.output_text)
La codificación Base64 es útil cuando trabajas con imágenes sensibles que no pueden subirse a servidores externos o cuando necesitas procesar archivos temporales.
Ejemplo pasándole el logo de openai al propio openai a ver si se da cuenta o no:
Análisis mediante Files API
Para aplicaciones que manejan múltiples imágenes o requieren reutilización de archivos, puedes usar la Files API para subir imágenes y referenciarlas por su ID:
from openai import OpenAI
client = OpenAI()
def upload_image(file_path):
"""Sube una imagen usando la Files API"""
with open(file_path, "rb") as file_content:
result = client.files.create(
file=file_content,
purpose="vision"
)
return result.id
# Subir la imagen
file_id = upload_image("grafico_ventas.png")
response = client.responses.create(
model="gpt-4.1-mini",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Analiza las tendencias mostradas en este gráfico"},
{
"type": "input_image",
"file_id": file_id
}
]
}]
)
print(response.output_text)
Ejemplo usando la API Files:
Configuración del nivel de detalle
El parámetro detail permite controlar la precisión del análisis y optimizar el consumo de tokens según las necesidades específicas:
response = client.responses.create(
model="gpt-4.1-mini",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Describe los colores predominantes"},
{
"type": "input_image",
"image_url": "https://ejemplo.com/paisaje.jpg",
"detail": "low" # Análisis rápido y económico
}
]
}]
)
El nivel "low" procesa la imagen con un presupuesto fijo de 85 tokens, ideal para análisis generales como identificar formas o colores dominantes. El nivel "high" proporciona mayor precisión para tareas que requieren detectar texto pequeño o elementos detallados.
Análisis de múltiples imágenes
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Puedes incluir varias imágenes en una sola solicitud para realizar comparaciones o análisis conjunto:
response = client.responses.create(
model="gpt-4.1",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Compara estas dos facturas y encuentra las diferencias"},
{
"type": "input_image",
"image_url": "data:image/jpeg;base64,{base64_factura1}"
},
{
"type": "input_image",
"image_url": "data:image/jpeg;base64,{base64_factura2}"
}
]
}]
)
Casos de uso prácticos
El análisis de imágenes resulta especialmente valioso en escenarios como:
- Extracción de texto: Digitalizar documentos escaneados, facturas o formularios
- Análisis de contenido: Describir productos en catálogos o identificar elementos en fotografías
- Verificación de calidad: Detectar defectos en imágenes de productos o procesos industriales
- Interpretación de gráficos: Extraer datos de charts, diagramas o visualizaciones
# Ejemplo: Análisis de factura
response = client.responses.create(
model="gpt-4.1-mini",
input=[{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Extrae la información clave: fecha, importe total, número de factura y empresa emisora"
},
{
"type": "input_image",
"image_url": f"data:image/jpeg;base64,{factura_base64}",
"detail": "high"
}
]
}]
)
# El modelo devuelve la información estructurada
print(response.output_text)
Requisitos y limitaciones
Las imágenes deben cumplir requisitos específicos para ser procesadas correctamente:
- Formatos soportados: PNG, JPEG, WEBP y GIF no animado
- Tamaño máximo: 50 MB por solicitud total, hasta 500 imágenes individuales
- Calidad: Imágenes claras sin marcas de agua, contenido apropiado y suficiente resolución
El modelo presenta limitaciones en ciertos escenarios como imágenes médicas especializadas, texto en alfabetos no latinos, elementos rotados o tareas que requieren localización espacial precisa. Para obtener mejores resultados, asegúrate de que las imágenes tengan buena iluminación y que el texto sea legible a tamaño normal.
Aprendizajes de esta lección
- Comprender cómo los modelos de OpenAI pueden procesar imágenes como input.
- Aprender a enviar imágenes mediante URL pública, codificación Base64 y Files API.
- Configurar el nivel de detalle para optimizar el análisis de imágenes.
- Manejar múltiples imágenes en una sola solicitud para análisis comparativos.
- Conocer casos prácticos y limitaciones del análisis de imágenes con OpenAI.
Completa OpenAI y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs