ru translate introduction

pull/188/head
Ilya Gusev 2023-06-04 20:05:37 +03:00
parent d27d18ff1b
commit 7cc1ef041b
7 changed files with 556 additions and 0 deletions

11
pages/about.ru.mdx 100644
View File

@ -0,0 +1,11 @@
# О нас
Руководство по инженерии промптов - проект от [DAIR.AI](https://github.com/dair-ai). Его целью является обучение исследователей и практиков инженерии промптов.
DAIR.AI стремится демократизировать исследования, образование и технологии в области искусственного интеллекта. Наша миссия - дать возможность следующему поколению инноваторов и создателей в области ИИ.
Мы приветствуем вклады от сообщества. Воспользуйтесь кнопкой "Редактировать".
Информация о лицензии [здесь](https://github.com/dair-ai/Prompt-Engineering-Guide#license).
Мы черпаем вдохновение из множества открытых ресурсов, таких как [OpenAI CookBook](https://github.com/openai/openai-cookbook), [Pretrain, Prompt, Predict](http://pretrain.nlpedia.ai/), [Learn Prompting](https://learnprompting.org/) и многих других.

View File

@ -0,0 +1,7 @@
{
"settings": "Настройки LLM",
"basics": "Основы промптинга",
"elements": "Элементы промпта",
"tips": "Общие советы по созданию промптов",
"examples": "Примеры промптов"
}

View File

@ -0,0 +1,114 @@
# Основы промптинга
## Основные промпты
Вы можете достичь многого с помощью простых промптов, но качество результатов зависит от того, сколько информации вы предоставляете и насколько хорошо он составлен. Промпт может содержать информацию, такую как *инструкция* или *вопрос*, который вы передаете модели, и включать другие детали, такие как *контекст*, *входные данные* или *примеры*. Вы можете использовать эти элементы, чтобы лучше указать модели, что от нее требуется, и в результате получить лучшие результаты.
Давайте начнем с примера простого промпта:
*Промпт*
```
The sky is
```
*Результат:*
```
blue
The sky is blue on a clear day. On a cloudy day, the sky may be gray or white.
```
Как видите, языковая модель выводит продолжение строк, которое имеет смысл в контексте `"The sky is"`. Результат может быть неожиданным или далеким от задачи, которую вы хотите выполнить.
Этот простой пример также подчеркивает необходимость предоставления большего контекста или инструкций о том, что именно вы хотите достичь.
Давайте попробуем немного улучшить его:
*Промпт:*
```
Complete the sentence:
The sky is
```
*Результат:*
```
so beautiful today.
```
Уже лучше, не так ли? Вы сказали модели завершить предложение, поэтому результат выглядит гораздо лучше, так как он точно следует вашей инструкции ("Complete the sentence"). Такой подход к проектированию оптимальных промптов для указания модели выполнения задачи называется **промпт инжинирингом**.
Приведенный выше пример - это базовая иллюстрация того, что сегодня возможно с помощью LLM (Large Language Models). Современные LLM могут выполнять самые разные задачи, начиная от суммирования текста и математического рассуждения, и заканчивая генерацией кода.
## Форматирование промптов
Вы попробовали очень простой промпт выше. Стандартный формат промпта имеет следующую структуру:
```
<Question>?
```
или
```
<Instruction>
```
Вы можете отформатировать его в формат вопроса и ответа (QA), который является стандартным для многих наборов данных QA, следующим образом:
```
Q: <Question>?
A:
```
При применении такого форматирования промпта это также называется *промптингом без примеров* (zero-shot prompting), то есть вы напрямую запрашиваете ответ у модели без предоставления каких-либо примеров или демонстраций задачи, которую вы хотите выполнить. Некоторые большие языковые модели имеют возможность выполнять промптинг без примеров, но это зависит от сложности и знания задачи.
Учитывая стандартный формат выше, одна популярная и эффективная техника промптинга называется *промптинг с несколькими примерами* (few-shot prompting), где вы предоставляете примеры (т.е. демонстрации). Вы можете отформатировать промпты с несколькими примерами следующим образом:
```
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?
<Answer>
<Question>?
```
В версии в формате вопроса и ответа (QA) это будет выглядеть так:
```
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A:
```
Имейте в виду, что использование формата вопроса и ответа (QA) не является обязательным. Формат промпта зависит от задачи. Например, вы можете выполнить простую задачу классификации и дать образцы, демонстрирующие задачу, следующим образом:
*Промпт:*
```
This is awesome! // Positive
This is bad! // Negative
Wow that movie was rad! // Positive
What a horrible show! //
```
*Результат:*
```
Negative
```
Промпты с несколькими примерами позволяют учиться в контексте, что означает, что языковые модели могут обучаться задачам на основе нескольких демонстраций.

View File

@ -0,0 +1,15 @@
# Элементы промпта
По мере того как мы рассматриваем все больше примеров и применений инженерии промптов, вы заметите, что определенные элементы составляют промпт.
Промпт содержит любой из следующих элементов:
**Инструкция** - конкретная задача или инструкция, которую вы хотите, чтобы модель выполнила
**Контекст** - внешняя информация или дополнительный контекст, который может направить модель на более точные ответы
**Входные данные** - вход или вопрос, на который мы хотим найти ответ
**Индикатор вывода** - тип или формат вывода.
Вам не нужны все четыре элемента для промпта, и формат зависит от задачи. Мы рассмотрим более конкретные примеры в грядущих руководствах.

View File

@ -0,0 +1,290 @@
# Примеры промптов
Предыдущий раздел представил базовый пример того, как использовать промпты с LLM.
В этом разделе мы предоставим больше примеров того, как использовать промпты для выполнения различных задач и введем ключевые концепции на примерах. Часто лучший способ изучить концепции - пройти через примеры. Несколько примеров ниже иллюстрируют, как вы можете использовать хорошо продуманные промпты для выполнения различных типов задач.
Темы:
- [Сжатие текста](#Сжатие-текста)
- [Извлечение информации](#Извлечение-информации)
- [Вопросно-ответные системы](#Вопросно-ответные-системы)
- [Классификация текста](#Классификация-текста)
- [Диалог](#Диалог)
- [Генерация кода](#Генерация-кода)
- [Рассуждение](#Рассуждение)
---
## Сжатие текста
Одна из стандартных задач в генерации естественного языка - это сжатие текста. Сжатие текста может включать множество различных вариантов и областей. Фактически, одно из наиболее перспективных применений языковых моделей - это возможность сжатия статей и концепций в быстрые и легко читаемые резюме. Давайте попробуем базовую задачу сжатия текста с помощью промптов.
Предположим, вы хотите узнать о антибиотиках, и вы можете попробовать следующий промпт:
*Промпт:*
```
Explain antibiotics
A:
```
*Результат:*
```
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the bodys immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
```
В формате "A:" указывается явный промпт для ответа, который вы используете в вопросно-ответной форме. Вы использовали это здесь, чтобы сообщить модели, что ожидается продолжение. В этом примере не совсем ясно, насколько это помогает, но мы вернемся к этому позже. Предположим, что это слишком много информации, и вам хотелось бы сжать ее еще больше. На самом деле, вы можете указать модели сжать ее в одно предложение, например, так:
*Промпт:*
```
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the bodys immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
Explain the above in one sentence:
```
*Результат:*
```
Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.
```
Не обращая слишком много внимания на точность вывода выше, о которой мы поговорим позже, модель попыталась сжать параграф в одно предложение. Вы можете экспериментировать с инструкциями, чтобы улучшить результаты.
---
## Извлечение информации
Хотя языковые модели обучаются выполнять генерацию естественного языка и связанные задачи, они также способны выполнять классификацию и ряд других задач обработки естественного языка (NLP).
Вот пример промпта, извлекающего информацию из заданного параграфа.
*Промпт:*
```
Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts.
Mention the large language model based product mentioned in the paragraph above:
```
*Результат:*
```
The large language model based product mentioned in the paragraph above is ChatGPT.
```
Есть множество способов улучшить результаты выше, но это уже очень полезно.
К настоящему моменту должно быть очевидно, что вы можете попросить модель выполнить различные задачи, просто указав ей, что делать. Это мощная возможность, которую уже используют разработчики продуктов и искусственного интеллекта для опытов и создания полезных приложений.
Источник параграфа: [ChatGPT: five priorities for research](https://www.nature.com/articles/d41586-023-00288-7)
---
## Вопросно-ответные системы (Q&A)
Один из лучших способов получить от модели конкретные ответы - это улучшить формат промпта. Как было рассмотрено ранее, промпт может сочетать в себе инструкции, контекст, входные данные и индикаторы вывода для получения улучшенных результатов. Хотя эти компоненты не являются обязательными, это является хорошей практикой, поскольку чем более конкретными вы будете в инструкции, тем лучше результаты вы получите. Ниже приведен пример того, как это может выглядеть при использовании более структурированного промпта.
*Промпт:*
```
Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.
Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.
Question: What was OKT3 originally sourced from?
Answer:
```
*Результат:*
```
Mice.
```
Контекст получен из [Nature](https://www.nature.com/articles/d41586-023-00400-x).
---
## Классификация текста
До сих пор вы использовали простые инструкции для выполнения задачи. В качестве промпт-инженера вам нужно стать лучше в предоставлении более точных инструкций. Но это еще не все! Вы также обнаружите, что для более сложных случаев просто предоставление инструкций будет недостаточно. Здесь вам нужно подумать больше о контексте и разных элементах, которые можно использовать в промпте. Другие элементы, которые вы можете предоставить, это `входные данные` или `примеры`.
Давайте попробуем продемонстрировать это на примере классификации текста.
*Промпт:*
```
Classify the text into neutral, negative or positive.
Text: I think the food was okay.
Sentiment:
```
*Результат:*
```
Neutral
```
Вы дали инструкцию классифицировать текст, и модель вернула `'Neutral'`, что является правильным. В этом ничего плохого, но допустим, что вам действительно нужно, чтобы модель возвращала метку в точно нужном формате. Вместо `Neutral` вы хотите, чтобы она возвращала `neutral`. Как это достичь? Есть несколько способов сделать это. Вам важна конкретность, поэтому чем больше информации вы можете предоставить промпту, тем лучше результаты. Вы можете попробовать предоставить примеры, чтобы указать правильное поведение. Давайте попробуем снова:
*Промпт:*
```
Classify the text into neutral, negative or positive.
Text: I think the vacation is okay.
Sentiment: neutral
Text: I think the food was okay.
Sentiment:
```
*Результат:*
```
neutral
```
Отлично! На этот раз модель вернула `neutral`, что является точной меткой, которую вы искали. Кажется, что пример, предоставленный в промпте, помог модели быть конкретной в выводе.
Чтобы показать, почему иногда важна конкретность, посмотрите на следующий пример и найдите проблему:
*Промпт:*
```
Classify the text into nutral, negative or positive.
Text: I think the vacation is okay.
Sentiment:
```
*Результат:*
```
Neutral
```
В чем проблема? На подсказку, придуманная метка `nutral` полностью игнорируется моделью. Вместо этого модель выводит `Нейтральный`, так как она немного предвзята к этой метке. Но предположим, что вам действительно нужно `nutral`. Как исправить это? Возможно, вы можете попробовать добавить описания к меткам или добавить больше примеров в промпт? Если вы не уверены, мы обсудим несколько идей в следующих разделах.
---
## Диалог
Одно из самых интересных применений промпт-инженерии - это инструктирование LLM-системы о том, как вести себя, какая должна быть ее намеренность и какая должна быть ее личность. Это особенно полезно, когда вы создаете системы диалога, такие как чат-боты для обслуживания клиентов.
Например, давайте создадим систему диалога, которая способна генерировать более технические и научные ответы на вопросы. Обратите внимание, как вы явно указываете, как она должна себя вести через инструкцию. Иногда это называют *ролевой промптинг*.
*Промпт:*
```
The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.
Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of blackholes?
AI:
```
*Результат:*
```
Sure! Black holes are regions of spacetime where the gravitational force is so strong that nothing, not even light, can escape from it. They are created when a very massive star dies and its core collapses in on itself, forming a singularity of infinite density. The intense gravity of the singularity pulls in all the matter and radiation around it, creating the black hole.
```
Наш исследовательский ассистент звучит слишком технически, верно? Хорошо, давайте изменим это поведение и научим систему давать более доступные ответы.
*Промпт:*
```
The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.
Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI:
```
*Результат:*
```
Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.
```
Вы сделали некоторый прогресс. Можно продолжать улучшать это. Если вы добавите больше примеров, вы можете получить еще лучшие результаты.
---
## Генерация кода
Одно из применений, в которых LLMs довольно эффективны, - это генерация кода. Copilot - прекрасный пример этого. С помощью хорошо продуманных промптов вы можете выполнять множество задач по генерации кода. Рассмотрим несколько примеров ниже.
Сначала попробуем простую программу, которая приветствует пользователя.
*Промпт:*
```
/*
Ask the user for their name and say "Hello"
*/
```
*Результат:*
```
let name = prompt("What is your name?");
console.log(`Hello, ${name}!`);
```
Обратите внимание, что вам даже не нужно указывать язык программирования.
Давайте немного повысим уровень. Приведенный ниже пример показывает, насколько мощными могут быть LLMs с небольшими усилиями в разработке промптов.
*Промпт:*
```
"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science Department
"""
```
*Результат:*
```
SELECT StudentId, StudentName
FROM students
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');
```
Это очень впечатляюще. В этом примере вы предоставили данные о схеме базы данных и попросили его сгенерировать корректный запрос MySQL.
---
## Рассуждение
Возможно, одна из самых сложных задач для LLM на сегодняшний день - это задача, требующая некоторой формы рассуждения. Рассуждение является одной из наиболее интересных областей из-за типов сложных приложений, которые могут возникнуть из LLM.
Были достигнуты некоторые успехи в задачах, связанных с математическими возможностями. Однако важно отметить, что текущие LLM все еще испытывают трудности с выполнением задач рассуждения, поэтому для этого требуются еще более продвинутые техники промпт-инженерии. Мы рассмотрим эти продвинутые техники позднее. Пока что мы рассмотрим несколько базовых примеров для показа математических возможностей.
*Промпт:*
```
What is 9,000 * 9,000?
```
*Результат:*
```
81,000,000
```
Давайте попробуем что-то более сложное.
*Промпт:*
```
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:
```
*Результат:*
```
No, the odd numbers in this group add up to an odd number: 119.
```
Ответ неправильный! Попробуем улучшить это, улучшив промпт.
*Промпт:*
```
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even.
```
*Результат:*
```
Odd numbers: 15, 5, 13, 7, 1
Sum: 41
41 is an odd number.
```
Гораздо лучше, не так ли? Кстати, я пробовал это несколько раз, и система иногда ошибается. Если вы предоставите более точные инструкции вместе с примерами, это может помочь получить лучшие результаты.
Мы продолжим включать больше примеров распространенных приложений в этом разделе руководства.
В следующем разделе мы рассмотрим еще более продвинутые концепции и техники промпт-инженерии для улучшения результатов при выполнении всех этих и более сложных задач.

View File

@ -0,0 +1,11 @@
# Настройки LLM
При работе с промптами вы взаимодействуете с LLM с помощью API или непосредственно. Вы можете настроить несколько параметров, чтобы получить различные результаты для ваших промптов.
**Температура** - Вкратце, чем ниже значение `температуры`, тем более детерминированными будут результаты в смысле того, что будет выбрано самое вероятное следующее токен. Увеличение температуры может привести к большей случайности, что способствует более разнообразным или творческим результатам. Вы фактически увеличиваете веса других возможных токенов. В плане применения, для задач, связанных с ответами на вопросы на основе фактов, рекомендуется использовать более низкое значение температуры, чтобы стимулировать более точные и краткие ответы. Для генерации стихов или других творческих задач может быть полезно увеличить значение температуры.
**Top_p** - Аналогично, с помощью `top_p`, техники сэмплирования с использованием температуры, называемой сэмплированием ядра, вы можете контролировать, насколько детерминированной будет модель в генерации ответа. Если вы ищете точные и фактические ответы, установите низкое значение. Если вы ищете более разнообразные ответы, увеличьте значение.
Общая рекомендация заключается в том, чтобы изменять только один параметр, а не оба.
Перед тем, как перейти к некоторым простым примерам, имейте в виду, что ваши результаты могут отличаться в зависимости от версии LLM, которую вы используете.

View File

@ -0,0 +1,108 @@
# Общие рекомендации по разработке промптов
Вот несколько советов, которые стоит иметь в виду при разработке ваших промптов:
### Начните с простого
При разработке промптов стоит помнить, что это итеративный процесс, требующий много экспериментов для достижения оптимальных результатов. Хорошей отправной точкой является использование простого плейграунда от OpenAI или Cohere.
Вы можете начать с простых промптов и добавлять больше элементов и контекста по мере стремления к лучшим результатам. Важно итеративно улучшать ваш промпт по мере продвижения. При чтении руководства вы увидите множество примеров, где специфичность, простота и краткость часто дадут вам лучшие результаты.
Когда у вас есть большая задача, включающая множество различных подзадач, вы можете попробовать разбить задачу на более простые подзадачи и постепенно улучшать результаты. Это позволяет избежать слишком большой сложности в процессе проектирования промпта с самого начала.
### Инструкция
Вы можете разрабатывать эффективные промпты для различных простых задач, используя команды для указания модели, что вы хотите достичь, такие как "Write", "Classify", "Summarize", "Translate", "Order", и т.д.
Имейте в виду, что вам также нужно много экспериментировать, чтобы увидеть, что работает лучше всего. Попробуйте разные инструкции с разными ключевыми словами, контекстами и данными, и посмотрите, что работает лучше всего для вашего конкретного случая использования и задачи. Обычно чем более специфичным и соответствующим контекст для задачи, которую вы пытаетесь выполнить, тем лучше. Мы затронем важность выборки и добавления большего контекста в следующих руководствах.
Другие рекомендуют размещать инструкции в начале промпта. Еще одна рекомендация состоит в использовании некоторого ясного разделителя, например "###", для отделения инструкции и контекста.
Например:
*Промпт:*
```
### Instruction ###
Translate the text below to Spanish:
Text: "hello!"
```
*Результат:*
```
¡Hola!
```
### Специфичность
Будьте очень конкретными относительно инструкции и задачи, которую вы хотите, чтобы модель выполнила. Чем более подробным и детальным будет промпт, тем лучше результаты. Это особенно важно, когда у вас есть желаемый результат или стиль генерации, который вы ищете. Нет конкретных токенов или ключевых слов, которые приводят к лучшим результатам. Гораздо важнее иметь хороший формат и описательный промпт. Фактически, предоставление примеров в промпте очень эффективно для получения желаемого вывода в конкретных форматах.
При разработке промптов стоит также учитывать длину промпта, так как есть ограничения на то насколько длинным может быть промпт. Подумайте о том, насколько конкретным и детальным вы должны быть. Включение слишком многих ненужных деталей не всегда является хорошим подходом. Детали должны быть соответствующими и способствовать выполнению задачи. Это то, с чем вам придется много экспериментировать. Мы настоятельно рекомендуем проводить много экспериментов и итераций для оптимизации промптов для ваших приложений.
В качестве примера рассмотрим простой промпт для извлечения определенной информации из текста.
*Промпт:*
```
Extract the name of places in the following text.
Desired format:
Place: <comma_separated_list_of_company_names>
Input: "Although these developments are encouraging to researchers, much is still a mystery. “We often have a black box between the brain and the effect we see in the periphery,” says Henrique Veiga-Fernandes, a neuroimmunologist at the Champalimaud Centre for the Unknown in Lisbon. “If we want to use it in the therapeutic context, we actually need to understand the mechanism.""
```
*Результат:*
```
Place: Champalimaud Centre for the Unknown, Lisbon
```
Исходный текст взят из [этой статьи Nature](https://www.nature.com/articles/d41586-023-00509-z).
### Избегайте неточностей
Учитывая вышеуказанные рекомендации о детализации и улучшении формата, легко попасть в ловушку желания быть слишком умным в промптах и, возможно, создавать неточные описания. Часто лучше быть конкретным и прямым. Аналогия здесь очень похожа на эффективную коммуникацию - чем прямее, тем эффективнее передается сообщение.
Например, вы можете заинтересоваться изучением концепции промптинга. Вы можете попробовать что-то вроде:
```
Explain the concept prompt engineering. Keep the explanation short, only a few sentences, and don't be too descriptive.
```
Из промпта выше не ясно, сколько предложений использовать и в каком стиле. Возможно, с помощью таких промптов вы все равно получите неплохие ответы, но лучший промпт будет очень конкретным, кратким и по существу. Например:
```
Use 2-3 sentences to explain the concept of prompt engineering to a high school student.
```
### Делать или не делать?
Еще один распространенный совет при разработке промптов - избегать формулировки того, что не нужно делать, а вместо этого указывать, что нужно делать. Это способствует большей специфичности и фокусу на деталях, которые приводят к хорошим результатам модели.
Вот пример неудачного чат-бота по рекомендации фильмов, когда я указываю, что не нужно делать, из-за того, как я сформулировал инструкцию - фокусируясь на том, что не нужно делать.
*Промпт:*
```
The following is an agent that recommends movies to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.
Customer: Please recommend a movie based on my interests.
Agent:
```
*Результат:*
```
Sure, I can recommend a movie based on your interests. What kind of movie would you like to watch? Do you prefer action, comedy, romance, or something else?
```
Вот лучший промпт:
*Промпт:*
```
The following is an agent that recommends movies to a customer. The agent is responsible to recommend a movie from the top global trending movies. It should refrain from asking users for their preferences and avoid asking for personal information. If the agent doesn't have a movie to recommend, it should respond "Sorry, couldn't find a movie to recommend today.".
Customer: Please recommend a movie based on my interests.
Agent:
```
*Результат:*
```
Sorry, I don't have any information about your interests. However, here's a list of the top global trending movies right now: [list of movies]. I hope you find something you like!
```
Некоторые из приведенных примеров были взяты из статьи ["Best practices for prompt engineering with OpenAI API"](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api).