Разработка чат-ботов с помощью prompt engineering

Разработка промптов с OpenAI API

Fouad Trad

Machine Learning Engineer

Зачем нужен prompt engineering для чат-ботов

  • Сложно предсказать вопросы пользователей
  • Сложно гарантировать качество ответов
  • Prompt engineering управляет поведением чат-бота

Изображение чат-бота на экране мобильного телефона.

Разработка промптов с OpenAI API

Prompt engineering чат-ботов с OpenAI API

Изображение трёх ролей сообщения и взаимодействия между ними.

  • Каждое сообщение имеет назначенную роль
Разработка промптов с OpenAI API

Prompt engineering чат-ботов с OpenAI API

Изображение трёх ролей сообщения и взаимодействия между ними; выделено взаимодействие между пользователем и ассистентом.

  • Каждое сообщение имеет назначенную роль
  • До сих пор акцент делался на промптах пользователя
Разработка промптов с OpenAI API

Prompt engineering чат-ботов с OpenAI API

Изображение трёх ролей сообщения и взаимодействия между ними; выделено взаимодействие между системой и ассистентом.

  • Каждое сообщение имеет назначенную роль
  • До сих пор акцент делался на промптах пользователя
  • Системные промпты управляют поведением чат-бота
Разработка промптов с OpenAI API

Эндпоинт chat completions для разработки чат-ботов

  • Отправляет модели список сообщений
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.
Разработка промптов с OpenAI API

Адаптация get_response() для чат-бота

  • Отправка одного промпта
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))
  • Отправка двух промптов
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))
Разработка промптов с OpenAI API

Системное сообщение: определение назначения

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?
  • Позволяет чат-боту давать точные ответы в своей области
  • Без определения назначения ответы могут быть нерелевантными
Разработка промптов с OpenAI API

Системное сообщение: требования к ответам

  • Укажите аудиторию, тон, длину и структуру
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))
Разработка промптов с OpenAI API

Системное сообщение: требования к ответам

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 [...]
Разработка промптов с OpenAI API

Системное сообщение: управление поведением

  • Условные промпты для управления ответами на вопросы
system_prompt = """You are a chatbot that answers financial questions. 
Your answers should be precise, formal and objective.


"""
Разработка промптов с OpenAI API

Системное сообщение: управление поведением

  • Условные промпты для управления ответами на вопросы
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.

"""
Разработка промптов с OpenAI API

Системное сообщение: управление поведением

  • Условные промпты для управления ответами на вопросы
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.
Разработка промптов с OpenAI API

Давайте потренируемся!

Разработка промптов с OpenAI API

Preparing Video For Download...