Capítulo 4: La API de Completaciones de Chat
Ejercicios Prácticos — Capítulo 4
Pon a prueba tu comprensión de la API de Chat Completions completando estos ejercicios. Trabaja en cada tarea y luego compara tu solución con los ejemplos de código proporcionados.
Ejercicio 1: Construir una Conversación Multi-Turno Usando Roles
Tarea:
Crea una conversación que incluya un mensaje de sistema para establecer el comportamiento del asistente, una consulta del usuario y un mensaje previo del asistente. Luego envía un nuevo mensaje del usuario para hacer una pregunta de seguimiento.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# Construct a multi-turn conversation
messages = [
{"role": "system", "content": "You are an expert coding tutor who always provides clear explanations."},
{"role": "user", "content": "Can you explain what a loop is in programming?"},
{"role": "assistant", "content": "A loop is a sequence of instructions that is repeated until a certain condition is met. For example, a 'for' loop in Python is often used to iterate over a sequence."},
{"role": "user", "content": "Great, can you provide a simple example in Python?"}
]
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=messages,
max_tokens=150
)
print("Exercise 1 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio refuerza la estructura de conversaciones de múltiples turnos usando los roles: sistema, usuario y asistente.
Ejercicio 2: Experimenta con Parámetros de Muestreo
Tarea:
Envía el mismo mensaje usando diferentes valores de temperature y top-p, y compara las respuestas. Utiliza un mensaje fijo pidiendo una breve explicación de "machine learning".
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
prompt = "Explain machine learning briefly."
# Response with lower temperature and lower top-p
response_low = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
top_p=0.5,
max_tokens=100
)
# Response with higher temperature and higher top-p
response_high = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.8,
top_p=0.9,
max_tokens=100
)
print("Exercise 2 Output (Low Temp & Low Top-p):")
print(response_low["choices"][0]["message"]["content"])
print("\nExercise 2 Output (High Temp & High Top-p):")
print(response_high["choices"][0]["message"]["content"])
Al cambiar los parámetros de muestreo, observa cómo difieren el estilo y la creatividad de la respuesta.
Ejercicio 3: Control de la Longitud de Respuesta Usando max_tokens y Secuencias de Parada
Tarea:
Envía un prompt que solicite una lista de tres beneficios del ejercicio. Configura la solicitud para que detenga la respuesta tan pronto como aparezca un punto y coma, y limita la salida a 80 tokens.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "List three benefits of regular exercise, separating each with a semicolon."}
],
max_tokens=80,
stop=";",
temperature=0.5
)
print("Exercise 3 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio demuestra cómo el uso de max_tokens
y el parámetro stop
pueden ayudar a controlar el formato y la longitud de la salida.
Ejercicio 4: Implementar Streaming para Salida en Tiempo Real
Tarea:
Crea un script en Python que envíe un prompt solicitando una cita inspiradora y transmita la salida en tiempo real. Imprime cada fragmento transmitido conforme llega.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a motivational speaker."},
{"role": "user", "content": "Share an inspirational quote to start the day."}
],
max_tokens=100,
stream=True # Enable streaming
)
print("Exercise 4 Output (Streaming):")
for chunk in response:
if "choices" in chunk:
part = chunk["choices"][0].get("delta", {}).get("content", "")
print(part, end="", flush=True)
print("\n\nStreaming complete!")
El streaming permite ver partes de la respuesta mientras se generan, lo que mejora la experiencia del usuario en aplicaciones interactivas.
Ejercicio 5: Combinando Parámetros en un Escenario del Mundo Real
Tarea:
Crea un fragmento de aplicación que utilice una combinación de instrucciones de sistema, parámetros de muestreo y tokens de control. Tu prompt debe solicitar consejos sobre el equilibrio entre el trabajo y la vida personal, estableciendo la temperatura apropiada, top-p, max_tokens, y usando una secuencia de parada si el asistente comienza a listar más consejos después de un punto determinado.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a wise life coach providing actionable advice."},
{"role": "user", "content": "What are three key tips for balancing work and personal life? Please list them."}
],
temperature=0.6,
top_p=0.8,
max_tokens=120,
stop=["\n", "Tip 4:"]
)
print("Exercise 5 Output:")
print(response["choices"][0]["message"]["content"])
Este script combina múltiples parámetros de configuración para generar una lista clara y concisa de consejos, asegurando que la respuesta se detenga al alcanzar un punto predefinido.
Si has completado estos ejercicios, vas por buen camino para dominar el uso de la API de Chat Completions. Estas tareas te ayudan a desarrollar una comprensión profunda de la estructuración de conversaciones, el ajuste de parámetros y la interacción en tiempo real—habilidades vitales para construir aplicaciones impulsadas por IA eficientes y atractivas.
Ejercicios Prácticos — Capítulo 4
Pon a prueba tu comprensión de la API de Chat Completions completando estos ejercicios. Trabaja en cada tarea y luego compara tu solución con los ejemplos de código proporcionados.
Ejercicio 1: Construir una Conversación Multi-Turno Usando Roles
Tarea:
Crea una conversación que incluya un mensaje de sistema para establecer el comportamiento del asistente, una consulta del usuario y un mensaje previo del asistente. Luego envía un nuevo mensaje del usuario para hacer una pregunta de seguimiento.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# Construct a multi-turn conversation
messages = [
{"role": "system", "content": "You are an expert coding tutor who always provides clear explanations."},
{"role": "user", "content": "Can you explain what a loop is in programming?"},
{"role": "assistant", "content": "A loop is a sequence of instructions that is repeated until a certain condition is met. For example, a 'for' loop in Python is often used to iterate over a sequence."},
{"role": "user", "content": "Great, can you provide a simple example in Python?"}
]
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=messages,
max_tokens=150
)
print("Exercise 1 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio refuerza la estructura de conversaciones de múltiples turnos usando los roles: sistema, usuario y asistente.
Ejercicio 2: Experimenta con Parámetros de Muestreo
Tarea:
Envía el mismo mensaje usando diferentes valores de temperature y top-p, y compara las respuestas. Utiliza un mensaje fijo pidiendo una breve explicación de "machine learning".
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
prompt = "Explain machine learning briefly."
# Response with lower temperature and lower top-p
response_low = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
top_p=0.5,
max_tokens=100
)
# Response with higher temperature and higher top-p
response_high = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.8,
top_p=0.9,
max_tokens=100
)
print("Exercise 2 Output (Low Temp & Low Top-p):")
print(response_low["choices"][0]["message"]["content"])
print("\nExercise 2 Output (High Temp & High Top-p):")
print(response_high["choices"][0]["message"]["content"])
Al cambiar los parámetros de muestreo, observa cómo difieren el estilo y la creatividad de la respuesta.
Ejercicio 3: Control de la Longitud de Respuesta Usando max_tokens y Secuencias de Parada
Tarea:
Envía un prompt que solicite una lista de tres beneficios del ejercicio. Configura la solicitud para que detenga la respuesta tan pronto como aparezca un punto y coma, y limita la salida a 80 tokens.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "List three benefits of regular exercise, separating each with a semicolon."}
],
max_tokens=80,
stop=";",
temperature=0.5
)
print("Exercise 3 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio demuestra cómo el uso de max_tokens
y el parámetro stop
pueden ayudar a controlar el formato y la longitud de la salida.
Ejercicio 4: Implementar Streaming para Salida en Tiempo Real
Tarea:
Crea un script en Python que envíe un prompt solicitando una cita inspiradora y transmita la salida en tiempo real. Imprime cada fragmento transmitido conforme llega.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a motivational speaker."},
{"role": "user", "content": "Share an inspirational quote to start the day."}
],
max_tokens=100,
stream=True # Enable streaming
)
print("Exercise 4 Output (Streaming):")
for chunk in response:
if "choices" in chunk:
part = chunk["choices"][0].get("delta", {}).get("content", "")
print(part, end="", flush=True)
print("\n\nStreaming complete!")
El streaming permite ver partes de la respuesta mientras se generan, lo que mejora la experiencia del usuario en aplicaciones interactivas.
Ejercicio 5: Combinando Parámetros en un Escenario del Mundo Real
Tarea:
Crea un fragmento de aplicación que utilice una combinación de instrucciones de sistema, parámetros de muestreo y tokens de control. Tu prompt debe solicitar consejos sobre el equilibrio entre el trabajo y la vida personal, estableciendo la temperatura apropiada, top-p, max_tokens, y usando una secuencia de parada si el asistente comienza a listar más consejos después de un punto determinado.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a wise life coach providing actionable advice."},
{"role": "user", "content": "What are three key tips for balancing work and personal life? Please list them."}
],
temperature=0.6,
top_p=0.8,
max_tokens=120,
stop=["\n", "Tip 4:"]
)
print("Exercise 5 Output:")
print(response["choices"][0]["message"]["content"])
Este script combina múltiples parámetros de configuración para generar una lista clara y concisa de consejos, asegurando que la respuesta se detenga al alcanzar un punto predefinido.
Si has completado estos ejercicios, vas por buen camino para dominar el uso de la API de Chat Completions. Estas tareas te ayudan a desarrollar una comprensión profunda de la estructuración de conversaciones, el ajuste de parámetros y la interacción en tiempo real—habilidades vitales para construir aplicaciones impulsadas por IA eficientes y atractivas.
Ejercicios Prácticos — Capítulo 4
Pon a prueba tu comprensión de la API de Chat Completions completando estos ejercicios. Trabaja en cada tarea y luego compara tu solución con los ejemplos de código proporcionados.
Ejercicio 1: Construir una Conversación Multi-Turno Usando Roles
Tarea:
Crea una conversación que incluya un mensaje de sistema para establecer el comportamiento del asistente, una consulta del usuario y un mensaje previo del asistente. Luego envía un nuevo mensaje del usuario para hacer una pregunta de seguimiento.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# Construct a multi-turn conversation
messages = [
{"role": "system", "content": "You are an expert coding tutor who always provides clear explanations."},
{"role": "user", "content": "Can you explain what a loop is in programming?"},
{"role": "assistant", "content": "A loop is a sequence of instructions that is repeated until a certain condition is met. For example, a 'for' loop in Python is often used to iterate over a sequence."},
{"role": "user", "content": "Great, can you provide a simple example in Python?"}
]
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=messages,
max_tokens=150
)
print("Exercise 1 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio refuerza la estructura de conversaciones de múltiples turnos usando los roles: sistema, usuario y asistente.
Ejercicio 2: Experimenta con Parámetros de Muestreo
Tarea:
Envía el mismo mensaje usando diferentes valores de temperature y top-p, y compara las respuestas. Utiliza un mensaje fijo pidiendo una breve explicación de "machine learning".
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
prompt = "Explain machine learning briefly."
# Response with lower temperature and lower top-p
response_low = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
top_p=0.5,
max_tokens=100
)
# Response with higher temperature and higher top-p
response_high = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.8,
top_p=0.9,
max_tokens=100
)
print("Exercise 2 Output (Low Temp & Low Top-p):")
print(response_low["choices"][0]["message"]["content"])
print("\nExercise 2 Output (High Temp & High Top-p):")
print(response_high["choices"][0]["message"]["content"])
Al cambiar los parámetros de muestreo, observa cómo difieren el estilo y la creatividad de la respuesta.
Ejercicio 3: Control de la Longitud de Respuesta Usando max_tokens y Secuencias de Parada
Tarea:
Envía un prompt que solicite una lista de tres beneficios del ejercicio. Configura la solicitud para que detenga la respuesta tan pronto como aparezca un punto y coma, y limita la salida a 80 tokens.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "List three benefits of regular exercise, separating each with a semicolon."}
],
max_tokens=80,
stop=";",
temperature=0.5
)
print("Exercise 3 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio demuestra cómo el uso de max_tokens
y el parámetro stop
pueden ayudar a controlar el formato y la longitud de la salida.
Ejercicio 4: Implementar Streaming para Salida en Tiempo Real
Tarea:
Crea un script en Python que envíe un prompt solicitando una cita inspiradora y transmita la salida en tiempo real. Imprime cada fragmento transmitido conforme llega.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a motivational speaker."},
{"role": "user", "content": "Share an inspirational quote to start the day."}
],
max_tokens=100,
stream=True # Enable streaming
)
print("Exercise 4 Output (Streaming):")
for chunk in response:
if "choices" in chunk:
part = chunk["choices"][0].get("delta", {}).get("content", "")
print(part, end="", flush=True)
print("\n\nStreaming complete!")
El streaming permite ver partes de la respuesta mientras se generan, lo que mejora la experiencia del usuario en aplicaciones interactivas.
Ejercicio 5: Combinando Parámetros en un Escenario del Mundo Real
Tarea:
Crea un fragmento de aplicación que utilice una combinación de instrucciones de sistema, parámetros de muestreo y tokens de control. Tu prompt debe solicitar consejos sobre el equilibrio entre el trabajo y la vida personal, estableciendo la temperatura apropiada, top-p, max_tokens, y usando una secuencia de parada si el asistente comienza a listar más consejos después de un punto determinado.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a wise life coach providing actionable advice."},
{"role": "user", "content": "What are three key tips for balancing work and personal life? Please list them."}
],
temperature=0.6,
top_p=0.8,
max_tokens=120,
stop=["\n", "Tip 4:"]
)
print("Exercise 5 Output:")
print(response["choices"][0]["message"]["content"])
Este script combina múltiples parámetros de configuración para generar una lista clara y concisa de consejos, asegurando que la respuesta se detenga al alcanzar un punto predefinido.
Si has completado estos ejercicios, vas por buen camino para dominar el uso de la API de Chat Completions. Estas tareas te ayudan a desarrollar una comprensión profunda de la estructuración de conversaciones, el ajuste de parámetros y la interacción en tiempo real—habilidades vitales para construir aplicaciones impulsadas por IA eficientes y atractivas.
Ejercicios Prácticos — Capítulo 4
Pon a prueba tu comprensión de la API de Chat Completions completando estos ejercicios. Trabaja en cada tarea y luego compara tu solución con los ejemplos de código proporcionados.
Ejercicio 1: Construir una Conversación Multi-Turno Usando Roles
Tarea:
Crea una conversación que incluya un mensaje de sistema para establecer el comportamiento del asistente, una consulta del usuario y un mensaje previo del asistente. Luego envía un nuevo mensaje del usuario para hacer una pregunta de seguimiento.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# Construct a multi-turn conversation
messages = [
{"role": "system", "content": "You are an expert coding tutor who always provides clear explanations."},
{"role": "user", "content": "Can you explain what a loop is in programming?"},
{"role": "assistant", "content": "A loop is a sequence of instructions that is repeated until a certain condition is met. For example, a 'for' loop in Python is often used to iterate over a sequence."},
{"role": "user", "content": "Great, can you provide a simple example in Python?"}
]
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=messages,
max_tokens=150
)
print("Exercise 1 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio refuerza la estructura de conversaciones de múltiples turnos usando los roles: sistema, usuario y asistente.
Ejercicio 2: Experimenta con Parámetros de Muestreo
Tarea:
Envía el mismo mensaje usando diferentes valores de temperature y top-p, y compara las respuestas. Utiliza un mensaje fijo pidiendo una breve explicación de "machine learning".
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
prompt = "Explain machine learning briefly."
# Response with lower temperature and lower top-p
response_low = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.3,
top_p=0.5,
max_tokens=100
)
# Response with higher temperature and higher top-p
response_high = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.8,
top_p=0.9,
max_tokens=100
)
print("Exercise 2 Output (Low Temp & Low Top-p):")
print(response_low["choices"][0]["message"]["content"])
print("\nExercise 2 Output (High Temp & High Top-p):")
print(response_high["choices"][0]["message"]["content"])
Al cambiar los parámetros de muestreo, observa cómo difieren el estilo y la creatividad de la respuesta.
Ejercicio 3: Control de la Longitud de Respuesta Usando max_tokens y Secuencias de Parada
Tarea:
Envía un prompt que solicite una lista de tres beneficios del ejercicio. Configura la solicitud para que detenga la respuesta tan pronto como aparezca un punto y coma, y limita la salida a 80 tokens.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "List three benefits of regular exercise, separating each with a semicolon."}
],
max_tokens=80,
stop=";",
temperature=0.5
)
print("Exercise 3 Output:")
print(response["choices"][0]["message"]["content"])
Este ejercicio demuestra cómo el uso de max_tokens
y el parámetro stop
pueden ayudar a controlar el formato y la longitud de la salida.
Ejercicio 4: Implementar Streaming para Salida en Tiempo Real
Tarea:
Crea un script en Python que envíe un prompt solicitando una cita inspiradora y transmita la salida en tiempo real. Imprime cada fragmento transmitido conforme llega.
Solución:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a motivational speaker."},
{"role": "user", "content": "Share an inspirational quote to start the day."}
],
max_tokens=100,
stream=True # Enable streaming
)
print("Exercise 4 Output (Streaming):")
for chunk in response:
if "choices" in chunk:
part = chunk["choices"][0].get("delta", {}).get("content", "")
print(part, end="", flush=True)
print("\n\nStreaming complete!")
El streaming permite ver partes de la respuesta mientras se generan, lo que mejora la experiencia del usuario en aplicaciones interactivas.
Ejercicio 5: Combinando Parámetros en un Escenario del Mundo Real
Tarea:
Crea un fragmento de aplicación que utilice una combinación de instrucciones de sistema, parámetros de muestreo y tokens de control. Tu prompt debe solicitar consejos sobre el equilibrio entre el trabajo y la vida personal, estableciendo la temperatura apropiada, top-p, max_tokens, y usando una secuencia de parada si el asistente comienza a listar más consejos después de un punto determinado.
Solución:
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a wise life coach providing actionable advice."},
{"role": "user", "content": "What are three key tips for balancing work and personal life? Please list them."}
],
temperature=0.6,
top_p=0.8,
max_tokens=120,
stop=["\n", "Tip 4:"]
)
print("Exercise 5 Output:")
print(response["choices"][0]["message"]["content"])
Este script combina múltiples parámetros de configuración para generar una lista clara y concisa de consejos, asegurando que la respuesta se detenga al alcanzar un punto predefinido.
Si has completado estos ejercicios, vas por buen camino para dominar el uso de la API de Chat Completions. Estas tareas te ayudan a desarrollar una comprensión profunda de la estructuración de conversaciones, el ajuste de parámetros y la interacción en tiempo real—habilidades vitales para construir aplicaciones impulsadas por IA eficientes y atractivas.