Pipeline за превод на книги с Claude Code и Codex

Този skill за Claude Code и Codex е за превод на книги от английски на български по същите стъпки и със същите инструкции, които ползва инструментът за превод wenyi. Разликата е, че вместо wenyi да вика модел през API, работата я върши агентът в Claude Code или Codex. Може и да провери готов превод, без да пипа абзаците, в които няма грешка. Skill-ът е безплатен, под лиценз MIT, и се изтегля от GitHub: github.com/valcheffnet/wenyi-pipeline-skill.

Направих първата версия по време на сравнението на AI преводачи на художествена литература. Един от участниците не можеше да мине през wenyi, а исках резултатът му да е сравним с останалите. Тази статия описва последната версия, с всичките етапи и с едно правило, което добавих след това. Отделно преди да започне, skill-ът винаги пита в какъв режим да преведе книгата.

Pipeline за превод на книги с Claude Code и Codex: книгата се нарязва, избира се режим и всеки режим минава през свои етапи
Режимът се избира след нарязването. Всеки режим е отделна линия и спира само на етапите, през които минава. Номерата съответстват на разделите по-долу.

Защо skill а не оригиналния Pipeline

wenyi през API превежда по-бързо и по-евтино. В сравнението обаче се оказа и по-ненадеждният път. През препродавач като OpenRouter един и същ модел се държи различно според това кой доставчик обслужва заявката. deepseek-v4-pro през един доставчик се отрязваше при всеки таван на изхода, а директно при DeepSeek преведе цялата книга без нито едно отрязване. gemini-3.8-flash през Google AI Studio върна празен отговор деветнайсет пъти и заседна на 20% от книгата, докато не го преместихме на Vertex. Самият wenyi падаше при тези празни отговори, докато не го закърпихме. В Claude Code или Codex излиза по-скъпо, но зад всяка заявка стои един модел и никой не сменя доставчика вместо вас.

Затова за превод на книги skill-ът има смисъл в три случая. Първият е, когато ви трябва превод, който стига до края без изненади, и сте готови да платите за това. Вторият е модел, до който нямате достъп през API, но го ползвате в Claude Code или Codex. Третият е сравнение: щом инструкциите и границите на партидите са същите, разликата в резултата идва от модела.

Режимът „само проверка“ върши работа и сам по себе си. Давате му готов превод, направен от човек или от машина, и получавате списък с грешки срещу оригинала, всяка с доказателство, плюс поправен текст, в който се различават само поправените абзаци.

Какво представлява един skill за Claude Code и Codex

Skill е папка с инструкции, които агентът в Claude Code или Codex зарежда, когато задачата им съответства. Този съдържа:

wenyi-pipeline/
  SKILL.md              етапите, режимите и правилата
  references/           20-те инструкции на wenyi, дословно
  scripts/make_batches.py   нарязва EPUB на глави и партиди
  agents/openai.yaml    име и описание за интерфейса на Codex

Инструкциите в references/ не са преразказани. Извадени са от wenyi с неговата собствена функция за рендиране, с българския езиков профил. wenyi дава на всеки модел едни и същи инструкции, затова и агентът трябва да получи точно тях. Ако ги перифразирате, получавате друг пайплайн със същото име и сравнението тихо се разваля.

Откъде да го изтеглите

Skill-ът е в репото valcheffnet/wenyi-pipeline-skill в GitHub. Ако нямате Git, отворете страницата, натиснете зеления бутон Code и изберете Download ZIP. С Git изтегляте всичко с една команда:

git clone https://github.com/valcheffnet/wenyi-pipeline-skill.git

После копирайте папката на skill-а там, където вашият агент търси skill-ове. Claude Code и Codex ползват един и същ отворен формат за skill-ове, така че папката е една и съща и се различава само мястото. Сложена в личната ви папка, тя е достъпна във всеки проект.

За Claude Code:

cp -r wenyi-pipeline-skill/skills/wenyi-pipeline ~/.claude/skills/

За Codex:

mkdir -p ~/.agents/skills
cp -r wenyi-pipeline-skill/skills/wenyi-pipeline ~/.agents/skills/

И в двата случая инсталирайте библиотеката tiktoken:

pip install tiktoken

На Windows в PowerShell командите за копиране са:

# Claude Code
Copy-Item -Recurse wenyi-pipeline-skill\skills\wenyi-pipeline "$env:USERPROFILE\.claude\skills\"

# Codex
New-Item -ItemType Directory -Force "$env:USERPROFILE\.agents\skills" | Out-Null
Copy-Item -Recurse wenyi-pipeline-skill\skills\wenyi-pipeline "$env:USERPROFILE\.agents\skills\"

Ако искате skill-ът да работи само в един проект, копирайте папката в .claude/skills/ на проекта за Claude Code или в .agents/skills/ за Codex. Claude Code го зарежда при следващата сесия, а Codex го засича сам. В Codex можете да го извикате и директно с $wenyi-pipeline. В репото има и README на английски с всички етапи и измерените токени.

Преди да започнете

  • Инсталиран skill, както е описано по-горе.
  • Python с библиотеката tiktoken. wenyi брои токените с нея и без нея границите на партидите се разминават с неговите.
  • Книгата като EPUB на английски. Инструкциите в skill-а са за превод на книги от английски към български.
  • Представа колко токена можете да похарчите. Повече за това в стъпка 2.

1. Нарязване на книгата

Първата стъпка е локална и не харчи нито един токен от модела. Скриптът чете EPUB-а по реда на четене и прави от него каквото би направил wenyi. Всеки файл с текст е глава, заглавията отиват за отделен превод, а всеки абзац е сегмент. Абзац над 1 200 токена се цепи по изречения. Сегментите на една глава се събират в партиди до 1 800 токена.

python scripts/make_batches.py shadows.epub work/

counter: tiktoken cl100k_base
chapters 1 | paragraphs 296 | segments 296 (paragraphs split: 0) | titles 6 | batches 10
source tokens 16,060 | words 12,079

Това е разказът от сравнението и десетте партиди съвпадат с десетте заявки, които wenyi направи за същия текст. Скриптът разпознава и заглавията в EPUB-и, конвертирани от FB2, където заглавието е обикновен абзац в отделен блок.

Преди да продължите, погледнете първите и последните глави в source.json. Конвертираните книги често носят библиотечна картичка, отпечатано съдържание или реклама като обикновен текст. wenyi би ги превел, затова skill-ът ги показва и пита дали да останат.

2. Задължителният въпрос за режима

Тук агентът спира и пита. Не налучква режима от текста на задачата и не избира сам, дори задачата да го споменава. Причината е цената. Между най-лекия и най-тежкия режим разликата е четири пъти, а решението кой е достатъчен е на човека, който ще чете книгата.

В Claude Code въпросът идва с готови отговори, от които избирате. Ако средата няма такъв инструмент, skill-ът пита с обикновен текст и чака отговора ви.

РежимКакво правиТокени за разказ от 12 000 думи
A, обикновенанализ на стила, превод и речник по партиди, заглавияот 177 000 до 209 000
B, превод с проверкарежим A плюс цикъла на проверкаот 415 000 до 490 000
C, пъленанализ, резюмета на главите и книгата, превод, шлайфане и речник, заглавия, проверкаот 640 000 до 830 000
R, само проверкапроверка на готов преводоколо 290 000 (оценка)

Числата за A, B и C са измерени, когато wenyi превеждаше разказа през API с два различни модела. За R е оценка от тях. Агент в Claude Code или Codex харчи повече, защото носи целия разговор със себе си. Затова скриптът от стъпка 1 изписва оценка за всеки режим и тя влиза във въпроса.

3. Запознаване с книгата

Анализът на стила върви във всеки режим. Агентът чете три откъса, от началото, средата и края, и връща жанр, тон, повествование, регистър и списък с героите и термините. Тук е едно от най-важните правила за български: полът на героя се записва само ако текстът го доказва. Името, обръщението или тонът не са доказателство.

В пълния режим следват резюме на всяка глава до 150 думи и резюме на цялата книга до 350 думи, заедно с края. Преводачът знае какво ще стане по-нататък и не превежда сцена по начин, който по-късно ще противоречи на сюжета.

4. Превод на партиди

Всяка партида получава стила от анализа, резюметата, речника за текущата глава, последните шест преведени абзаца и следващия абзац от оригинала. Последният е само ориентир. Ако партидата свършва по средата на изречение, преводът също трябва да остане недовършен, вместо да си измисли край.

Най-строгото правило е броят. На всеки абзац от оригинала отговаря точно един преведен абзац. wenyi проверява броя и не приема партида, в която не съвпада. Агентът няма кой да го провери, затова skill-ът го кара да брои сам след всяка партида.

5. Шлайфане в същия разговор

Тук старата версия грешеше. Слагах шлайфането като отделна фаза след целия превод, а wenyi го прави веднага след всяка партида, като продължение на същия разговор. Моделът още помни какво и защо е превел, и изглажда словореда, без да губи смисъла. Броят и редът на абзаците остават същите.

6. Речник след всяка партида

След всяка партида агентът вади от оригинала и превода имената, обръщенията и изразите, които трябва да останат еднакви до края на книгата. Следващите партиди получават обновения речник. Ако нов превод на име се разминава със стария, първият остава, а разминаването се записва. Нищо не се презаписва тихо.

В издадения превод на „Деца на разрухата“ имената на героите и корабите се пишеха различно в различните глави и ги уеднаквих на ръка. Речникът е точно срещу това.

7. Заглавия

Заглавията на главите и записите в съдържанието се превеждат отделно, с целия речник, за да съвпадат имената в тях с текста.

8. Цикълът на проверка

Проверката има три роли. Първата чете оригинала и превода на блокове до 5 400 токена и отбелязва само сигурни грешки от пет вида: изпуснато, добавено, грешен смисъл, неспазен речник и грешно местоимение. Стилът не е грешка.

Втората роля проверява всяка находка, преди да я приеме. Може да поиска доказателства от останалата книга: запис от речника, други места със същото име, съседни абзаци или резюмето. Може да поиска до четири неща на кръг и има най-много два кръга. Агентът вижда цялата книга на диска и лесно би прочел всичко, затова skill-ът изрично му забранява да чете извън тези заявки. Иначе проверката става друга.

Третата роля поправя само потвърдените грешки, с минимални промени, в отделно копие. Копието се проверява отново, все едно е нов превод. Цикълът спира след два поредни чисти кръга или след два кръга поправки. Накрая всяка поправка се проверява още веднъж и чак тогава влиза в превода.

9. Самопроверка преди края

  • Всяка глава има точно толкова преведени абзаца, колкото има в оригинала, и нито един не е празен.
  • Латински букви има само там, където ги има и оригиналът.
  • В текста няма бележка от преводача и никъде не се споменава модел, компания или инструмент.
  • Разминаванията в речника са изброени.
  • В режим R абзаците без поправка са същите до последния знак.

Всичко, което произвежда всеки етап, се записва на диска. Ако агентът спре по средата, губите най-много една партида.

Превод на книги: колко струва цял роман

Пуснах скрипта на „Children of Ruin“ на Ейдриън Чайковски, 148 000 думи. Излязоха 93 глави и 142 партиди. Оценката е около 2,2 милиона токена за обикновения режим и 8,4 милиона за пълния, и това е при wenyi през API. С агент излиза повече.

С абонамент вместо API ключ това е непрактично. Разказ или една глава минават без проблем с този skill в Claude Code или Codex, цял роман на ръка не е реалистичен. При превод на книги с размер на роман пуснете wenyi с API ключ, но заковете доставчика изрично и изключете резервните доставчици. Проверката на избрани глави оставете на skill-а.

Какво научих от първата версия

Първата версия я писах набързо, за един участник в сравнението. Нямаше анализ на стила в обикновения режим, нямаше резюмета на главите, речник, заглавия и проверка на находките с доказателства. Тогава ми изглеждаха като подробности, които може да се пропуснат за един разказ.

Следата от това личи в резултатите. При превода с проверка проверката не намери нищо, затова версията с проверка излезе байт по байт същата като обикновената и в сляпото сравнение влязоха два еднакви текста. Не мога да докажа, че по-пълна проверка би намерила грешки. Знам обаче, че участникът мина през по-лек пайплайн от моделите, с които беше сравняван. Това е още една причина да не броя резултата му за победа.

Оттук и правилото ми. Ако един skill твърди, че повтаря инструмент, сверете го с кода на инструмента. Новата версия я направих така: етапите и праговете в нея са взети от кода и настройките на wenyi.

Вашият коментар

Your email address will not be published. Required fields are marked *.

*
*