10 июля 2026 г.
- Перешли от 1180 к 1230 официальных документов JSONL, преобразованных с помощью Markdown → JSONL Converter.
- Выяснили, что многоязычный конвейер перевода задерживается сильнее, чем ожидалось, и стабилизация может занять больше времени.
- Протестировали конвейер синхронизации многоязычных документов в приватном репозитории; при этом я установил следующие критерии.
Критерии структуры документов:
- Корневым документом считается корейский документ.
- Многоязычные документы размещаются в виде
docs/<lang>/.... - Поддиректории, ранее находившиеся непосредственно под
docs/, рассматриваются как корейские документы и перемещаются вdocs/ko/.... - Коды языков должны быть стандартными, например
ja,zh,pt-BR, а не произвольными вродеjp,ch. - Корневой
README.mdостаётся корневым документом. - Переводы
READMEтакже обрабатываются относительно корня. - Изменения
README.mdне должны ошибочно распространяться как изменения файлов внутриdocs/. - Существующие папки языков, такие как
docs/en,docs/ja, не должны вложиваться, например, вdocs/ko/en. - При тестировании архивов распаковываются только
READMEиdocs.
Критерии ссылок и путей:
- Ссылки в README и внутри
docsменяются в соответствии с целевым языком. Например, ссылкаdocs/ko/...в корейском README заменяется наdocs/en/...в английском README. - Относительные пути между документами внутри
docsтакже меняются согласно целевому языку. - Путь к изображениям, ссылки на поддиректории и относительные пути не должны ломаться в процессе перевода/синхронизации.
- Языковые ссылки в README должны быть оформлены так, чтобы пользователь ощущал переход или переключение на документ нужного языка.
Критерии автоматической синхронизации:
- При добавлении файла в
docs/koсоздаются соответствующие файлы для остальных языков. - При удалении файла из
docs/koудаляются соответствующие файлы в других языках. - При изменении конкретного файла в
docs/koтолько соответствующие файлы других языков помечаются для повторного создания. - Полный перевод не выполняется каждый раз заново.
- Уже успешно переведённые языки/файлы не переводятся повторно.
- При ошибке не удаляются уже успешно полученные артефакты.
- Удаляется только файл‑цель, который не прошёл, и при следующем запуске он генерируется заново.
- Сравнение количества файлов или простых версий позволяет пропустить уже корректные языковые папки.
- Файлы версии используют простую форму, например
v1или число, а не сложный JSON/хеш.
Критерии обработки перевода:
- Перевод тестируется реальным API.
- Не использовать имитацию успешного результата.
- Размер чанков определяется исходя из официальных ограничений контекста/вывода модели.
- Приоритетнее обрезать вывод перевода, чтобы он не превышал
max_tokens, чем ограничивать входной контекст. - Сразу после перевода чанка проводится проверка.
- Области, не прошедшие проверку, помещаются в очередь.
- Для элементов из очереди увеличивается глубина разбиения, они делятся на более мелкие части и переводятся/проверяются повторно.
- Структура, при которой все чанки объединяются и проверяются только один раз в конце, избегается.
Критерии проверки:
- Убедитесь, что в результате перевода корейский язык полностью исчез.
- Проверьте, что пробелы не исчезли.
- Убедитесь, что структура Markdown сохранена.
- Проверьте, что сохранены блоки кода, ссылки, изображения и заголовки.
- Языки, такие как китайский, где длина текста сокращается, не оценивайте только по сравнению длины.
- Прочитайте полученный материал и убедитесь, что нет странных отклонений от оригинала.
Критерии неудачных логов:
- Различайте причины отказов, такие как
HTTP 429,504,RemoteDisconnected,finish_reason=length, пустой ответ и т.п. - Записывайте в лог заголовки ответа, тело ответа, время выполнения, модель, размер входных данных и количество использованных токенов.
- Не позволяйте одной ошибке остановить весь конвейер или привести к потере результата.
- Если ошибки повторяются, сначала проанализируйте их причины.
Критерии использования NVIDIA API:
- Тестирование конвейера перевода проводится на основе NVIDIA API.
gpt-oss-120bподдерживает контекст ввода до 128 k токенов, но согласно политике NVIDIA API вывод ограничен примерно 4096 токенами.- Даже если можно передать большой ввод, результат может быть обрезан из‑за ограничения вывода, поэтому реальный размер чанка берётся исходя из лимита 4096 токенов вывода.
- Пытайтесь выполнять до 40 вызовов в минуту; при возникновении ошибок применяйте политику ожидания/повторных попыток.
Критерии «жёсткого кодирования»:
- Используйте такие структурные правила, как
docs/<lang>, маркеры, регулярные выражения для ссылок и парсинг блоков кода. - Не меняйте и не удаляйте произвольно отдельные слова.
- Не удаляйте
example.comпроизвольно. - Не регистрируйте каждый файл документации отдельным путём.
- Не заменяйте языковые выражения или отдельные предложения/слова насильственно.
Критерии эксплуатации:
- Рассмотрите как GitHub Actions, так и самохостинг‑раннеры на Mac.
- При запуске на Mac процесс должен автоматически коммитить и пушить после завершения.
- Обеспечьте возможность наблюдать за процессом, как в GitHub Actions.
- Позвольте видеть в логах, какой язык/файл/чанк в данный момент обрабатывается.
- Чётко фиксируйте имя ветки, URL запуска, причину ошибки и текущий прогресс.
Отдельно от перевода, недавно нашёл интересный документ.
Pollinations APIDOCS.md — проверено
Можно вызвать
curlбез API‑ключа и получить текстовый ответ; также поддерживается генерация изображенийВозможно, стоит поэкспериментировать без создания ключа и без риска начисления платы
Я уже попробовал сделать что‑то интересное на этой основе и планирую опубликовать после более активного использования
Qwen Validation Debugger: пересмотрена структура слотов JSONL для разделения версий.docs_chunksявляется основанием для описания кода, поэтому сохраняются слоты описания/неописания для кода Godot 3 и Godot 4.api_mappingиlabel_prototypesпредназначены только для Godot 3, а не для Godot 4; вместо создания отдельных JSONL для Godot 3 и Godot 4 мы решили помещать код Godot 3 и Godot 4 вместе, генерируя JSONL‑основание для преобразования3 -> 4- Ожидаемое значение проверки JSONL‑основания
3 -> 4— код Godot 3да, код Godot 4нет
- Ожидаемое значение проверки JSONL‑основания
Ожидаемое значение проверки для нерелевантного преобразования JSONL установлено как
Неткак для кода Godot 3, так и для кода Godot 4Ретроспектива: docs/retrospectives/2026-07-10.md