Capítulo 1: Generación de Imágenes y Visión con Modelos de OpenAI
Ejercicios Prácticos — Capítulo 1
Ejercicio 1: Generar una Imagen a partir de un Prompt de Texto Usando DALL·E 3
Tarea:
Crear un asistente con capacidades de generación de imágenes y usarlo para generar una imagen de "una cabaña acogedora en la montaña al amanecer en estilo acuarela".
Solución:
import openai
import time
# Create an assistant with DALL·E image generation tool
assistant = openai.beta.assistants.create(
name="Image Generator",
instructions="You generate artistic images based on user prompts.",
model="gpt-4o",
tools=[{"type": "image_generation"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add user message with prompt
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Create an image of a cozy mountain cabin at sunrise in watercolor style."
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for completion
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Retrieve response
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Image URL:", content.image_file.url)
Ejercicio 2: Editar una Imagen Existente Usando Inpainting
Tarea:
Sube una imagen PNG y pide a DALL·E que reemplace "un perro en la imagen por un gato."
Solución:
# Upload an image for editing (with transparent section or masked area)
image_file = openai.files.create(
file=open("dog_scene.png", "rb"), # Image with masked-out dog area
purpose="image_edit"
)
# Create the assistant
assistant = openai.beta.assistants.create(
name="Editor",
instructions="You edit uploaded images based on user commands.",
model="gpt-4o",
tools=[{"type": "image_editing"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add edit request
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Replace the dog in this image with a gray cat sitting calmly.",
file_ids=[image_file.id]
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for run to complete
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Get the edited image
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Edited Image URL:", content.image_file.url)
Ejercicio 3: Análisis de Imágenes Basado en Visión con GPT-4o
Tarea:
Sube una imagen de un gráfico circular y pide a GPT-4o que resuma la conclusión principal del mismo.
Solución:
# Upload a pie chart image
image_file = openai.files.create(
file=open("company_expenses_piechart.png", "rb"),
purpose="vision"
)
# Send image + text prompt to GPT-4o
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize the key insights from this pie chart."},
{"type": "image_url", "image_url": {"url": f"file-{image_file.id}"}}
]
}
],
max_tokens=300,
temperature=0.4
)
print("Summary:", response["choices"][0]["message"]["content"])
Ejercicio 4: Comparación Multimodal Entre Dos Diseños
Tarea:
Sube dos maquetas de diseño de interfaz de usuario y pide a GPT-4o que las compare y sugiera mejoras.
Solución:
# Upload the two UI designs
file_1 = openai.files.create(file=open("design_A.png", "rb"), purpose="vision")
file_2 = openai.files.create(file=open("design_B.png", "rb"), purpose="vision")
# Send both images with prompt
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Compare these two app designs and suggest improvements for the second one."},
{"type": "image_url", "image_url": {"url": f"file-{file_1.id}"}},
{"type": "image_url", "image_url": {"url": f"file-{file_2.id}"}}
]
}
],
max_tokens=500
)
print("Comparison Summary:", response["choices"][0]["message"]["content"])
Estos ejercicios te brindaron experiencia práctica con:
- Generación de imágenes usando DALL·E 3
- Edición e inpainting de imágenes con lenguaje natural
- Razonamiento y análisis visual con GPT-4o
- Entrada multimodal combinando texto e imágenes múltiples
Ahora tienes las herramientas para construir aplicaciones visuales atractivas—ya sea que estés creando arte, automatizando la generación de contenido, analizando datos o mejorando la accesibilidad.
Ejercicios Prácticos — Capítulo 1
Ejercicio 1: Generar una Imagen a partir de un Prompt de Texto Usando DALL·E 3
Tarea:
Crear un asistente con capacidades de generación de imágenes y usarlo para generar una imagen de "una cabaña acogedora en la montaña al amanecer en estilo acuarela".
Solución:
import openai
import time
# Create an assistant with DALL·E image generation tool
assistant = openai.beta.assistants.create(
name="Image Generator",
instructions="You generate artistic images based on user prompts.",
model="gpt-4o",
tools=[{"type": "image_generation"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add user message with prompt
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Create an image of a cozy mountain cabin at sunrise in watercolor style."
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for completion
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Retrieve response
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Image URL:", content.image_file.url)
Ejercicio 2: Editar una Imagen Existente Usando Inpainting
Tarea:
Sube una imagen PNG y pide a DALL·E que reemplace "un perro en la imagen por un gato."
Solución:
# Upload an image for editing (with transparent section or masked area)
image_file = openai.files.create(
file=open("dog_scene.png", "rb"), # Image with masked-out dog area
purpose="image_edit"
)
# Create the assistant
assistant = openai.beta.assistants.create(
name="Editor",
instructions="You edit uploaded images based on user commands.",
model="gpt-4o",
tools=[{"type": "image_editing"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add edit request
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Replace the dog in this image with a gray cat sitting calmly.",
file_ids=[image_file.id]
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for run to complete
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Get the edited image
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Edited Image URL:", content.image_file.url)
Ejercicio 3: Análisis de Imágenes Basado en Visión con GPT-4o
Tarea:
Sube una imagen de un gráfico circular y pide a GPT-4o que resuma la conclusión principal del mismo.
Solución:
# Upload a pie chart image
image_file = openai.files.create(
file=open("company_expenses_piechart.png", "rb"),
purpose="vision"
)
# Send image + text prompt to GPT-4o
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize the key insights from this pie chart."},
{"type": "image_url", "image_url": {"url": f"file-{image_file.id}"}}
]
}
],
max_tokens=300,
temperature=0.4
)
print("Summary:", response["choices"][0]["message"]["content"])
Ejercicio 4: Comparación Multimodal Entre Dos Diseños
Tarea:
Sube dos maquetas de diseño de interfaz de usuario y pide a GPT-4o que las compare y sugiera mejoras.
Solución:
# Upload the two UI designs
file_1 = openai.files.create(file=open("design_A.png", "rb"), purpose="vision")
file_2 = openai.files.create(file=open("design_B.png", "rb"), purpose="vision")
# Send both images with prompt
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Compare these two app designs and suggest improvements for the second one."},
{"type": "image_url", "image_url": {"url": f"file-{file_1.id}"}},
{"type": "image_url", "image_url": {"url": f"file-{file_2.id}"}}
]
}
],
max_tokens=500
)
print("Comparison Summary:", response["choices"][0]["message"]["content"])
Estos ejercicios te brindaron experiencia práctica con:
- Generación de imágenes usando DALL·E 3
- Edición e inpainting de imágenes con lenguaje natural
- Razonamiento y análisis visual con GPT-4o
- Entrada multimodal combinando texto e imágenes múltiples
Ahora tienes las herramientas para construir aplicaciones visuales atractivas—ya sea que estés creando arte, automatizando la generación de contenido, analizando datos o mejorando la accesibilidad.
Ejercicios Prácticos — Capítulo 1
Ejercicio 1: Generar una Imagen a partir de un Prompt de Texto Usando DALL·E 3
Tarea:
Crear un asistente con capacidades de generación de imágenes y usarlo para generar una imagen de "una cabaña acogedora en la montaña al amanecer en estilo acuarela".
Solución:
import openai
import time
# Create an assistant with DALL·E image generation tool
assistant = openai.beta.assistants.create(
name="Image Generator",
instructions="You generate artistic images based on user prompts.",
model="gpt-4o",
tools=[{"type": "image_generation"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add user message with prompt
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Create an image of a cozy mountain cabin at sunrise in watercolor style."
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for completion
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Retrieve response
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Image URL:", content.image_file.url)
Ejercicio 2: Editar una Imagen Existente Usando Inpainting
Tarea:
Sube una imagen PNG y pide a DALL·E que reemplace "un perro en la imagen por un gato."
Solución:
# Upload an image for editing (with transparent section or masked area)
image_file = openai.files.create(
file=open("dog_scene.png", "rb"), # Image with masked-out dog area
purpose="image_edit"
)
# Create the assistant
assistant = openai.beta.assistants.create(
name="Editor",
instructions="You edit uploaded images based on user commands.",
model="gpt-4o",
tools=[{"type": "image_editing"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add edit request
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Replace the dog in this image with a gray cat sitting calmly.",
file_ids=[image_file.id]
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for run to complete
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Get the edited image
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Edited Image URL:", content.image_file.url)
Ejercicio 3: Análisis de Imágenes Basado en Visión con GPT-4o
Tarea:
Sube una imagen de un gráfico circular y pide a GPT-4o que resuma la conclusión principal del mismo.
Solución:
# Upload a pie chart image
image_file = openai.files.create(
file=open("company_expenses_piechart.png", "rb"),
purpose="vision"
)
# Send image + text prompt to GPT-4o
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize the key insights from this pie chart."},
{"type": "image_url", "image_url": {"url": f"file-{image_file.id}"}}
]
}
],
max_tokens=300,
temperature=0.4
)
print("Summary:", response["choices"][0]["message"]["content"])
Ejercicio 4: Comparación Multimodal Entre Dos Diseños
Tarea:
Sube dos maquetas de diseño de interfaz de usuario y pide a GPT-4o que las compare y sugiera mejoras.
Solución:
# Upload the two UI designs
file_1 = openai.files.create(file=open("design_A.png", "rb"), purpose="vision")
file_2 = openai.files.create(file=open("design_B.png", "rb"), purpose="vision")
# Send both images with prompt
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Compare these two app designs and suggest improvements for the second one."},
{"type": "image_url", "image_url": {"url": f"file-{file_1.id}"}},
{"type": "image_url", "image_url": {"url": f"file-{file_2.id}"}}
]
}
],
max_tokens=500
)
print("Comparison Summary:", response["choices"][0]["message"]["content"])
Estos ejercicios te brindaron experiencia práctica con:
- Generación de imágenes usando DALL·E 3
- Edición e inpainting de imágenes con lenguaje natural
- Razonamiento y análisis visual con GPT-4o
- Entrada multimodal combinando texto e imágenes múltiples
Ahora tienes las herramientas para construir aplicaciones visuales atractivas—ya sea que estés creando arte, automatizando la generación de contenido, analizando datos o mejorando la accesibilidad.
Ejercicios Prácticos — Capítulo 1
Ejercicio 1: Generar una Imagen a partir de un Prompt de Texto Usando DALL·E 3
Tarea:
Crear un asistente con capacidades de generación de imágenes y usarlo para generar una imagen de "una cabaña acogedora en la montaña al amanecer en estilo acuarela".
Solución:
import openai
import time
# Create an assistant with DALL·E image generation tool
assistant = openai.beta.assistants.create(
name="Image Generator",
instructions="You generate artistic images based on user prompts.",
model="gpt-4o",
tools=[{"type": "image_generation"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add user message with prompt
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Create an image of a cozy mountain cabin at sunrise in watercolor style."
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for completion
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Retrieve response
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Image URL:", content.image_file.url)
Ejercicio 2: Editar una Imagen Existente Usando Inpainting
Tarea:
Sube una imagen PNG y pide a DALL·E que reemplace "un perro en la imagen por un gato."
Solución:
# Upload an image for editing (with transparent section or masked area)
image_file = openai.files.create(
file=open("dog_scene.png", "rb"), # Image with masked-out dog area
purpose="image_edit"
)
# Create the assistant
assistant = openai.beta.assistants.create(
name="Editor",
instructions="You edit uploaded images based on user commands.",
model="gpt-4o",
tools=[{"type": "image_editing"}]
)
# Create a thread
thread = openai.beta.threads.create()
# Add edit request
openai.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Replace the dog in this image with a gray cat sitting calmly.",
file_ids=[image_file.id]
)
# Run the assistant
run = openai.beta.threads.runs.create(
assistant_id=assistant.id,
thread_id=thread.id
)
# Wait for run to complete
while True:
run_status = openai.beta.threads.runs.retrieve(run.id, thread_id=thread.id)
if run_status.status == "completed":
break
time.sleep(1)
# Get the edited image
messages = openai.beta.threads.messages.list(thread_id=thread.id)
for msg in messages.data:
for content in msg.content:
if content.type == "image_file":
print("Edited Image URL:", content.image_file.url)
Ejercicio 3: Análisis de Imágenes Basado en Visión con GPT-4o
Tarea:
Sube una imagen de un gráfico circular y pide a GPT-4o que resuma la conclusión principal del mismo.
Solución:
# Upload a pie chart image
image_file = openai.files.create(
file=open("company_expenses_piechart.png", "rb"),
purpose="vision"
)
# Send image + text prompt to GPT-4o
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize the key insights from this pie chart."},
{"type": "image_url", "image_url": {"url": f"file-{image_file.id}"}}
]
}
],
max_tokens=300,
temperature=0.4
)
print("Summary:", response["choices"][0]["message"]["content"])
Ejercicio 4: Comparación Multimodal Entre Dos Diseños
Tarea:
Sube dos maquetas de diseño de interfaz de usuario y pide a GPT-4o que las compare y sugiera mejoras.
Solución:
# Upload the two UI designs
file_1 = openai.files.create(file=open("design_A.png", "rb"), purpose="vision")
file_2 = openai.files.create(file=open("design_B.png", "rb"), purpose="vision")
# Send both images with prompt
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Compare these two app designs and suggest improvements for the second one."},
{"type": "image_url", "image_url": {"url": f"file-{file_1.id}"}},
{"type": "image_url", "image_url": {"url": f"file-{file_2.id}"}}
]
}
],
max_tokens=500
)
print("Comparison Summary:", response["choices"][0]["message"]["content"])
Estos ejercicios te brindaron experiencia práctica con:
- Generación de imágenes usando DALL·E 3
- Edición e inpainting de imágenes con lenguaje natural
- Razonamiento y análisis visual con GPT-4o
- Entrada multimodal combinando texto e imágenes múltiples
Ahora tienes las herramientas para construir aplicaciones visuales atractivas—ya sea que estés creando arte, automatizando la generación de contenido, analizando datos o mejorando la accesibilidad.