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

Image montrant un chatbot sur un téléphone mobile.

Ingénierie des prompts avec l'API OpenAI

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

Image montrant les trois rôles d’un message et la communication entre eux.

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 montrant les trois rôles d’un message et la communication entre eux, avec un surlignage autour de l’interaction entre l’utilisateur et l’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 montrant les trois rôles d’un message et la communication entre eux, avec un surlignage autour de l’interaction entre le système et l’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-4o-mini",
  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-4o-mini",
        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-4o-mini", 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é

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...