Résultats structurés et prompts conditionnels

Ingénierie des prompts avec l'API OpenAI

Fouad Trad

Machine Learning Engineer

Résultats structurés

  • Les LLM génèrent des résultats structurés si instructions explicites
  • Structures de résultat :
    • Table
    • Liste
    • Paragraphe structuré
    • Format personnalisé

Visual diagram showing that when we ask ChatGPT for a structured output, we obtain an output with the structure we requested, but when we don't specify the required structure we obtain an answer with random or no structure at all.

Ingénierie des prompts avec l'API OpenAI

Tables

  • Indiquer clairement les colonnes attendues
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    |
Ingénierie des prompts avec l'API OpenAI

Listes

  • Utile pour les énumérations
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
Ingénierie des prompts avec l'API OpenAI

Listes

  • Les exigences relatives à la numérotation doivent être mentionnées dans le prompt
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
Ingénierie des prompts avec l'API OpenAI

Paragraphes structurés

  • Mentionner les exigences relatives à la structure dans le 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))
Ingénierie des prompts avec l'API OpenAI

Paragraphes structurés

I. Introduction
Regular exercise is essential for maintaining good health and overall well-being. [...]

II. Physical Health Benefits
a. Weight Management: Regular exercise is [...]
b. Reduced Risk of Chronic Diseases: Exercise has been linked to [...]
c. Increased Strength and Flexibility: Regular exercise improves muscle strength and [...]

III. Mental Health Benefits
a. Reduced Stress and Anxiety: Exercise has a profound impact on [...]
b. Improved Sleep Quality: Regular exercise is associated with improved sleep patterns [...]
c. Boosted Brain Function: Studies show that exercise enhances cognitive function [...]
Ingénierie des prompts avec l'API OpenAI

Format de sortie personnalisé

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
Ingénierie des prompts avec l'API OpenAI

Prompts conditionnels

  • Intégrer une logique ou des conditions
  • Les prompts conditionnels suivent un style if-else

Visual diagram showing a test condition. If this condition is true X should be performed, and if it is false, Y should be performed.

Ingénierie des prompts avec l'API OpenAI

Prompts conditionnels

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
Ingénierie des prompts avec l'API OpenAI

Prompts conditionnels

  • Peut intégrer plusieurs conditions
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))
Ingénierie des prompts avec l'API OpenAI

Prompts conditionnels

  • Peut intégrer plusieurs conditions
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))
Ingénierie des prompts avec l'API OpenAI

Prompts conditionnels

  • Peut intégrer plusieurs conditions
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
Ingénierie des prompts avec l'API OpenAI

Passons à la pratique !

Ingénierie des prompts avec l'API OpenAI

Preparing Video For Download...