Prompt Engineering für die Entwicklung von Chatbots

Prompt-Engineering mit der OpenAI-API

Fouad Trad

Machine Learning Engineer

Die Notwendigkeit von Prompt Engineering für Chatbots

  • Schwer vorhersehbare Nutzerfragen
  • Herausforderung, wirksame Antworten zu gewährleisten
  • Prompt-Engineering steuert das Verhalten des Chatbots

Bild eines Chatbots auf einem Mobiltelefon.

Prompt-Engineering mit der OpenAI-API

Chatbot Prompt Engineering mit der OpenAI API

Bild, das die drei Rollen einer Nachricht und die Kommunikation zwischen ihnen zeigt.

  • Jede Nachricht hat eine festgelegte Rolle
Prompt-Engineering mit der OpenAI-API

Chatbot Prompt Engineering mit der OpenAI API

Bild, das die drei Rollen einer Nachricht und die Kommunikation zwischen ihnen zeigt, mit einer Hervorhebung um die Interaktion zwischen dem Benutzer und dem Assistenten.

  • Jede Nachricht hat eine festgelegte Rolle
  • Der Fokus lag auf User-Prompts
Prompt-Engineering mit der OpenAI-API

Chatbot Prompt Engineering mit der OpenAI API

Bild, das die drei Rollen einer Nachricht und die Kommunikation zwischen ihnen zeigt, mit einer Hervorhebung um die Interaktion zwischen dem System und dem Assistenten.

  • Jede Nachricht hat eine festgelegte Rolle
  • Der Fokus lag auf Benutzer-Prompts
  • System-Prompts steuern das Verhalten des Chatbots
Prompt-Engineering mit der OpenAI-API

Chat-Completion-Endpunkt für die Entwicklung von Chatbots

  • Sendet eine Reihe von Nachrichten als Liste an das Modell
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 mit der OpenAI-API

Ändern von get_response() für Chatbot

  • Senden eines Prompts
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))
  • Senden von zwei 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 mit der OpenAI-API

Systemmeldung: Zweck definieren

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?
  • Chatbot erlauben, domänengetreue Unterstützung anzubieten
  • Die Nichtdefinition des Zwecks kann zu kontextuell irrelevanten Antworten führen
Prompt-Engineering mit der OpenAI-API

Systemnachricht: Antwortrichtlinien

  • Zielgruppe, Ton, Länge, Struktur festlegen
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 mit der OpenAI-API

Systemmeldung: Antwortrichtlinien

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 mit der OpenAI-API

Systemmeldung: Verhaltensrichtlinien

  • Bedingte Prompts zur Beantwortung von Fragen
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Prompt-Engineering mit der OpenAI-API

Systemnachricht: Verhaltensrichtlinie

  • Bedingte Prompts zur Beantwortung von Fragen
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 mit der OpenAI-API

Systemmeldung: Verhaltensrichtlinien

  • Bedingte Prompts zur Beantwortung von Fragen
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 mit der OpenAI-API

Lass uns üben!

Prompt-Engineering mit der OpenAI-API

Preparing Video For Download...