Menu iconMenu icon
OpenAI API Biblia Volumen 1

Capítulo 3: Entendiendo y Comparando Modelos de OpenAI

Ejercicios Prácticos — Capítulo 3

¡Felicitaciones por completar el Capítulo 3! Ahora es momento de practicar lo que has aprendido. Estos ejercicios te ayudarán a solidificar tu comprensión de diferentes modelos, sus capacidades, limitaciones, gestión de tokens y consideraciones de precio.

Ejercicio 1: Compara las Respuestas de GPT-3.5-turbo y GPT-4o

Envía la misma pregunta tanto a GPT-3.5-turbo como a GPT-4o, y observa las diferencias en calidad y detalle de las respuestas.

Tarea:

Prompt: "Explica brevemente el concepto de gravedad."

💡 Solución (Ejemplo en Python):

import openai
import os

openai.api_key = os.getenv("OPENAI_API_KEY")

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    response = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "user", "content": "Briefly explain the concept of gravity."}
        ]
    )
    print(f"\nResponse from {model}:")
    print(response["choices"][0]["message"]["content"])

Revisa la salida de cada modelo y toma nota de las diferencias en claridad, profundidad y precisión.

Ejercicio 2: Prueba de Conteo de Tokens

Escribe un script corto en Python para verificar el número de tokens en un prompt dado, usando la biblioteca tiktoken.

Tarea:

Prompt: "¿Puedes proporcionar tres consejos para mejorar la productividad en la programación?"

💡 Solución:

Primero, asegúrate de que tiktoken esté instalado:

pip install tiktoken

Luego ejecuta el script:

import tiktoken

encoding = tiktoken.encoding_for_model("gpt-4o")
prompt = "Can you provide three tips for improving coding productivity?"

tokens = encoding.encode(prompt)
print(f"Total tokens in prompt: {len(tokens)}")

Ejercicio 3: Experimenta con o3-mini-high

Usa el modelo o3-mini-high para responder rápidamente a un comando sencillo.

Tarea:

Prompt: "Enumera tres lenguajes de programación populares."

💡 Solución:

response = openai.ChatCompletion.create(
    model="o3-mini-high",
    messages=[
        {"role": "user", "content": "List three popular programming languages."}
    ]
)

print(response["choices"][0]["message"]["content"])

Verifica la velocidad y simplicidad de la respuesta. Ideal para autocompletado o consultas rápidas.

Ejercicio 4: Analiza la Eficiencia de Costos

Estima el costo mensual si tu aplicación usa GPT-4o y maneja aproximadamente 2 millones de tokens por mes.

Tarea:

Precio de GPT-4o: aproximadamente $5 por millón de tokens.

💡 Solución (Cálculo Manual):

  • Tokens mensuales: 2 millones
  • Costo por millón de tokens: $5
  • Costo mensual total:2 millones de tokens×$5/millón de tokens=$102 \text{ millones de tokens} \times \$5/\text{millón de tokens} = \$10 por mes.

(No se necesita solución en código, pero es crucial para fines presupuestarios.)

Ejercicio 5: Implementa Lógica de Selección de Modelo

Escribe una función en Python que seleccione automáticamente entre GPT-4o-mini y GPT-4o según la complejidad de la tarea.

Tarea:

Usa GPT-4o-mini para tareas simples y GPT-4o para consultas complejas.

💡 Solución:

def select_model(prompt_complexity):
    if prompt_complexity == "simple":
        return "gpt-4o-mini"
    else:
        return "gpt-4o"

def get_response(prompt, complexity):
    model = select_model(complexity)
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    return response["choices"][0]["message"]["content"]

# Example usage:
simple_prompt = "What day comes after Monday?"
complex_prompt = "Explain quantum computing in simple terms."

print("Simple:", get_response(simple_prompt, "simple"))
print("\nComplex:", get_response(complex_prompt, "complex"))

Esta lógica te ayuda a gestionar eficientemente los costos y el rendimiento.

✅ Ejercicio 6: Manejo de Límites de Tokens

Demuestra cómo manejar los errores de límite de tokens de manera elegante mediante la captura de excepciones en Python.

Tarea:

Envía intencionalmente un prompt de gran tamaño a gpt-3.5-turbo para provocar un error de límite de tokens.

💡 Solución:

try:
    large_text = "word " * 50000  # deliberately oversized prompt
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": large_text}]
    )
    print(response["choices"][0]["message"]["content"])

except openai.error.InvalidRequestError as e:
    print("Token limit exceeded. Please shorten your prompt.")
    print("Error details:", e)

El manejo elegante de errores mejora la experiencia y estabilidad del usuario.

Ejercicio 7: Medición de Rendimiento

Mide y compara la latencia de respuesta de la API entre GPT-3.5-turbo y GPT-4o.

Tarea:

Utiliza el módulo time de Python para medir la velocidad de ejecución.

💡 Solución:

import time

def measure_latency(model, prompt):
    start_time = time.time()
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    end_time = time.time()
    latency = end_time - start_time
    return latency, response["choices"][0]["message"]["content"]

prompt = "What is artificial intelligence?"

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    latency, content = measure_latency(model, prompt)
    print(f"\nModel: {model}")
    print(f"Latency: {latency:.2f} seconds")
    print(f"Response: {content}")

Comprender las diferencias de latencia te ayuda a seleccionar el modelo adecuado para tus necesidades.

Si has completado con éxito estos ejercicios, has dominado los conceptos clave sobre la selección de modelos de OpenAI, el análisis de rendimiento, la estimación de costos y la gestión de tokens. Ahora estás completamente preparado para aplicar con confianza estos conocimientos en proyectos de IA del mundo real.

Ejercicios Prácticos — Capítulo 3

¡Felicitaciones por completar el Capítulo 3! Ahora es momento de practicar lo que has aprendido. Estos ejercicios te ayudarán a solidificar tu comprensión de diferentes modelos, sus capacidades, limitaciones, gestión de tokens y consideraciones de precio.

Ejercicio 1: Compara las Respuestas de GPT-3.5-turbo y GPT-4o

Envía la misma pregunta tanto a GPT-3.5-turbo como a GPT-4o, y observa las diferencias en calidad y detalle de las respuestas.

Tarea:

Prompt: "Explica brevemente el concepto de gravedad."

💡 Solución (Ejemplo en Python):

import openai
import os

openai.api_key = os.getenv("OPENAI_API_KEY")

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    response = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "user", "content": "Briefly explain the concept of gravity."}
        ]
    )
    print(f"\nResponse from {model}:")
    print(response["choices"][0]["message"]["content"])

Revisa la salida de cada modelo y toma nota de las diferencias en claridad, profundidad y precisión.

Ejercicio 2: Prueba de Conteo de Tokens

Escribe un script corto en Python para verificar el número de tokens en un prompt dado, usando la biblioteca tiktoken.

Tarea:

Prompt: "¿Puedes proporcionar tres consejos para mejorar la productividad en la programación?"

💡 Solución:

Primero, asegúrate de que tiktoken esté instalado:

pip install tiktoken

Luego ejecuta el script:

import tiktoken

encoding = tiktoken.encoding_for_model("gpt-4o")
prompt = "Can you provide three tips for improving coding productivity?"

tokens = encoding.encode(prompt)
print(f"Total tokens in prompt: {len(tokens)}")

Ejercicio 3: Experimenta con o3-mini-high

Usa el modelo o3-mini-high para responder rápidamente a un comando sencillo.

Tarea:

Prompt: "Enumera tres lenguajes de programación populares."

💡 Solución:

response = openai.ChatCompletion.create(
    model="o3-mini-high",
    messages=[
        {"role": "user", "content": "List three popular programming languages."}
    ]
)

print(response["choices"][0]["message"]["content"])

Verifica la velocidad y simplicidad de la respuesta. Ideal para autocompletado o consultas rápidas.

Ejercicio 4: Analiza la Eficiencia de Costos

Estima el costo mensual si tu aplicación usa GPT-4o y maneja aproximadamente 2 millones de tokens por mes.

Tarea:

Precio de GPT-4o: aproximadamente $5 por millón de tokens.

💡 Solución (Cálculo Manual):

  • Tokens mensuales: 2 millones
  • Costo por millón de tokens: $5
  • Costo mensual total:2 millones de tokens×$5/millón de tokens=$102 \text{ millones de tokens} \times \$5/\text{millón de tokens} = \$10 por mes.

(No se necesita solución en código, pero es crucial para fines presupuestarios.)

Ejercicio 5: Implementa Lógica de Selección de Modelo

Escribe una función en Python que seleccione automáticamente entre GPT-4o-mini y GPT-4o según la complejidad de la tarea.

Tarea:

Usa GPT-4o-mini para tareas simples y GPT-4o para consultas complejas.

💡 Solución:

def select_model(prompt_complexity):
    if prompt_complexity == "simple":
        return "gpt-4o-mini"
    else:
        return "gpt-4o"

def get_response(prompt, complexity):
    model = select_model(complexity)
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    return response["choices"][0]["message"]["content"]

# Example usage:
simple_prompt = "What day comes after Monday?"
complex_prompt = "Explain quantum computing in simple terms."

print("Simple:", get_response(simple_prompt, "simple"))
print("\nComplex:", get_response(complex_prompt, "complex"))

Esta lógica te ayuda a gestionar eficientemente los costos y el rendimiento.

✅ Ejercicio 6: Manejo de Límites de Tokens

Demuestra cómo manejar los errores de límite de tokens de manera elegante mediante la captura de excepciones en Python.

Tarea:

Envía intencionalmente un prompt de gran tamaño a gpt-3.5-turbo para provocar un error de límite de tokens.

💡 Solución:

try:
    large_text = "word " * 50000  # deliberately oversized prompt
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": large_text}]
    )
    print(response["choices"][0]["message"]["content"])

except openai.error.InvalidRequestError as e:
    print("Token limit exceeded. Please shorten your prompt.")
    print("Error details:", e)

El manejo elegante de errores mejora la experiencia y estabilidad del usuario.

Ejercicio 7: Medición de Rendimiento

Mide y compara la latencia de respuesta de la API entre GPT-3.5-turbo y GPT-4o.

Tarea:

Utiliza el módulo time de Python para medir la velocidad de ejecución.

💡 Solución:

import time

def measure_latency(model, prompt):
    start_time = time.time()
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    end_time = time.time()
    latency = end_time - start_time
    return latency, response["choices"][0]["message"]["content"]

prompt = "What is artificial intelligence?"

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    latency, content = measure_latency(model, prompt)
    print(f"\nModel: {model}")
    print(f"Latency: {latency:.2f} seconds")
    print(f"Response: {content}")

Comprender las diferencias de latencia te ayuda a seleccionar el modelo adecuado para tus necesidades.

Si has completado con éxito estos ejercicios, has dominado los conceptos clave sobre la selección de modelos de OpenAI, el análisis de rendimiento, la estimación de costos y la gestión de tokens. Ahora estás completamente preparado para aplicar con confianza estos conocimientos en proyectos de IA del mundo real.

Ejercicios Prácticos — Capítulo 3

¡Felicitaciones por completar el Capítulo 3! Ahora es momento de practicar lo que has aprendido. Estos ejercicios te ayudarán a solidificar tu comprensión de diferentes modelos, sus capacidades, limitaciones, gestión de tokens y consideraciones de precio.

Ejercicio 1: Compara las Respuestas de GPT-3.5-turbo y GPT-4o

Envía la misma pregunta tanto a GPT-3.5-turbo como a GPT-4o, y observa las diferencias en calidad y detalle de las respuestas.

Tarea:

Prompt: "Explica brevemente el concepto de gravedad."

💡 Solución (Ejemplo en Python):

import openai
import os

openai.api_key = os.getenv("OPENAI_API_KEY")

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    response = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "user", "content": "Briefly explain the concept of gravity."}
        ]
    )
    print(f"\nResponse from {model}:")
    print(response["choices"][0]["message"]["content"])

Revisa la salida de cada modelo y toma nota de las diferencias en claridad, profundidad y precisión.

Ejercicio 2: Prueba de Conteo de Tokens

Escribe un script corto en Python para verificar el número de tokens en un prompt dado, usando la biblioteca tiktoken.

Tarea:

Prompt: "¿Puedes proporcionar tres consejos para mejorar la productividad en la programación?"

💡 Solución:

Primero, asegúrate de que tiktoken esté instalado:

pip install tiktoken

Luego ejecuta el script:

import tiktoken

encoding = tiktoken.encoding_for_model("gpt-4o")
prompt = "Can you provide three tips for improving coding productivity?"

tokens = encoding.encode(prompt)
print(f"Total tokens in prompt: {len(tokens)}")

Ejercicio 3: Experimenta con o3-mini-high

Usa el modelo o3-mini-high para responder rápidamente a un comando sencillo.

Tarea:

Prompt: "Enumera tres lenguajes de programación populares."

💡 Solución:

response = openai.ChatCompletion.create(
    model="o3-mini-high",
    messages=[
        {"role": "user", "content": "List three popular programming languages."}
    ]
)

print(response["choices"][0]["message"]["content"])

Verifica la velocidad y simplicidad de la respuesta. Ideal para autocompletado o consultas rápidas.

Ejercicio 4: Analiza la Eficiencia de Costos

Estima el costo mensual si tu aplicación usa GPT-4o y maneja aproximadamente 2 millones de tokens por mes.

Tarea:

Precio de GPT-4o: aproximadamente $5 por millón de tokens.

💡 Solución (Cálculo Manual):

  • Tokens mensuales: 2 millones
  • Costo por millón de tokens: $5
  • Costo mensual total:2 millones de tokens×$5/millón de tokens=$102 \text{ millones de tokens} \times \$5/\text{millón de tokens} = \$10 por mes.

(No se necesita solución en código, pero es crucial para fines presupuestarios.)

Ejercicio 5: Implementa Lógica de Selección de Modelo

Escribe una función en Python que seleccione automáticamente entre GPT-4o-mini y GPT-4o según la complejidad de la tarea.

Tarea:

Usa GPT-4o-mini para tareas simples y GPT-4o para consultas complejas.

💡 Solución:

def select_model(prompt_complexity):
    if prompt_complexity == "simple":
        return "gpt-4o-mini"
    else:
        return "gpt-4o"

def get_response(prompt, complexity):
    model = select_model(complexity)
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    return response["choices"][0]["message"]["content"]

# Example usage:
simple_prompt = "What day comes after Monday?"
complex_prompt = "Explain quantum computing in simple terms."

print("Simple:", get_response(simple_prompt, "simple"))
print("\nComplex:", get_response(complex_prompt, "complex"))

Esta lógica te ayuda a gestionar eficientemente los costos y el rendimiento.

✅ Ejercicio 6: Manejo de Límites de Tokens

Demuestra cómo manejar los errores de límite de tokens de manera elegante mediante la captura de excepciones en Python.

Tarea:

Envía intencionalmente un prompt de gran tamaño a gpt-3.5-turbo para provocar un error de límite de tokens.

💡 Solución:

try:
    large_text = "word " * 50000  # deliberately oversized prompt
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": large_text}]
    )
    print(response["choices"][0]["message"]["content"])

except openai.error.InvalidRequestError as e:
    print("Token limit exceeded. Please shorten your prompt.")
    print("Error details:", e)

El manejo elegante de errores mejora la experiencia y estabilidad del usuario.

Ejercicio 7: Medición de Rendimiento

Mide y compara la latencia de respuesta de la API entre GPT-3.5-turbo y GPT-4o.

Tarea:

Utiliza el módulo time de Python para medir la velocidad de ejecución.

💡 Solución:

import time

def measure_latency(model, prompt):
    start_time = time.time()
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    end_time = time.time()
    latency = end_time - start_time
    return latency, response["choices"][0]["message"]["content"]

prompt = "What is artificial intelligence?"

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    latency, content = measure_latency(model, prompt)
    print(f"\nModel: {model}")
    print(f"Latency: {latency:.2f} seconds")
    print(f"Response: {content}")

Comprender las diferencias de latencia te ayuda a seleccionar el modelo adecuado para tus necesidades.

Si has completado con éxito estos ejercicios, has dominado los conceptos clave sobre la selección de modelos de OpenAI, el análisis de rendimiento, la estimación de costos y la gestión de tokens. Ahora estás completamente preparado para aplicar con confianza estos conocimientos en proyectos de IA del mundo real.

Ejercicios Prácticos — Capítulo 3

¡Felicitaciones por completar el Capítulo 3! Ahora es momento de practicar lo que has aprendido. Estos ejercicios te ayudarán a solidificar tu comprensión de diferentes modelos, sus capacidades, limitaciones, gestión de tokens y consideraciones de precio.

Ejercicio 1: Compara las Respuestas de GPT-3.5-turbo y GPT-4o

Envía la misma pregunta tanto a GPT-3.5-turbo como a GPT-4o, y observa las diferencias en calidad y detalle de las respuestas.

Tarea:

Prompt: "Explica brevemente el concepto de gravedad."

💡 Solución (Ejemplo en Python):

import openai
import os

openai.api_key = os.getenv("OPENAI_API_KEY")

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    response = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "user", "content": "Briefly explain the concept of gravity."}
        ]
    )
    print(f"\nResponse from {model}:")
    print(response["choices"][0]["message"]["content"])

Revisa la salida de cada modelo y toma nota de las diferencias en claridad, profundidad y precisión.

Ejercicio 2: Prueba de Conteo de Tokens

Escribe un script corto en Python para verificar el número de tokens en un prompt dado, usando la biblioteca tiktoken.

Tarea:

Prompt: "¿Puedes proporcionar tres consejos para mejorar la productividad en la programación?"

💡 Solución:

Primero, asegúrate de que tiktoken esté instalado:

pip install tiktoken

Luego ejecuta el script:

import tiktoken

encoding = tiktoken.encoding_for_model("gpt-4o")
prompt = "Can you provide three tips for improving coding productivity?"

tokens = encoding.encode(prompt)
print(f"Total tokens in prompt: {len(tokens)}")

Ejercicio 3: Experimenta con o3-mini-high

Usa el modelo o3-mini-high para responder rápidamente a un comando sencillo.

Tarea:

Prompt: "Enumera tres lenguajes de programación populares."

💡 Solución:

response = openai.ChatCompletion.create(
    model="o3-mini-high",
    messages=[
        {"role": "user", "content": "List three popular programming languages."}
    ]
)

print(response["choices"][0]["message"]["content"])

Verifica la velocidad y simplicidad de la respuesta. Ideal para autocompletado o consultas rápidas.

Ejercicio 4: Analiza la Eficiencia de Costos

Estima el costo mensual si tu aplicación usa GPT-4o y maneja aproximadamente 2 millones de tokens por mes.

Tarea:

Precio de GPT-4o: aproximadamente $5 por millón de tokens.

💡 Solución (Cálculo Manual):

  • Tokens mensuales: 2 millones
  • Costo por millón de tokens: $5
  • Costo mensual total:2 millones de tokens×$5/millón de tokens=$102 \text{ millones de tokens} \times \$5/\text{millón de tokens} = \$10 por mes.

(No se necesita solución en código, pero es crucial para fines presupuestarios.)

Ejercicio 5: Implementa Lógica de Selección de Modelo

Escribe una función en Python que seleccione automáticamente entre GPT-4o-mini y GPT-4o según la complejidad de la tarea.

Tarea:

Usa GPT-4o-mini para tareas simples y GPT-4o para consultas complejas.

💡 Solución:

def select_model(prompt_complexity):
    if prompt_complexity == "simple":
        return "gpt-4o-mini"
    else:
        return "gpt-4o"

def get_response(prompt, complexity):
    model = select_model(complexity)
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    return response["choices"][0]["message"]["content"]

# Example usage:
simple_prompt = "What day comes after Monday?"
complex_prompt = "Explain quantum computing in simple terms."

print("Simple:", get_response(simple_prompt, "simple"))
print("\nComplex:", get_response(complex_prompt, "complex"))

Esta lógica te ayuda a gestionar eficientemente los costos y el rendimiento.

✅ Ejercicio 6: Manejo de Límites de Tokens

Demuestra cómo manejar los errores de límite de tokens de manera elegante mediante la captura de excepciones en Python.

Tarea:

Envía intencionalmente un prompt de gran tamaño a gpt-3.5-turbo para provocar un error de límite de tokens.

💡 Solución:

try:
    large_text = "word " * 50000  # deliberately oversized prompt
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": large_text}]
    )
    print(response["choices"][0]["message"]["content"])

except openai.error.InvalidRequestError as e:
    print("Token limit exceeded. Please shorten your prompt.")
    print("Error details:", e)

El manejo elegante de errores mejora la experiencia y estabilidad del usuario.

Ejercicio 7: Medición de Rendimiento

Mide y compara la latencia de respuesta de la API entre GPT-3.5-turbo y GPT-4o.

Tarea:

Utiliza el módulo time de Python para medir la velocidad de ejecución.

💡 Solución:

import time

def measure_latency(model, prompt):
    start_time = time.time()
    response = openai.ChatCompletion.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )
    end_time = time.time()
    latency = end_time - start_time
    return latency, response["choices"][0]["message"]["content"]

prompt = "What is artificial intelligence?"

models = ["gpt-3.5-turbo", "gpt-4o"]

for model in models:
    latency, content = measure_latency(model, prompt)
    print(f"\nModel: {model}")
    print(f"Latency: {latency:.2f} seconds")
    print(f"Response: {content}")

Comprender las diferencias de latencia te ayuda a seleccionar el modelo adecuado para tus necesidades.

Si has completado con éxito estos ejercicios, has dominado los conceptos clave sobre la selección de modelos de OpenAI, el análisis de rendimiento, la estimación de costos y la gestión de tokens. Ahora estás completamente preparado para aplicar con confianza estos conocimientos en proyectos de IA del mundo real.