Контекст
Теперь, когда вы понимаете, как работают модели ИИ, давайте разберёмся, как повысить качество их результатов.
Можно подумать, что для улучшения результата достаточно писать лучшие подсказки. Это действительно помогает, но упускает главное: работа с моделями ИИ — это прежде всего управление предоставляемым им контекстом.
Это как в кулинарии. Допустим, мы готовим суп.
У вас есть множество входов — все ингредиенты. Вы следуете рецепту, по ходу отслеживая прогресс. И в итоге получаете вкусный суп.
Разные повара могут добавлять или менять ингредиенты по своему вкусу, и даже при точном следовании одному и тому же рецепту вкус на выходе может немного отличаться.
Это похоже на работу с моделями ИИ! Рассмотрим аналогичный пример для разработки:
- У вас может быть много входных данных: текущая кодовая база, файлы и подсказка, объясняющая модели ИИ, чего вы хотите добиться
- Вы следуете плану — составленному человеком или предложенному самой моделью, — который может превратиться в список задач с отметками о выполнении
- В итоге вы получаете сгенерированный код, который можно применить в вашем проекте
Системные и пользовательские промпты
Ваши входные данные, как и результаты модели, становятся частью «контекста». Представьте контекст как длинный список, где модель ИИ хранит рабочую память для диалога.
В начале списка находится системный промпт. Так создатель инструмента может задать инструкции или стиль, которым должна с��едовать модель. Это помогает направить результат в определенную сторону, в том числе задавая конкретные правила, которым нужно следовать.
Затем идет пользовательское сообщение или промпт. Это могут быть любые указания, которые вы хотите дать модели. Например, добавить новый маршрут для управления учетными записями пользователей. Вам не обязательно писать с идеальной орфографией или грамматикой, поскольку модели ИИ удивительно хорошо понимают, что вы имели в виду, хотя это все равно не повредит.
И это не обязательно должен быть только текст. Многие ИИ‑продукты теперь поддерживают прикрепление изображений, где базовая модель ИИ может читать и понимать содержимое изображения и включать это текстовое представление в контекст.
Какие элементы входят в контекст модели во время диалога?
Select all that applyВключение контекста
Инструменты вроде Cursor могут автоматически добавлять во входной контекст другую релевантную информацию в зависимости от состояния вашей кодовой базы. Например, ваши открытые файлы, вывод терминала, ошибки линтера и многое другое.
После отправки входных данных модели она генерирует и возвращает результат. Для простых вопросов это может быть текст. Для задач по написанию кода это могут быть фрагменты, которые можно применить в вашей кодовой базе. Всё, что возвращает модель, является частью выходного контекста.
Ваш диалог может продолжаться много «шагов» туда‑сюда между вами и моделью ИИ. Каждое сообщение в диалоге, включая и входные, и выходные данные, сохраняется как часть рабочей памяти в контексте.
Со временем этот список становится длиннее. Это важно учитывать! Как и в разговоре с человеком, в памяти можно удерживать лишь ограничённый объём контекста одновременно.
По мере продолжения разговора становится сложнее помнить то, что было сказано 3 часа назад. Поэтому понимание и управление контекстом — важный навык, который стоит освоить.
Ограничения контекста
У каждой модели ИИ есть собственный предел контекста: достигнув его, она перестанет принимать новые сообщения в беседе. Поэтому многие инструменты ИИ показывают пользователю, насколько они близки к этому пределу, или предлагают способы сжатия и краткого изложения текущего диалога, чтобы оставаться в рамках лимита.
Далее в курсе мы разберём практические примеры управления контекстом в Cursor. Пока мы говорили только о том, как передавать модели контролируемый нами контекст, например текст или изображения. А что если мы хотим, чтобы модель сама динамически получала контекст?
Здесь и пригодится вызов инструментов.