Menu iconMenu icon
OpenAI API Biblia Volumen 2

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.