mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
4a166fa9d6
Кнопка «🌐 Перевести» в карточках кандидатов и отобранных переводит пост
локальной моделью (qwen3:8b-nothink), результат в posts.translated_text
(идемпотентный ALTER при старте). Метка «Оригинальный пост» стала закладкой,
при готовом переводе рядом появляется закладка «Перевод» (активна по умолчанию),
переключение на vanilla JS. Повторный клик не тратит токены: перевод в БД.
call_ollama из classifier не подошла (парсит ответ как JSON) — прямой запрос
к Ollama /v1/chat/completions. POST /posts/{id}/translate, лимит 6000 символов.
1.0 KiB
1.0 KiB
Задачи
- web/app.py: идемпотентный ALTER TABLE posts ADD COLUMN translated_text (при старте)
- web/app.py: helper _translate_text (прямой запрос к Ollama — call_ollama жёстко парсит JSON, для перевода непригоден; лимит 6000)
- web/app.py: POST /posts/{post_id}/translate (повторный клик — без LLM, проверено)
- web/templates/candidates.html: закладки «Оригинал»/«Перевод» + кнопка «🌐 Перевести»
- web/templates/selected.html: то же в колонке оригинала
- vanilla JS переключения вкладок (scripts-блок, паттерн bulk-чекбоксов)
- openspec validate post-translate — чисто
- Рестарт vesti-web, ручная проверка: пост EN → «Перевести» → закладка «Перевод»; повторный клик — без модели
- Обновить STATUS.md