Последняя редакция: 22.12.2023
Чего-то не хватает? Я в чём-то не прав? Пиши, обкашляем: [email protected]
Статья в разработке. Новые записи будут добавляться и удаляться со временем
test
Предисловие
- Это ни в коем разе не полный и исчерпывающий гайд по ботмейкингу, но скорее набор полезных практик и советов, которые поднимут качество итогового продукта напорядок.
- Подразумевается что читатель уже имеет какой-либо опыт в ботмейкинге и знаком с популярными языковыми моделями и фронтендами, с терминологией.
- Данные практики не являются абсолютом и должны соблюдаться по усмотрению.
- Настоятельно реккомендуется дополнительно ознакомиться с этими статьями от наших западных друзей:
https://rentry.org/meta_botmaking_list
А в частности, с этой, откуда былонагло украденоодолжено большинство советов: https://rentry.org/AdvancedCardWritingTricks - Передаю искреннее спасибо калфе за помощь в создании этого мануала.
Глоссарий
фронтенд - сервисы TavernAI, SillyTavern, RisuAI, AgnAI, Venus, и прочие
V2 - Расширение над устаревшей спецификацией карточек персонажа. Добавляет поддержку возможности перезаписи промпта, дополнительные приветствия, указание авторства, и версионирование. Поддерживается всеми фронтендами.
промпт - "Main Prompt" и "Jailbreak Prompt" (как часть базового промпта, не prompt override из V2) в SillyTavern, RisuAI, Venus. "Presets" в AgnAI.
описание - поля "personality," "description," "scenario" в редакторе персонажа
карточка - персонаж
приветственное сообщение/гритинг/приветствие - то, что юзер видит как первое сообщение при создании нового чата
свайп - альтернативное приветственное сообщение, особенность V2 карточек
пользователь, юзер, ГГ - главный герой, протагонист чата, чью роль настоящий человек, сидящий за компьютером, берёт на себя
читатель - настоящий, физический, разумный человек во плоти, что кумит на твой шедевр за компом
ЛЛМ - Large Language Model, языковые модели, ИИ
ГПТ - ChatGPT. Языковые модели GPT-3.5, GPT-4, GPT-4.5-Turbo от OpenAI
клод - Языковые модели Claude от Anthropic
Какой формат использовать?
W++, Boostyle, AliChat, и прочие - забудь как страшный сон. Эти форматы когда-то были костылями для старых языковых моделей и более не актуальны! ИИ поймёт твою карточку и без необходимости в подобных ухищрениях.
Что использовать? Проза и анкета
Проза
{{char}} is {{user}}'s 12 years old little sister. She is arrogant, teasing, and really hungry for {{user}}'s cock.
ИМХО - литературный формат всегда предпочтительней. Одна из особенностей ЛЛМ - качество вывода часто зависит от качества ввода (правило "garbage in - garbage out"). Это куда сильнее выражено на базовых текстовых моделях без дообучения под "ассистента"; менее на "жирных" моделях вроде клода или ГПТ.
Анкетка
Суть - упрощённый до минимума W++. Без скобок, кавычек, и прочего сахара.
Также их можно миксовать, и записывать отдельные части в как в прозе, так и анкетой.
Описание в приветствии
Какую иную инфу нужно включить в описание персонажа?
Проведи лакмусовый тест - задай вопрос: Если я встречу этого персонажа через год, будет ли это его описывать? Если радикально поменять обстановку, что изменится в персонаже, а что нет?
вопрос | анализ | вердикт |
---|---|---|
Будут ли его звать так-же? | Наврядли он когда-нибудь поменяет имя | включить в описание |
Будет ли он носить эту одежду? | Одежда постоянно меняется | исключить из описания |
Будет ли он предпочитать тот или иной стиль одежды? | Одежда может быть другой, но предпочтения куда менее изменчивы | включить в описание |
Персонаж внезапно стал попаданцем, останется ли он таким-же стесняшкой/доминантной стервой/шлюхой? | (исключая псих. травмы и шок) А почему что-то должно поменяться? | включить в описание |
Всё, что не попало в описание можно реализовать в приветственном сообщении:
{{char}} встречает тебя в лёгком кружевном белье.
Или даже скрыть от читателя за невидимым текстом в приветствии:
<!-- сейчас {{char}} носит кружевное белье -->
Важные мелочи
- Никогда не ипользуй поле "scenario" в редакторе персонажа. Просто не нужно, всё отлично укладывается в гритинг.
- Используй комментарии в описании персонажа. Это полезно как для тебя, так и для любопытных картоделов что обязательно заглянут под шапку и разберут твой промпт на винтики.
SillyTavern поддерживает подобный формат:ИИ видит текст до {{// ИИ не будет видеть текст внутри этого макроса}} и после скобок
Внутри комментариев можно разграничивать категории описания, мысли, советы, ссылки на онлайн ресурсы и источники информации о персонаже. - Используй первое сообщение как "предисловие от автора". Этот совет актуален для V2 карт со сложными правилами и игр/рпг. Добавь от себя мануал по использованию карты, тесты на различных моделях, пожелания Тёте Саре из Одессы, и не забудь прорекламировать свой чуб.
- Перенеси настоящие приветствие на следующий свайп. Само собой предупреди читателя.
- Пожалуйста, воздержись от использования языковых моделей для создания карточек. Бездушный некачественный стиль ГПТ всегда очевиден; он сильно режет глаз, и с малой вероятностью может склонить ИИ к генерации такого-же бездушного текста в ответе. ГПТ добавляет от себя много воды, тратя токены на бесполезную графоманию.
- Я знаю, лень, но проведи хоть какую редактуру и замени известные ГПТ-измы и обороты речи (aka "petite," "mischievous," "молодая ночь," "звук пронёсся эхом по комнате," и прочее) на подходящие по смыслу синонимы.
- То же касается клода и локальных моделей в некоторой степени.
Не пиши за пользователя!
- Избегай любых описаний пользователя, особенно внешности, за исключением критической информации для данной карточки.
- Описывай пользователя с чужой перспективы, как его воспринимают другие персонажи.
- Используй гендерно-нейтральные термины, обращайся к юзеру не как он/она, а напрямую по имени или через
they/their
. Пожалей нервы извращенцев, которые отыгрывают за девушек.
плохо | хорошо |
---|---|
{{user}} is {{char}}'s older brother. He is pretty and has long cock.' |
{{user}} is {{char}}'s older sibling. {{char}} finds them attractive.' |
Использование prompt overrides в V2 карточках
- Prompt overrides - очень мощный, но при этом опасный инструмент. Пожалуйста, никогда не прикасайся к нему без необходимости. В 99% случаев все твои хотелки реализуются через описание персонажа, example messages, или приветственное сообщение.
- У большинства читателей эта функция отключена совсем по дефолту. Предупреди их об этом.
- Всегда добавляй
{{original}}
в начало или конец кастомного промпта. Иначе я тебя задушу.
Чеклист и полезные ресурсы
Полный и исчерпывающий список атрибутов по категориям
База знаний произведений, персонажей, и основных штампов в масс культуре
Не знаешь с чего начать? Думаешь что-то пропустил? Используй этот шаблон для своей карточки:
- Базовая информация
- имя
- настоящий и воспринимаемый возраст
- культура и национальность
- Кожа
- цвет
- текстура
- видимые приметы (пирсинг,тату, раны, шрамы)
- Волосы
- причёска
- цвет
- Глаза
- цвет
- форма/выразительность
- Лицо
- выразительность
- видимые приметы
- макияж
- Тело
- Размер/телосложение
- Рост и Вес (вместо точных значений лучше указывать относительные, например: "выше среднего," "гном," "худой")
- Образ
- Стиль одежды, аксессуаров и обуви. Движение/вайб образа.
- Трусики/исподнее (неприкрытый фетиш автора этого гайда)
- Психология
- Атрибуты характера (яндере, наглый, наивный, и тому подобное)
- 4 темперамента, MBTI/16 personalities, Enneagram (спорно, говорят помогает)
База данных для различных персонажей - Предпочтения/Неприязнь
- Привычки/Особенности/Гиммики
- Хобби
- Мировоззрение
- Религиозные взгляды
- Политические взгляды
- Социальные взгляды
- Базовые ценности
- С какой ролью персонаж себя ассоциирует
- Биография
- Друзья/Враги/Родные/Питомцы
- Биография
- Речь
- Акцент
- Жестикуляция
- Словарь
- Темп и высота голоса
- Проблемы с речью
- Разговорчивость
- Сексуальное поведение
- Гениталии
- Прочие интимные места
- Фетиши
- Предпочитаемые позиции и места
- Поведение в постели
поддержка HTML-тегов в фронтендах
RisuAI
AgnAI
SillyTavern
Поддержка Markdown в фронтендах
SillyTavern
AgnAI
RisuAI
Макросы
Эти макросы поддерживаются большинством фронтендов:
{{user}}
{{char}}
- я думаю это объяснять не нужно
{{random:1,2,3,4}}
- случайный выбор из нескольких вариантов
Дирижируем сюжет
ИИ очень плох в генерации случайных событий и следовании определённому сценарию, но можно обойти это ограничение этими костылями:
Используя лорбуки
Актуально только для SillyTavern
случайное событие - Создай новую запись под случайное событие и укажи Trigger % как шанс
преопределённое событие
Тут куда хитрее. Можно добавить определённые "якоря" в повествовании, по которым будут тянуться нужные записи из лорбука. В данном примере таким "якорем" служит глава истории.
Первое сообщение:
Запись в лорбуке:
Джейлбрейк
Техника "статы"
Можно добавить какую-нибудь переменную, которая ИИ обязана увеличивать/уменьшать каждый ход, и по достижении совершить какое-либо действие.
Описание персонажа:
Кастомный джейлбрейк:
Первое сообщение:
Цитаты великих
ghfhgfhft
Ну, для меня главное в карточке это концепция. Ей должно следовать всё описание. Если персонаж застенчивый, допустим, то и описание одежды, тела должно быть в этом ключе, что мол есть сисик писик, но перекрыт консервативной одеждой. Можно детально описать даже его, только нужно использовать язык аутентичный типа: "Она всегда стеснялась своего тела, и её никто не иногда не видел голой, но при этом описание тела".
Также, если у вас рп ориентированная карта, то желательно прописать характер. Чем точнее вы это сделаете, тем сетка будет точнее отыгрывать. У нейронки есть та же самая информацию, что и у вас, то есть она видит только то, что вы ей написали. Представьте, что вы другой человек, внимательно прочитайте своё описание и гритинг. А после этого ответи себе на вопрос: смогли ли бы вы на основании этих данных сами отыграть то, что задумывали? Если ответ "нет" или "не совсем", то нужно продолжать менять описание пока он не станет "да". А там уже тестить самого чара, смотреть что работает, что нужно добавить, что можно убрать.
tantsushot
Использование prompt overrides в V2 карточках
эту хрень вообще запретить надо после появления character note, она не работает адекватно, на хмлк клодо пресетах промпт оверрайд не будет работать из-за отключенного джейла
глубину использовать нечеткую, потому что это глубина ответов ассистента, когда правила пишутся под Assistant: они работают
я не знаю как это форсить, опытные вниманиебляди пожалуйста форсите эту хуйню
Merchant
Если смотреть на этот гайд как на гайд для людей, которые собираются делать своих первых ботов, то в целом там написана минимальная часть того, что нужно знать, а остальное они либо сами через некоторое время поймут во время тестирования ботов (если конечно будут это делать), либо уже по мере создания новых ботов и получения фидбэка на созданных или изучения чужих ботов.
Но есть и спорные моменты - например, свайп это не только альтернативный гритинг, а ещё и альтернативные варианты обычных ответов бота. И можно было бы упомянуть заодно с ГПТ и Клода, его тоже все прекрасно знают, да и про локалки можно было бы пару слов написать, они тоже свою аудиторию имеют.
Насчёт комментариев в описании тоже спорная идея, обычно в большинстве ботов и так всё понятно будет даже для ньюфага. Предисловие от автора в основном гритинге скорее для исключительных случаев, ведь обычно карты берут с чуба либо из рентри автора бота, а там уже доступен нормальный авторс ноут на странице, где ты описываешь всё что нужно, а в гритинге просто вкратце дописываешь самое важное, да и то если реально потребуется.
Но вообще, как мне кажется, важнее всего чтобы автор бота сам хорошо представлял его (бота) концепт/суть/смысл/сценарий/поведение, без этого шансы на успех и годноту будут снижаться очень быстро.
висмут
самое главное, чтобы формат карточки был однородным к остальному промпту и не вызывал конфликты форматирования
ну и правильное позиционирование элементов, имхо, потому что стандартное таверны "сценарио хуй знает где", "примеры прямо перед ебалом (что тоже конфликты может вызывать)"