Ingénierie des prompts pour le développement de chatbots

Ingénierie des prompts avec l'API OpenAI

Fouad Trad

Machine Learning Engineer

La nécessité d'une ingénierie des prompts pour les chatbots

  • Difficile de prévoir les questions des utilisateurs
  • Défi visant à garantir des réponses efficaces
  • L'ingénierie des prompts guide le comportement des chatbots

Image showing a chatbot on a mobile phone.

Ingénierie des prompts avec l'API OpenAI

Ingénierie des prompts de chatbot avec l'API OpenAI

Image showing the three roles of a message and the communication between them.

  • Chaque message a un rôle spécifique
Ingénierie des prompts avec l'API OpenAI

Ingénierie des prompts de chatbot avec l'API OpenAI

Image showing the three roles of a message and the communication between them, with a highlight around the interaction between the user and the assistant.

  • Chaque message a un rôle spécifique
  • L'accent a été mis sur les prompts utilisateur
Ingénierie des prompts avec l'API OpenAI

Ingénierie des prompts de chatbot avec l'API OpenAI

Image showing the three roles of a message and the communication between them, with a highlight around the interaction between the system and the assistant.

  • Chaque message a un rôle spécifique
  • L'accent a été mis sur les prompts utilisateur
  • Les prompts du système guident le comportement du chatbot
Ingénierie des prompts avec l'API OpenAI

Point de terminaison de fin de chat pour le développement de chatbots

  • Envoie une série de messages au modèle sous forme de liste
response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[{"role": "system",
             "content": "You are an expert data scientist that explains complex concepts in simple terms"},

{"role": "user", "content": "What is prompt engineering?"}] )
print(response.choices[0].message.content)
Imagine you're giving instructions to a computer program, like teaching a robot to make a sandwich. 
Prompt engineering is all about crafting those instructions, or "prompts," in a way that helps the 
computer understand and perform the task better.
Ingénierie des prompts avec l'API OpenAI

Modification de get_response() pour le chatbot

  • Envoi d'un prompt
def get_response(prompt):
    messages = [
      {"role": "user", "content": prompt}
    ]
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages,
        temperature=0,
    )
    return response.choices[0].message.content

prompt = "<PROMPT>" print(get_response(prompt))
  • Envoi de deux prompts
def get_response(system_prompt, user_prompt):

messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt}]
response = client.chat.completions.create( model="gpt-3.5-turbo", messages=messages, temperature=0, ) return response.choices[0].message.content
system_prompt = "<SYSTEM_PROMPT>" user_prompt = "<USER_PROMPT>" print(get_response(system_prompt, user_prompt))
Ingénierie des prompts avec l'API OpenAI

Message système : définir l'objectif

system_prompt = "You are a chatbot that answers financial questions."

user_prompt = "Who are you?" print(get_response(system_prompt, user_prompt))
I'm a financial chatbot that answers financial questions. How can I help you?
  • Permettre au chatbot d'offrir une assistance précise dans le domaine concerné
  • Ne pas définir l'objectif peut conduire à des réponses non pertinentes dans le contexte
Ingénierie des prompts avec l'API OpenAI

Message système : directives de réponse

  • Préciser le public cible, le ton, la longueur et la structure
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective"""

user_prompt = "What do you think about cryptocurrencies?" print(get_response(system_prompt, user_prompt))
Ingénierie des prompts avec l'API OpenAI

Message système : directives de réponse

Cryptocurrencies are digital or virtual currencies that use cryptography for security and operate on 
decentralized networks based on blockchain technology. 
[...]

Advantages of cryptocurrencies include: - Decentralization: [...] - Security:[...] - Global Accessibility: [...]
However, there are also notable concerns: - Volatility: [...] - Regulatory Uncertainty: [...] - Lack of Consumer Protection: [...]
In summary, cryptocurrencies have the potential to offer various benefits, but their adoption and impact on the financial landscape are still evolving [...]
Ingénierie des prompts avec l'API OpenAI

Message système : conseils de comportement

  • Prompts conditionnels pour répondre aux questions
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Ingénierie des prompts avec l'API OpenAI

Message système : conseils de comportement

  • Prompts conditionnels pour répondre aux questions
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.
If the question you receive is within the financial field, answer it to the best of your knowledge.

"""
Ingénierie des prompts avec l'API OpenAI

Message système : conseils de comportement

  • Prompts conditionnels pour répondre aux questions
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.
If the question you receive is within the financial field, answer it to the best of your knowledge.
Otherwise, answer with 'Sorry, I only know about finance.'
"""
user_prompt = "How's the weather today?"

print(get_response(system_prompt, user_prompt))
Sorry, I only know about finance.
Ingénierie des prompts avec l'API OpenAI

Passons à la pratique !

Ingénierie des prompts avec l'API OpenAI

Preparing Video For Download...