Я решил в одиночку сделать редактор для писателей. Оказалось, «прикрутить ИИ» - самая простая часть
Привет, Пикабу. Читаю сайт давно, но аккаунт завёл только недавно. Видимо, классический путь: годами молча читать чужие истории, а зарегистрироваться только тогда, когда самому понадобилось что-то рассказать.
Я соло-разработчик и делаю Fanfy - редактор с ИИ для авторов книг, новел, фанфиков и других длинных историй.
Сразу обозначу: это рассказ о собственном продукте, а не независимый обзор и не подборка «десяти лучших нейросетей». Мне хочется показать, почему я вообще полез в эту задачу, что в ней оказалось неожиданно сложным и какие решения сейчас пытаюсь собрать в работающий инструмент.
Всё началось с довольно простой проблемы
Обычный чат с нейросетью неплохо пишет отдельную сцену.
Просишь добавить напряжения в диалог - добавляет. Просишь придумать три варианта встречи героев - пожалуйста. Просишь сделать описание мрачнее - в комнате немедленно появляется дождь, свеча и почему-то запах озона.
Но стоит истории стать длиннее, начинается цирк.
В третьей главе наставник погиб. В седьмой выяснилось, что героиня не умеет плавать. В девятой сломали меч. А в десятой ИИ возвращает наставника, отправляет героиню через реку и вкладывает ей в руку целый меч.
Каждый абзац по отдельности выглядит нормально. Вся книга вместе - уже нет.
Тогда я и подумал: авторам нужен не просто генератор текста. Нужна рабочая среда, которая помнит историю и при этом не отнимает у человека право решать, какой эта история будет.
На этой фразе проект выглядел очень разумным. Дальше началась разработка.
Почему нейросеть для написания книги - это не одно большое поле ввода
Первая очевидная идея: передавать модели весь написанный текст.
Проблема в том, что рукопись - не справочник с правильными ответами. В ней одновременно находятся:
события, которые действительно произошли;
предположения и ложь персонажей;
авторские заметки;
удалённые варианты сцен;
правила мира;
намеренные исключения из этих правил.
Допустим, в старом черновике герой родился в столице, а в новой версии - в северной деревне. Для автора первый вариант больше не существует. Для нейросети это две одинаково уверенные строки.
Большое контекстное окно проблему не решает. Оно похоже на огромный письменный стол: бумаг помещается много, но по папкам они сами не раскладываются.
Поэтому в Fanfy история разделена на понятные сущности: канон, персонажи, план, уже написанные главы и текущая сцена. У фактов есть приоритет: жёсткие правила автора выше догадок модели, утверждённый канон выше случайной импровизации, а написанный текст выше идеи на будущее.
Звучит суховато, зато именно на таких скучных вещах держится момент, когда герой не меняет цвет глаз между двумя абзацами.
Я думал, что главной задачей будет генерация текста
На деле генерация - только одна кнопка в довольно большой комнате.
Автору нужно создать историю, собрать персонажей, держать рядом канон, писать и править главы, возвращаться к прошлым версиям, делать обложку, публиковать текст и понимать, как он выглядит для читателя.
Если всё это разнести по разным чатам, заметкам и документам, половина внимания уходит не на книгу, а на перенос контекста между вкладками.
Поэтому сейчас в проекте уже есть:
студия с историями, персонажами, каноном и планом;
редактор глав;
ИИ-действия для продолжения и работы с текстом;
память контекста истории;
версии глав и восстановление текста;
обложки;
публикация историй и отдельный режим чтения.
До «всё готово» там ещё далеко. Но это уже не лендинг с красивой кнопкой, за которой живёт один промпт.
Соло-разработка быстро лечит от любви к новым функциям
Когда делаешь продукт один, любой маленький пункт внезапно раскрывается в отдельную профессию.
«Пусть автор загрузит обложку» превращается в проверку форматов, размеров, хранения, замены старого файла и корректной доставки изображения читателям.
«Добавим публикацию» означает статусы черновиков и глав, публичные страницы, ограничения, предупреждения о взрослом контенте и модерацию.
«Сделаем платную версию» - это уже платежи, подтверждения, лимиты, возвраты состояний после ошибки и сценарий «деньги списались, а интерфейс пока этого не понял».
«Покажем подсказку от ИИ» - очередь запросов, ошибки провайдера, лимиты, безопасность, сохранение исходного текста и возможность откатить результат.
В один день ты верстаешь спокойный редактор для писателя. В другой разбираешься, почему удалённая обложка всё ещё живёт где-то в хранилище. На третий пишешь текст сообщения, которое не должно довести человека до инфаркта после неудачного сохранения главы.
И всё это - один и тот же продукт.
Самое важное решение: ИИ не должен молча переписывать автора
Мне не нравится идея кнопки «написать книгу за меня».
Во-первых, результат быстро становится усреднённым. Во-вторых, автор перестаёт понимать, какие решения в тексте принадлежат ему. В-третьих, любая ошибка модели незаметно превращается в новый канон.
Поэтому я стараюсь строить ИИ как второго читателя и инструмент для вариантов:
продолжить сцену по явному указанию;
предложить несколько направлений;
помочь отредактировать выбранный фрагмент;
учитывать персонажей и правила мира;
не заменять исходный текст без ведома автора;
дать возможность вернуться к предыдущей версии.
В идеале нейросеть для написания фанфиков или книги должна не забирать управление, а уменьшать трение. Автор всё ещё выбирает конфликт, голос и поступки героев. Машина помогает не потерять нити и быстрее пройти механические этапы.
Где я пока не уверен
У инструментов для творчества есть неприятный парадокс: чем они активнее «помогают», тем сильнее могут мешать.
Если ИИ комментирует каждую фразу, писать невозможно. Если молчит до нажатия кнопки, он мало отличается от обычного чата. Если автоматически запоминает всё подряд, в канон попадает мусор. Если просит подтверждать каждый факт, работа превращается в заполнение налоговой декларации для эльфов.
Я пока ищу нормальную границу между памятью и назойливостью.
Технически почти на каждый вопрос можно придумать функцию. Но функция и полезное поведение - не одно и то же.
Зачем я пишу об этом здесь
Не хочу изображать большую компанию с отделом исследований и фотографиями людей у стеклянной доски. Сейчас Fanfy делает один человек, и лучший способ не строить продукт в вакууме - показывать работу тем, кому сама тема интересна.
На Пикабу много людей, которые пишут рассказы, фанфики, сценарии, посты-серии или просто годами носят в голове одну большую историю. Поэтому мне интересен не комплимент проекту, а практический опыт.
Если вы пробовали писать художественный текст с ИИ:
На каком объёме он впервые начал путать вашу историю?
Что раздражает сильнее - банальный стиль, потеря фактов или слишком уверенная отсебятина?
Вы бы хотели, чтобы редактор сам показывал противоречия, или только отвечал по запросу?
Какая часть работы над длинным текстом отнимает у вас больше всего сил?
Я буду читать ответы и собирать повторяющиеся проблемы. Если тема окажется интересной, следующим постом могу отдельно разобрать, как устроить память истории без загрузки всей книги одним гигантским промптом.
Спасибо, что дочитали. И да - теперь я наконец не только читаю Пикабу, но и сам принёс длиннопост.
Если хотите посмотреть, во что всё это в итоге превратилось, текущая версия редактора живёт на fanfy.ru. Буду рад не только поддержке, но и конкретной критике: что в таком инструменте действительно помогло бы вам писать, а что оказалось бы лишним.

