Capítulo 12 · el modelo ahora puede ver
El contenido del mensaje es una lista:
[ text part, image part ]
Razonada en una sola pasada. Todo lo que sabes sobre prompting sigue aplicando — ahora sobre pixeles.
client.responses.create(model="gpt-5.4-nano", input=[{
"role": "user",
"content": [
{"type": "input_text", "text": question},
{"type": "input_image", "image_url": url},
],
}])
OpenAI descarga la URL por ti.
img = urllib.request.urlopen(url).read()
client.models.generate_content(
model="gemini-3.1-flash-lite",
contents=[
types.Part.from_bytes(data=img, mime_type="image/jpeg"),
question,
])El mismo mensaje multimodal; la instrucción + el manejo de la salida cambian.
Entrada multimodal = los mismos modelos con un mensaje más rico. Prompting, salida estructurada, grounding, todo sigue aplicando, sobre pixeles. Sigue: el modelo deja de leer imágenes y empieza a hacerlas.