Введение в инженерию запросов

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

Fouad Trad

Machine Learning Engineer

Что такое инженерия запросов?

Составление запросов и инструкций для LLM с целью получения нужных ответов

Иллюстрация с терминологией инженерии запросов.

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

Инженерия запросов — как составление рецепта

Изображение повара, готовящего блюдо.

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

Зачем нужна инженерия запросов?

  Схема, показывающая, что качественные запросы ведут к качественным ответам.

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

Зачем нужна инженерия запросов?

  Схема, показывающая зависимость качества ответов от качества запросов: качественные запросы — качественные ответы, слабые запросы — слабые ответы.

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

Повторение: OpenAI API

  • Обеспечивает взаимодействие с моделями OpenAI
  • В курсе уже настроен
  • Доступ к эндпоинту Chat Completions

chatgpt_logo_white.png

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

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконка роли пользователя.

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

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконки двух ролей: пользователя и ассистента.

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

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконки трёх ролей: пользователя, системы и ассистента.

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

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконки трёх ролей со стрелкой между системой и ассистентом, обозначающей передачу системных сообщений.

  • Системное сообщение: задаёт поведение модели
Разработка промптов с OpenAI API

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконки трёх ролей со стрелками: от системы к ассистенту и от пользователя к ассистенту.

  • Системное сообщение: задаёт поведение модели
  • Сообщение пользователя: запрос от пользователя
Разработка промптов с OpenAI API

Повторение: роли сообщений

Каждое сообщение имеет одну из трёх ролей

Иконки трёх ролей со стрелками между всеми участниками: система — ассистент, пользователь — ассистент, ассистент — пользователь.

  • Системное сообщение: задаёт поведение модели
  • Сообщение пользователя: запрос от пользователя
  • Сообщение ассистента: ответ на запрос пользователя
Разработка промптов с OpenAI API

Повторение: параметры управления

Иконка термометра со значениями от 0 до 2: 0 — без случайности, 2 — максимальная случайность.

  • temperature: управляет случайностью ответов
Разработка промптов с OpenAI API

Повторение: параметры управления

Иконки термометра и ползунка: термометр отражает параметр temperature (от 0 до 2), ползунок — max_tokens, где меньшие значения дают более короткие ответы.

  • temperature: управляет случайностью ответов
  • max_tokens: управляет длиной ответа
Разработка промптов с OpenAI API

Повторение: работа с OpenAI API

prompt = "What is prompt engineering?"

client = OpenAI(api_key="api_key")
response = client.chat.completions.create(
model = "gpt-4o-mini",
messages = [{"role": "user", "content": prompt}],
temperature = 0 )
print(response.choices[0].message.content)
Prompt engineering refers to the process of designing and refining prompts or 
instructions given to a language model like ChatGPT in order to elicit desired 
responses or behaviors. It involves formulating specific guidelines or hints to 
guide the model's output towards a desired outcome.
Разработка промптов с OpenAI API

Создание функции get_response()

def get_response(prompt):

response = client.chat.completions.create( model = "gpt-4o-mini", messages = [{"role": "user", "content": prompt}], temperature = 0 )
return response.choices[0].message.content

Использование

response = get_response("What is prompt engineering?")
print(response)
Prompt engineering refers to the process of designing and refining prompts or instructions given to a language model 
like ChatGPT in order to elicit desired responses or behaviors. It involves formulating specific guidelines or hints 
to guide the model's output towards a desired outcome.
Разработка промптов с OpenAI API

Улучшение запроса

prompt = "What is prompt engineering? Explain it in terms that can be understood 
by a 5-year-old"
response = get_response(prompt)
print(response)
Imagine you have a very smart friend who can understand and answer lots of 
questions. But sometimes, they might not understand exactly what you want or give 
the wrong answer. So, prompt engineering is like giving your friend really clear 
instructions or hints to help them give you the best answer possible.
Разработка промптов с OpenAI API

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

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

Preparing Video For Download...