Длинный текст правится по частям
Документ режется на куски по абзацам, каждый редактируется отдельно, и всё склеивается в прежнем порядке.
Как выглядит сценарий
- Исполнение + данные
- LLM
Дело не в пределе модели: она примет и длинный текст. Дело в качестве — начало она редактирует внимательно, а к концу начинает пропускать. Кусками правится весь текст одинаково.
Что внутри
- Длинный текст — вход.
- Разбить на куски — нода с кодом. Она режет по абзацам, набирая куски примерно по три тысячи знаков: разрыв посреди предложения ломает и правку, и склейку.
- По каждому куску — цикл, тело которого редактирует один фрагмент.
- Склейка собирает результаты в том же порядке.
Длина куска получается примерной, и это правильный размен: целостность абзаца важнее ровного размера.
Одно место здесь ломается тише всего: элемент цикла приходит в ноду модели на порт
Сообщение, а не «Вход», и в её промпте стоит {{ inputs.message }}. Напишете
inputs.input — промпт уедет пустым, модель честно ответит ни на что, цикл соберёт список
пустых значений, а запуск останется зелёным.
Что настроить под себя
- Размер куска — константа в первой строке кода. Меньше — точнее правка и больше вызовов.
- Промпт правки. Сейчас это редактура: убрать канцелярит, разбить длинные предложения, сохранить факты. Тем же графом делается перевод, упрощение или разметка.
- Склейка. Сейчас куски разделяются пустой строкой. Если правка меняет структуру, между ними стоит добавить заголовки.
Что подключить
Ничего. Вызовов будет столько, сколько кусков: страница текста — это один-два, договор на двадцать страниц — уже двадцать, и время запуска растёт вместе с ними.