Prompt engineering voor chatbotontwikkeling

Prompt Engineering met de OpenAI API

Fouad Trad

Machine Learning Engineer

De noodzaak van prompt engineering voor chatbots

  • Moeilijk te voorspellen wat gebruikers vragen
  • Uitdagend om effectieve antwoorden te garanderen
  • Prompt engineering stuurt het gedrag van de chatbot

Afbeelding van een chatbot op een mobiele telefoon.

Prompt Engineering met de OpenAI API

Chatbot prompt engineering met de OpenAI API

Afbeelding met de drie rollen van een bericht en de communicatie daartussen.

  • Elk bericht heeft een eigen rol
Prompt Engineering met de OpenAI API

Chatbot prompt engineering met de OpenAI API

Afbeelding met de drie rollen van een bericht en hun communicatie, met focus op de interactie tussen gebruiker en assistant.

  • Elk bericht heeft een eigen rol
  • Focus lag op user-prompts
Prompt Engineering met de OpenAI API

Chatbot prompt engineering met de OpenAI API

Afbeelding met de drie rollen van een bericht en hun communicatie, met focus op de interactie tussen systeem en assistant.

  • Elk bericht heeft een eigen rol
  • Focus lag op user-prompts
  • System-prompts sturen het gedrag van de chatbot
Prompt Engineering met de OpenAI API

Chat Completions-endpoint voor chatbotontwikkeling

  • Stuurt een reeks berichten naar het model als lijst
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.
Prompt Engineering met de OpenAI API

get_response() aanpassen voor een chatbot

  • Eén prompt sturen
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))
  • Twee prompts sturen
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))
Prompt Engineering met de OpenAI API

Systeembericht: doel definiëren

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?
  • Laat de chatbot domein-accurate hulp bieden
  • Zonder doel kan het irrelevante antwoorden geven
Prompt Engineering met de OpenAI API

Systeembericht: antwoordrichtlijnen

  • Specificeer doelgroep, toon, lengte, structuur
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))
Prompt Engineering met de OpenAI API

Systeembericht: antwoordrichtlijnen

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 [...]
Prompt Engineering met de OpenAI API

Systeembericht: gedragssturing

  • Voorwaardelijke prompts voor vragen beantwoorden
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Prompt Engineering met de OpenAI API

Systeembericht: gedragssturing

  • Voorwaardelijke prompts voor vragen beantwoorden
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.

"""
Prompt Engineering met de OpenAI API

Systeembericht: gedragssturing

  • Voorwaardelijke prompts voor vragen beantwoorden
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.
Prompt Engineering met de OpenAI API

Laten we oefenen!

Prompt Engineering met de OpenAI API

Preparing Video For Download...