Salidas estructuradas y prompts condicionales

Ingeniería rápida con la API de OpenAI

Fouad Trad

Machine Learning Engineer

Salidas estructuradas

  • Los LLM solo generan salidas estructuradas si se dan instrucciones explícitas
  • Estructuras de salida:
    • Tabla
    • Lista
    • Párrafo estructurado
    • Formato personalizado

Diagrama que muestra que si pedimos una salida estructurada a ChatGPT, obtenemos la estructura solicitada; si no la especificamos, la respuesta no tiene estructura o es aleatoria.

Ingeniería rápida con la API de OpenAI

Tablas

  • Indica claramente las columnas esperadas
prompt = "Generate a table containing 5 movies I should watch if I am an action 
lover, with columns for Title and Rating."
print(get_response(prompt))
| Title                           | Rating |
|---------------------------------|--------|
| Mad Max: Fury Road              | 8.1    |
| John Wick                       | 7.4    |
| The Dark Knight                 | 9.0    |
| Die Hard                        | 8.2    |
| Gladiator                       | 8.5    |
Ingeniería rápida con la API de OpenAI

Listas

  • Útiles para enumeraciones
prompt = "Generate a list containing the names of the top 5 cities to visit."
print(get_response(prompt))
1. Tokyo, Japan
2. Paris, France
3. Rome, Italy
4. New York City, United States
5. Sydney, Australia
Ingeniería rápida con la API de OpenAI

Listas

  • Indica en el prompt si quieres numeración
prompt = "Generate an unordered list containing the names of the top 5 cities to visit."
print(get_response(prompt))
- Paris, France
- Tokyo, Japan
- Rome, Italy
- New York City, United States
- Sydney, Australia
Ingeniería rápida con la API de OpenAI

Párrafos estructurados

  • Menciona la estructura requerida en el prompt
prompt = "Provide a structured paragraph with clear headings and subheadings 
about the benefits of regular exercise on overall health and well-being."
print(get_response(prompt))
Ingeniería rápida con la API de OpenAI

Párrafos estructurados

I. Introducción
El ejercicio regular es esencial para mantener una buena salud y el bienestar general. [...]

II. Beneficios para la salud física
a. Control del peso: El ejercicio regular [...]
b. Menor riesgo de enfermedades crónicas: El ejercicio se ha vinculado con [...]
c. Mayor fuerza y flexibilidad: El ejercicio regular mejora la fuerza muscular y [...]

III. Beneficios para la salud mental
a. Menos estrés y ansiedad: El ejercicio tiene un gran impacto en [...]
b. Mejor calidad del sueño: El ejercicio regular se asocia con mejores patrones de sueño [...]
c. Impulso de la función cerebral: Los estudios muestran que el ejercicio mejora la función cognitiva [...]
Ingeniería rápida con la API de OpenAI

Formato de salida personalizado

text = "Once upon a time in a quaint little village, there lived a curious young boy named 
David. David was [...]"

instructions = "You will be provided with a text delimited by triple backticks. Generate a suitable title for it. "
output_format = """Use the following format for the output: - Text: <text we want to title> - Title: <the generated title>"""
prompt = instructions + output_format + f"```{text}```" print(get_response(prompt))
- Text: Once upon a time in a quaint little village, there lived a curious young boy [...]
- Title: The Extraordinary Adventure of David and the Mysterious Book
Ingeniería rápida con la API de OpenAI

Prompts condicionales

  • Incorpora lógica o condiciones
  • Los prompts condicionales siguen un estilo if-else

Diagrama que muestra una condición de prueba. Si es verdadera, se hace X; si es falsa, se hace Y.

Ingeniería rápida con la API de OpenAI

Prompts condicionales

text = "Le printemps est ma saison préférée. Quand les premières fleurs commencent 
à éclore, et que les arbres se parent de feuilles vertes et tendres, je me sens 
revivre [...] "
prompt = f"""You will be provided with a text delimited by triple backticks. 
         If the text is written in English, suggest a suitable title for it.
         Otherwise, write 'I only understand English'.
         ```{text}```"""

print(get_response(prompt))
I only understand English
Ingeniería rápida con la API de OpenAI

Prompts condicionales

  • Puede incluir varias condiciones
text = "In the heart of the forest, sunlight filters through the lush green canopy, 
creating a tranquil atmosphere [...] "
prompt = f"""You will be provided with a text delimited by triple backticks. 
         If the text is written in English, check if it contains the keyword 'technology'. 


         ```{text}```"""
print(get_response(prompt))
Ingeniería rápida con la API de OpenAI

Prompts condicionales

  • Puede incluir varias condiciones
text = "In the heart of the forest, sunlight filters through the lush green canopy, 
creating a tranquil atmosphere [...] "
prompt = f"""You will be provided with a text delimited by triple backticks. 
         If the text is written in English, check if it contains the keyword 'technology'. 
         If it does, suggest a suitable title for it, otherwise, write 'Keyword not found'.

         ```{text}```"""
print(get_response(prompt))
Ingeniería rápida con la API de OpenAI

Prompts condicionales

  • Puede incluir varias condiciones
text = "In the heart of the forest, sunlight filters through the lush green canopy, 
creating a tranquil atmosphere [...] "
prompt = f"""You will be provided with a text delimited by triple backticks. 
         If the text is written in English, check if it contains the keyword 'technology'. 
         If it does, suggest a suitable title for it, otherwise, write 'Keyword not found'.
         If the text is not written in English, reply with 'I only understand English'.
         ```{text}```"""
print(get_response(prompt))
Keyword not found
Ingeniería rápida con la API de OpenAI

¡Vamos a practicar!

Ingeniería rápida con la API de OpenAI

Preparing Video For Download...