Перейти к содержанию

Контекст

Контекст — это вся дополнительная информация, которую AI-модель получает вместе с вашим запросом. Именно контекст помогает модели понять, о чём вы говорите, что уже известно и какой ответ будет уместен.

Если говорить совсем просто, запрос — это ваш вопрос. А контекст — всё, что помогает ответить на него точнее.

Например, если вы пишете только «объясни эту ошибку», модели может не хватить данных. Но если добавить текст ошибки, кусок кода и краткое описание задачи, ответ обычно становится намного полезнее.

Зачем нужен контекст

AI-модель не знает, что именно вы имеете в виду, если вы это не передали. Она не видит ваш экран, не читает мысли и не понимает проект «сама по себе».

Контекст нужен, чтобы модель:

  • понимала тему разговора;
  • учитывала предыдущие сообщения;
  • видела код, текст, документацию или ошибку;
  • не угадывала лишнее;
  • давала более точный и полезный ответ.

Чем лучше подобран контекст, тем выше шанс получить результат, близкий к реальной задаче.

Из чего может состоять контекст

Контекст бывает разным. В зависимости от сценария в него могут входить:

  • ваше текущее сообщение;
  • предыдущие сообщения в диалоге;
  • прикреплённые файлы;
  • выделенный фрагмент кода;
  • ошибки компиляции или логи;
  • документация;
  • структура проекта;
  • изменения Git;
  • системные инструкции и правила.

Для пользователя всё это выглядит как «дополнительные данные, которые модель учитывает перед ответом».

Простой пример

Рассмотрим один и тот же вопрос.

Без контекста

Запрос:

Почему функция не работает?

Такой вопрос слишком общий. Модель может только гадать.

С контекстом

Запрос:

Почему функция не работает?
Вот код:

function divide(a, b) {
  return a / b
}

Ошибка возникает, когда b = 0.
Объясни простыми словами для новичка.

Теперь модель уже понимает:

  • о какой функции идёт речь;
  • в каком месте проблема;
  • какой стиль ответа нужен.

Именно это и делает контекст полезным.

Какие бывают виды контекста

Контекст удобно делить на несколько типов.

1. Контекст диалога

Это история переписки. Модель учитывает ваши прошлые сообщения и свои предыдущие ответы.

Благодаря этому можно:

  • задавать уточняющие вопросы;
  • продолжать тему без повторения всего с нуля;
  • вести длинный разговор шаг за шагом.

Но у этого есть и обратная сторона. Если в чате накопилось слишком много несвязанных тем, модель может начать путаться.

2. Контекст задачи

Это информация, относящаяся к текущему вопросу. Например:

  • цель задачи;
  • ограничения;
  • желаемый формат ответа;
  • язык программирования;
  • уровень объяснения: для новичка или для опытного разработчика.

Такой контекст особенно важен, когда вы хотите не просто ответ, а конкретный результат.

3. Контекст проекта

Если речь идёт о разработке, важен контекст самого проекта. Сюда могут входить:

  • структура папок;
  • соседние файлы;
  • конфигурация;
  • стиль кода;
  • используемые библиотеки;
  • тесты и документация.

Без такого контекста модель видит только маленький фрагмент и чаще предлагает решения, которые не подходят проекту.

4. Контекст из внешних источников

Иногда модели нужно опираться не только на чат, но и на другие данные. Например:

  • документацию;
  • статьи;
  • базу знаний;
  • Git-историю;
  • данные из внешних сервисов;
  • результаты поиска по кодовой базе.

Это особенно полезно, когда ответ должен опираться на реальные материалы, а не только на общие знания модели.

Контекст в работе с Koda

В Koda контекст может собираться из разных источников. Например:

  • из истории текущей сессии;
  • из файлов и папок, добавленных через @;
  • из кода, открытого в редакторе;
  • из выделенного фрагмента;
  • из документации;
  • из индекса проекта;
  • из навыков и правил;
  • из инструментов и внешних интеграций.

Поэтому один и тот же запрос может дать разный результат в зависимости от того, какой контекст был добавлен.

Что такое контекстное окно

У любой модели есть ограничение на объём текста, который она может обработать за один раз. Этот предел называют контекстным окном.

В контекстное окно входит не только ваш текущий запрос, но и всё остальное:

  • история диалога;
  • прикреплённые материалы;
  • системные инструкции;
  • найденные фрагменты кода и документации;
  • иногда и промежуточные результаты работы.

Если контекста становится слишком много, модель может:

  • перестать учитывать ранние сообщения;
  • отвечать хуже;
  • упустить важные детали;
  • столкнуться с ограничением по длине.

Что такое токены и почему они связаны с контекстом

Объём контекста обычно измеряется в токенах. Токен — это небольшая часть текста. Это не всегда целое слово: иногда токеном может быть часть слова, знак препинания или короткий фрагмент.

Чем длиннее ваш запрос и чем больше дополнительных материалов вы передаёте, тем больше токенов занимает контекст.

Поэтому важно не только «дать побольше информации», но и передать именно то, что действительно помогает решить задачу.

Почему слишком большой контекст — это тоже проблема

Кажется логичным дать модели как можно больше данных. Но на практике слишком большой контекст может мешать.

Основные проблемы такие:

  • важная информация теряется среди лишней;
  • модель начинает цепляться за старые и уже неактуальные детали;
  • растёт стоимость и время обработки;
  • ответы становятся менее сфокусированными.

Хороший контекст — не самый большой, а самый релевантный.

Хорошее правило

Лучше передать 3 действительно полезных фрагмента, чем 30 случайных файлов. Точность часто растёт не от объёма, а от уместности.

Признаки хорошего контекста

Хороший контекст обычно:

  • относится к текущей задаче;
  • достаточно конкретный;
  • не перегружен лишними деталями;
  • содержит нужные примеры, ошибки или ограничения;
  • помогает модели не гадать, а опираться на факты.

Признаки плохого контекста

Плохой контекст часто выглядит так:

  • информации слишком мало;
  • информации слишком много;
  • данные противоречат друг другу;
  • в контекст попали старые или нерелевантные файлы;
  • запрос расплывчатый и не объясняет цель.

Из-за этого модель может отвечать уверенно, но не по делу.

Как начинающему пользователю собирать контекст

Вот несколько простых правил:

  1. Начните с короткого и ясного описания задачи.
  2. Добавьте только те материалы, которые действительно относятся к вопросу.
  3. Если есть ошибка — вставьте её текст целиком.
  4. Если вопрос про код — покажите минимальный нужный фрагмент.
  5. Если нужен конкретный формат ответа — скажите об этом прямо.
  6. Если тема сменилась, иногда лучше начать новый диалог.

Что лучше добавить в запрос на практике

Если нужен разбор ошибки

Добавьте:

  • текст ошибки;
  • кусок кода, где она возникает;
  • что вы ожидали получить;
  • что произошло на самом деле.

Если нужен совет по коду

Добавьте:

  • язык программирования;
  • текущую реализацию;
  • ограничения;
  • желаемый результат.

Если нужно объяснение темы

Добавьте:

  • уровень: новичок или продвинутый;
  • контекст задачи;
  • просьбу привести пример.

Контекст и безопасность

С контекстом важно быть осторожным. Если вы передаёте модели файлы, логи или документы, в них могут оказаться:

  • пароли;
  • токены;
  • персональные данные;
  • внутренние документы;
  • коммерчески чувствительная информация.

Перед добавлением контекста полезно убедиться, что в нём нет лишних секретов или приватных данных.

Осторожно с чувствительными данными

Не добавляйте в контекст секреты, ключи доступа, приватные токены и данные, которые нельзя передавать внешним сервисам.

Контекст и суммаризация

Когда диалог становится длинным, часть старой информации может сжиматься в краткий конспект. Это называется суммаризацией.

Смысл в том, чтобы сохранить важные решения и освободить место в контекстном окне для новых запросов. Это помогает продолжать работу без полного переполнения контекста.

Контекст не равен истине

Даже хороший контекст не делает ответ автоматически правильным. Модель всё равно может ошибиться в выводах, перепутать детали или сделать неверное предположение.

Контекст повышает вероятность хорошего ответа. Но не заменяет проверку, особенно если речь идёт о коде, финансах, праве, безопасности или медицине.

Коротко

Контекст — это всё, что помогает модели понять вашу задачу точнее. Он может включать историю диалога, файлы, код, документацию, ошибки, правила и данные из внешних источников.

Чем релевантнее контекст, тем полезнее обычно получается ответ. Но слишком большой или нерелевантный контекст, наоборот, может ухудшить результат.

Для начинающего пользователя главное правило простое: передавайте не всё подряд, а только то, что действительно нужно для ответа.

См. также: