Что входит в контекст, отправляемый нейросети?
О нейросети
Контекст — это данные, которые отправляются языковым моделям ИИ и учитываются при генерации вашего следующего действия в Questsmith.
Контекст в Questsmith состоит из множества элементов, и в этой статье объясняется, как эти элементы объединяются при каждом обращении к ИИ.
Если в вашем приключении недостаточно контекста для всех ключевых элементов сюжета, карточек истории и других входных данных, часть элементов автоматически обрезается или удаляется.
Контекст состоит из двух разделов
Когда контекст переполняется, Questsmith использует два раздела: обязательный и динамический.
Обязательные элементы включают инструкции, ключевые элементы сюжета, сводку сюжета, заметку автора, переднюю память для скриптов и последнее выполненное действие, либо последний ответ ИИ, если последним действием было продолжение. В целом мы стараемся включать полную длину всех обязательных элементов, если они присутствуют.
Если общий объём обязательных элементов превышает 70 процентов размера контекста, мы сначала включаем самые важные разделы, а остальное обрезаем или исключаем, чтобы уложиться в лимит 70 процентов токенов. Передняя память и последнее действие всегда включаются полностью. Пока лимит не заполнен, мы включаем в порядке приоритета: заметку автора, ключевые элементы сюжета, инструкции для ИИ и сводку сюжета. Если раздел не помещается в оставшиеся токены, мы обрезаем его конец, чтобы он поместился. Элементы с более низким приоритетом не включаются.
Динамические элементы включают карточки истории, банк памяти и историю сюжета, то есть ваши прошлые действия. Для них применяются более гибкие правила.
Динамические элементы заполняют токены, оставшиеся после обязательных элементов. Около 25 процентов оставшихся токенов уходит на подходящие карточки истории, около 50 процентов — на историю, до 75 процентов — на историю, если банк памяти отключён, и около 25 процентов — на банк памяти.
Карточки истории включаются в зависимости от того, насколько недавно и как часто использовались их триггеры. Мы сортируем и приоритизируем их по этим критериям, а затем включаем столько, сколько помещается в доступное пространство.
Как система приоритизирует историю
При оценке совпадений мы учитываем как минимум 4 действия при поиске триггеров. Однако если для карточек истории доступно более 500 токенов, мы используем число доступных токенов, разделённое на 100. Если доступно 900 токенов, мы проверяем 9 последних действий на совпадение триггеров. Количество включённых карточек истории зависит от релевантности совпадений и длины каждой совпавшей карточки.
Мы стараемся использовать как можно больше истории приключения. Начинаем с самого последнего действия, которое включается всегда, и добавляем каждое предыдущее действие в контекст, пока не заполнится доступное место или не будет включена вся история. Обычно это около 50 процентов токенов, доступных после обязательных элементов, или 75 процентов, если банк памяти отключён.
Затем банк памяти использует токены, оставшиеся после истории, обычно около 25 процентов токенов, оставшихся после включения обязательных элементов. Банк памяти извлекает воспоминания, отсортированные по релевантности к последнему действию. Мы добавляем столько подходящих воспоминаний, сколько помещается в доступные токены для банка памяти.