Principes clés de l'ingénierie d'invite

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Fouad Trad

Machine Learning Engineer

Invites claires et précises

Un schéma montrant une boulangerie et une maison avec deux trajets possibles. L'un est simple et court (efficace), l'autre est complexe et long (inefficace).

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Principes clés

 

  • 🎬 Verbes d'action appropriés
  • 💬 Consignes détaillées et précises
  • ❗ Invites bien structurées avec délimiteurs
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Utiliser des verbes d'action

  • Indiquez au modèle quoi faire

Tableau des verbes à utiliser : write, complete, explain, describe, evaluate.

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Éviter les verbes ambigus

  • Embrouillent la compréhension du modèle

Tableau des verbes à utiliser (write, complete, explain, describe, evaluate) et des verbes à éviter (understand, think, feel, try, know).

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Invite efficace avec verbes

prompt = "Think about the issue of 
deforestation."
response = get_response(prompt)
print(response)
Deforestation is a significant 
environmental issue involving 
permanently removing
or destroying forests and woodlands. 
It has far-reaching impacts on the 
environment, ecosystems, wildlife, 
and human communities. [...]
prompt = "Propose strategies to 
reduce deforestation."
response = get_response(prompt)
print(response)
Reducing deforestation requires 
a comprehensive and multi-dimensional 
approach involving various stakeholders. 
Here are several strategies 
that can help address the issue:
Strengthen Forest Governance
Promote Sustainable Land Use [...]
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Formuler des consignes détaillées

 

Fournissez des consignes précises, descriptives et détaillées sur :

  • 📖 Contexte
  • 📏 Longueur du résultat
  • 🖌 Format et style
  • 👥👥 Public cible
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Invite efficace avec consignes

Invite inefficace : « Tell me about dogs. »

Invite efficace

prompt = "Write a descriptive paragraph about the behavior and characteristics of 
Golden Retrievers, highlighting their friendly nature, intelligence, 
and suitability as family pets."
print(get_response(prompt))
Golden Retrievers are beloved worldwide for their exceptional behavior, remarkable 
characteristics, and friendly nature. They are highly intelligent, trainable, and 
adaptable, making them great companions for families, including those with children.
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Limiter la longueur du résultat

max_tokens :

  • Limite du nombre de jetons
  • Le résultat ne peut pas la contourner
  • Peut mener à des réponses incomplètes ou coupées

Invite :

  • Limite sur mots, phrases ou paragraphes
  • Le résultat peut la contourner
  • Réponses complètes
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Composantes d'une invite

  • Consignes et données d'entrée sur lesquelles agir
  • Exemple : synthèse de texte
    • Consigne : résumer le texte fourni
    • Données d'entrée : texte à résumer

Icône représentant la tâche de synthèse de texte

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Structurer une invite avec des délimiteurs

  • Commencez l'invite par des consignes
  • Utilisez des délimiteurs (parenthèses, crochets, accents graves, etc.) pour préciser les parties d'entrée
  • Indiquez quels délimiteurs sont utilisés
prompt = """Summarize the text delimited by triple backticks into bullet points.
           ```TEXT GOES HERE```"""
response = get_response(prompt)
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Utiliser des chaînes formatées (f-strings)

  • Insérer une chaîne définie dans une autre chaîne
text = "This is a sample text to summarize"

prompt = f"""Summarize the text delimited by triple backticks into bullet points. ```{text}```"""
print(prompt)
Summarize the text delimited by triple backticks into bullet points.
```This is a sample text to summarize```
Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Passons à la pratique !

Conception de invites (Prompt Engineering) avec l'API d'OpenAI

Preparing Video For Download...