Проверка языка результата перевода: совпадения числа абзацев недостаточно; недостающие зависимости стороннего репозитория
This commit is contained in:
@@ -111,10 +111,22 @@ ebook-convert "Название.epub" "Название.azw3"
|
||||
|
||||
```bash
|
||||
git clone https://github.com/vetermanve/book_translator.git ~/Projects/book_translator
|
||||
~/.venvs/pdf2epub/bin/pip install openai python-dotenv # openai нет в их requirements.txt
|
||||
export DEEPSEEK_API_KEY=... # либо .env в рабочем каталоге, либо USE_OLLAMA
|
||||
# их requirements.txt неполон: openai и pyyaml импортируются, но не перечислены
|
||||
~/.venvs/pdf2epub/bin/pip install openai pyyaml python-dotenv
|
||||
|
||||
umask 077
|
||||
mkdir -p out/tr
|
||||
cat > out/tr/.env <<'EOF'
|
||||
USE_LOCAL_MODEL=false
|
||||
DEEPSEEK_API_KEY=<ключ>
|
||||
EOF
|
||||
```
|
||||
|
||||
Без `pyyaml` каждый запрос падает внутри `_create_system_prompt` **до** обращения
|
||||
к API, а сторонний скрипт молча подставляет `[UNTRANSLATED]` и рапортует
|
||||
«API запросов: 0, ошибок: N». Ключ держать только в `.env` с правами `600`,
|
||||
в командную строку и логи не выводить.
|
||||
|
||||
Сначала проверка, нужен ли перевод вообще (язык, объём; ничего не тратит):
|
||||
|
||||
```bash
|
||||
@@ -130,7 +142,19 @@ export DEEPSEEK_API_KEY=... # либо .env в рабочем каталог
|
||||
--repo ~/Projects/book_translator --workdir out/tr --workers 12
|
||||
```
|
||||
|
||||
Прерванный перевод возобновляется: сторонний скрипт помнит готовые главы.
|
||||
Прерванный перевод возобновляется: сторонний скрипт помнит готовые главы. Это
|
||||
же свойство мешает при **неудачном** прогоне — упавшие главы он считает
|
||||
готовыми, поэтому перед повторной попыткой:
|
||||
|
||||
```bash
|
||||
rm -rf out/tr/progress out/tr/context out/tr/translations
|
||||
```
|
||||
|
||||
После сборки скрипт сам проверяет язык результата и завершается с ошибкой,
|
||||
если текст остался на языке оригинала или содержит `[UNTRANSLATED]` —
|
||||
совпадения числа абзацев мало, при сбое API сторонний скрипт подставляет
|
||||
оригинал. Файл, не прошедший проверку, упаковывать нельзя.
|
||||
|
||||
Дальше `out/book.ru.html` упаковывается тем же `ebook-convert` с
|
||||
`--language=ru`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user