Восполнение перевода AI не работает после настройки всех параметров

Я пытаюсь включить автоматическую локализацию контента (дополнительный перевод с помощью ИИ) на моём собственном экземпляре Discourse, следовал всем доступным инструкциям, но переводы не появляются.

Вот что я уже сделал:

  • Включил параметр «content localization enabled»
  • Выбрал как минимум один язык в «content localization supported locales»
  • Включил параметр «ai translation enabled»
  • Выбрал рабочую модель «ai translation model» (тест пройден успешно)
  • Установил значение ai_translation_backfill_hourly_rate больше 0 (через переменную окружения в app.yml)
  • Установил ai translation max age days на большое значение

После сохранения и пересборки я опубликовал темы на языке, отличном от предпочитаемого мной языка интерфейса, но ничего не переводится. Я не вижу никаких признаков выполнения заданий по переводу (проверял очереди и расписание Sidekiq), а контент для пользователей остаётся без перевода.

Есть ли что-то ещё, что мне стоит проверить, или способ лучше диагностировать, почему не запускается процесс допереводов?

Какова ваша ai_translation_backfill_hourly_rate? Можете попробовать начать со значения 20? Было бы полезно, если бы вы поделились всеми значениями.

Все ли ваши посты общедоступны и не находятся в ограниченных категориях? Если ai_translation_backfill_limit_to_public_content отключен, у вас не будет переведенных постов.

Установка SiteSetting.ai_translation_verbose_logs=true покажет некоторые детали при успешном выполнении.

Альтернативно, если у вас есть Data Explorer, вы можете попробовать следующее, чтобы проверить:

  • были ли какие-либо вызовы LLM для перевода
  • или определяются ли локализации постов, но сами посты не переводятся
SELECT COUNT(*)
FROM ai_api_audit_logs
WHERE feature_name = 'translation'
SELECT COUNT(*)
FROM posts
WHERE (locale IS NOT NULL AND locale <> '')

Спасибо за ваш ответ!

  • Мой параметр DISCOURSE_AI_TRANSLATION_BACKFILL_HOURLY_RATE установлен на 30.
  • Параметр ai_translation_backfill_limit_to_public_content включен.
  • Все мои сообщения являются публичными и не находятся в каких-либо ограниченных категориях.

Именно эти задачи вы искали?


Пожалуйста, также проверьте указанные выше запросы.

Спасибо за ваше предложение!

Да, я вижу эти задания в Sidekiq по адресу /sidekiq/scheduler:

  • Jobs::PostLocalizationBackfill
  • Jobs::TopicLocalizationBackfill
  • Jobs::TopicsLocaleDetectionBackfill

Все они отображаются со статусом «OK» и были недавно выполнены.

Я также заметил, что заголовки тем переводятся корректно, но само содержимое постов пока не переведено.
Мне просто нужно подождать немного дольше, чтобы контент был обработан, или есть ещё какие-то настройки, которые нужно проверить для перевода содержимого постов?

У меня возникла похожая проблема после внесения всех тех же изменений в моем размещенном экземпляре. В данном случае я использую OpenAI 4o. Похоже, что переводятся только последние 3 или 4 поста, а дальше ничего. У меня на ключе API всё ещё достаточно кредитов.

Каково значение параметра ai translation max age days?
После его изменения может потребоваться некоторое время, чтобы изменения вступили в силу.

  1. Прошло около 24 часов

Здравствуйте,

Кажется, я столкнулся с той же проблемой. Я выполнил все шаги из руководства (https://meta.discourse.org/t/content-localization-manual-and-automatic-with-discourse-ai/370969), включая установку AI_translation_backfill_hourly_rate = 50.

Я протестировал все доступные модели OpenAI (тесты прошли успешно), а также выполнил пересборку (rebake).

К сожалению, плагин AI всё ещё отказывается выполнять автоматический перевод.

У кого-нибудь есть идеи, что может быть не так?

Буду очень признателен за любую помощь, так как я действительно жду появления этой функции.

Версия: 3.6.0.beta1-dev

С уважением,

Грэм

Моя текущая ситуация. Я запустил тест с ключом API — всё работает. Как я уже говорил, переведено было около 3–4 постов, а остальные нет. Также добавляются новые посты, но переводы для них отсутствуют.

@joo : Я и @tyronejv используем OpenAI. У вас тоже так?
Возможно, проблема связана с их подключением к API.

@tyronejv Я использую настройки, очень похожие на ваши. Тест ключа API проходит успешно, но переводы всё равно не запускаются.

  • что-нибудь в /logs?

  • попробуйте перейти в /sidekiq/scheduler и вручную запустить все задания, содержащие “LocalizationBackfill” и “LocaleDetectionBackfill”

Решено!

  1. Не используйте GPT-5, пока не подтвердите свою организацию в настройках OpenAi-Organization.
  2. Вставьте идентификатор вашей организации (https://platform.openai.com/settings/organization/general) в настройки Discourse AI.
  3. Отключите настройку температуры в настройках LLM Discourse AI.

На данный момент GPT-5 работает настолько медленно, что его использование следует ограничивать определёнными задачами. Но, конечно, это вопрос вкуса и зависит от ситуации.

Однако я время от времени использую Chat GPT/GPT-5 на финском языке. Ранее модели серии 4x были довольно хороши для такого небольшого и сложного языка, как финский. Теперь же… я бы никогда не стал использовать их для переводов. Возможно, GPT-5 и последующие поколения со временем улучшатся и станут работать лучше, а может, уже сейчас они безупречны в работе с крупными языками.

Но, конечно, это было совсем не по теме, хотя, возможно, в этот раз можно сделать исключение. В конце концов, вы всё-таки нашли нужное решение. Но мой общий смысл заключается в том, что эта тема вообще не должна была возникать, потому что, судя по моему опыту и на данный момент, никому не следует использовать GPT-5 для переводов в принципе.

Спасибо за скриншоты.

Как отметил @GrahamM, параметр ai_translation_backfill_hourly_rate должен быть установлен администратором вашего сайта, так как это скрытая настройка.


Помимо того, что указано в FAQ, пожалуйста, проверьте следующее:

  • Проверьте график по адресу https://your-site.com/admin/plugins/discourse-ai/ai-translations. Сколько есть подходящих постов? Если график не отображается, вам нужно обновить систему.
    • например:
  • Выполните этот запрос в инструменте Discourse Data Explorer, если он у вас есть:
SELECT 
  a.id,
  a.created_at,
  a.raw_request_payload,
  a.raw_response_payload,
  a.post_id
FROM ai_api_audit_logs a
WHERE a.created_at > '2025-09-01'
AND a.feature_name = 'translation'
ORDER BY a.created_at DESC
LIMIT 100
  • Откройте пост, который является кандидатом на заполнение, и проверьте, определён ли локаль:

Я убедился, что включена машинная переводка, параметры заполнения (10 в час) и лимиты (10000 дней) установлены правильно. Я добавил переводы на испанский, но система всё ещё сообщает, что заполнение отключено, и я не вижу никаких заданий в Sidekiq. Нужно ли мне выполнить пересборку? Три дня назад я её не делал. Большинство постов доступны для чтения.




Что я упускаю?

Недавно мы убрали скрытый статус у параметра ai_translation_backfill_hourly_rate в этом PR.

Этот параметр по умолчанию равен 0. Изначально он был скрыт, чтобы его могли изменять только хостинг-провайдеры (которые знают, что делают). Вам нужно установить значение, например, 100.

Да, я видел это и изменил значение с 0 на 10 (см. скриншоты выше), но система по-прежнему сообщает, что backfill отключен и запланированных заданий нет. Есть ли способ запустить его вручную или требуется что-то ещё?

Я также пробовал значение 100, но результата нет.

Какие сообщения вы пытаетесь перевести? Сообщения ботов (пользователи с id <= 0) не отправляются на перевод.

Ваши сообщения находятся в приватных категориях?

В целом на всём сайте мы хотим использовать настройки пользователей для отображения постов на разных языках. Это не бот и не приватный аккаунт, а тысячи публичных постов.

Теперь это очень странно: когда я сейчас, спустя 19 часов, зашел в панель управления, я увидел вот это. Система пишет, что заполнение (backfill) отключено, но, похоже, она уже начала обрабатывать некоторые посты, и указано, что обработано всего 11 постов. Это сколько уже сделано, или это общее целевое количество, или это только новые посты?

Ещё раз: я не вижу никаких заданий по заполнению (backfill jobs) в расписании заданий.