Prompt engineering för chatbot-utveckling

Prompt Engineering med OpenAI API

Fouad Trad

Machine Learning Engineer

Varför prompt engineering behövs för chatbotar

  • Svårt att förutse användarfrågor
  • Utmaning att garantera effektiva svar
  • Prompt engineering styr chatbotens beteende

Bild som visar en chatbot på en mobiltelefon.

Prompt Engineering med OpenAI API

Prompt engineering för chatbotar med OpenAI API

Bild som visar de tre meddelanderollerna och kommunikationen dem emellan.

  • Varje meddelande har en tilldelad roll
Prompt Engineering med OpenAI API

Prompt engineering för chatbotar med OpenAI API

Bild som visar de tre meddelanderollerna och kommunikationen dem emellan, med en markering runt interaktionen mellan användaren och assistenten.

  • Varje meddelande har en tilldelad roll
  • Fokus har legat på användarprompts
Prompt Engineering med OpenAI API

Prompt engineering för chatbotar med OpenAI API

Bild som visar de tre meddelanderollerna och kommunikationen dem emellan, med en markering runt interaktionen mellan systemet och assistenten.

  • Varje meddelande har en tilldelad roll
  • Fokus har legat på användarprompts
  • Systemprompts styr chatbotens beteende
Prompt Engineering med OpenAI API

Chat completions-endpoint för chatbot-utveckling

  • Skickar en serie meddelanden till modellen som en lista
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 med OpenAI API

Anpassa get_response() för chatbot

  • Skicka en 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))
  • Skicka två 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))
Prompt Engineering med OpenAI API

Systemmeddelande: definiera syfte

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?
  • Gör det möjligt för chatboten att ge domänkorrekt hjälp
  • Utan definierat syfte riskeras kontextuellt irrelevanta svar
Prompt Engineering med OpenAI API

Systemmeddelande: svarsriktlinjer

  • Ange målgrupp, ton, längd och struktur
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 med OpenAI API

Systemmeddelande: svarsriktlinjer

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 med OpenAI API

Systemmeddelande: beteendestyrning

  • Villkorliga prompts för att svara på frågor
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Prompt Engineering med OpenAI API

Systemmeddelande: beteendestyrning

  • Villkorliga prompts för att svara på frågor
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 med OpenAI API

Systemmeddelande: beteendestyrning

  • Villkorliga prompts för att svara på frågor
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 med OpenAI API

Nu kör vi en övning!

Prompt Engineering med OpenAI API

Preparing Video For Download...