Prompt engineering voor chatbotontwikkeling

Prompt Engineering met de OpenAI API

Fouad Trad

Machine Learning Engineer

Waarom prompt engineering voor chatbots?

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

Afbeelding met een chatbot op een mobiele telefoon.

Prompt Engineering met de OpenAI API

Chatbot-promptengineering met de OpenAI API

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

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

Chatbot-promptengineering met de OpenAI API

Afbeelding met de drie rollen van een bericht en de communicatie daartussen, met een highlight rond de interactie tussen de gebruiker en de assistent.

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

Chatbot-promptengineering met de OpenAI API

Afbeelding met de drie rollen van een bericht en de communicatie daartussen, met een highlight rond de interactie tussen het systeem en de assistent.

  • Elk bericht heeft een vaste 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-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.
Prompt Engineering met de OpenAI API

get_response() aanpassen voor een chatbot

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

Systeembericht: doel bepalen

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
  • Geen doel definiëren kan tot irrelevante antwoorden leiden
Prompt Engineering met de OpenAI API

Systeembericht: richtlijnen voor antwoorden

  • 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: richtlijnen voor antwoorden

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 om vragen te 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 om vragen te 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 om vragen te 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...