Ingineria prompturilor pentru dezvoltarea chatboților

Prompt Engineering cu OpenAI API

Fouad Trad

Machine Learning Engineer

Necesitatea ingineriei prompturilor pentru chatboți

  • Dificil de anticipat întrebările utilizatorilor
  • Provocare în garantarea răspunsurilor eficiente
  • Ingineria prompturilor ghidează comportamentul chatbotului

Imagine cu un chatbot pe un telefon mobil.

Prompt Engineering cu OpenAI API

Ingineria prompturilor pentru chatboți cu API-ul OpenAI

Imagine cu cele trei roluri ale unui mesaj și comunicarea dintre ele.

  • Fiecare mesaj are un rol desemnat
Prompt Engineering cu OpenAI API

Ingineria prompturilor pentru chatboți cu API-ul OpenAI

Imagine cu cele trei roluri ale unui mesaj și comunicarea dintre ele, cu evidențierea interacțiunii dintre utilizator și asistent.

  • Fiecare mesaj are un rol desemnat
  • Accentul a fost pus pe prompturile utilizatorului
Prompt Engineering cu OpenAI API

Ingineria prompturilor pentru chatboți cu API-ul OpenAI

Imagine cu cele trei roluri ale unui mesaj și comunicarea dintre ele, cu evidențierea interacțiunii dintre sistem și asistent.

  • Fiecare mesaj are un rol desemnat
  • Accentul a fost pus pe prompturile utilizatorului
  • Prompturile de sistem ghidează comportamentul chatbotului
Prompt Engineering cu OpenAI API

Endpoint-ul de completări chat pentru dezvoltarea chatboților

  • Trimite o serie de mesaje modelului sub formă de listă
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 cu OpenAI API

Modificarea get_response() pentru chatbot

  • Trimiterea unui 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))
  • Trimiterea a două prompturi
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 cu OpenAI API

Mesaj de sistem: definirea scopului

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?
  • Permite chatbotului să ofere asistență relevantă domeniului
  • Nedefinirea scopului poate genera răspunsuri lipsite de context
Prompt Engineering cu OpenAI API

Mesaj de sistem: ghiduri pentru răspunsuri

  • Specificați publicul, tonul, lungimea și structura
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 cu OpenAI API

Mesaj de sistem: ghiduri pentru răspunsuri

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

Mesaj de sistem: ghidarea comportamentului

  • Prompturi condiționale pentru răspunsul la întrebări
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Prompt Engineering cu OpenAI API

Mesaj de sistem: ghidarea comportamentului

  • Prompturi condiționale pentru răspunsul la întrebări
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 cu OpenAI API

Mesaj de sistem: ghidarea comportamentului

  • Prompturi condiționale pentru răspunsul la întrebări
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 cu OpenAI API

Să exersăm!

Prompt Engineering cu OpenAI API

Preparing Video For Download...