Prompt engineering pro vývoj chatbotů

Prompt Engineering s OpenAI API

Fouad Trad

Machine Learning Engineer

Proč je prompt engineering pro chatboty potřebný

  • Otázky uživatelů je obtížné předvídat
  • Garantovat efektivní odpovědi je náročné
  • Prompt engineering řídí chování chatbotu

Obrázek chatbotu na mobilním telefonu.

Prompt Engineering s OpenAI API

Prompt engineering chatbotů s OpenAI API

Obrázek zobrazující tři role zprávy a komunikaci mezi nimi.

  • Každá zpráva má přiřazenou roli
Prompt Engineering s OpenAI API

Prompt engineering chatbotů s OpenAI API

Obrázek zobrazující tři role zprávy a komunikaci mezi nimi, se zvýrazněním interakce mezi uživatelem a asistentem.

  • Každá zpráva má přiřazenou roli
  • Dosud byl kladen důraz na uživatelské prompty
Prompt Engineering s OpenAI API

Prompt engineering chatbotů s OpenAI API

Obrázek zobrazující tři role zprávy a komunikaci mezi nimi, se zvýrazněním interakce mezi systémem a asistentem.

  • Každá zpráva má přiřazenou roli
  • Dosud byl kladen důraz na uživatelské prompty
  • Systémové prompty řídí chování chatbotu
Prompt Engineering s OpenAI API

Endpoint chat completions pro vývoj chatbotů

  • Odesílá sérii zpráv modelu jako seznam
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 s OpenAI API

Úprava get_response() pro chatbot

  • Odeslání jednoho promptu
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))
  • Odeslání dvou promptů
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 s OpenAI API

Systémová zpráva: definice účelu

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 nabízí odpovědi v příslušné oblasti
  • Bez definovaného účelu mohou odpovědi být irelevantní
Prompt Engineering s OpenAI API

Systémová zpráva: pokyny pro odpovědi

  • Určení cílové skupiny, tónu, délky a struktury
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 s OpenAI API

Systémová zpráva: pokyny pro odpovědi

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

Systémová zpráva: řízení chování

  • Podmíněné prompty pro odpovědi na otázky
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Prompt Engineering s OpenAI API

Systémová zpráva: řízení chování

  • Podmíněné prompty pro odpovědi na otázky
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 s OpenAI API

Systémová zpráva: řízení chování

  • Podmíněné prompty pro odpovědi na otázky
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 s OpenAI API

Pojďme si procvičit!

Prompt Engineering s OpenAI API

Preparing Video For Download...