Ошибки переводов AI

Заметил в логах множество таких записей:

Сообщение (2 сообщения в отчете)

DiscourseAi::Translation: Не удалось перевести пост 120 на da: Ошибка валидации: Raw не может быть пустым, Cooked не может быть пустым

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activerecord-8.0.5/lib/active_record/validations.rb:87:in 'ActiveRecord::Validations#raise_validation_error'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activerecord-8.0.5/lib/active_record/validations.rb:54:in 'ActiveRecord::Validations#save!'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activerecord-8.0.5/lib/active_record/transactions.rb:365:in 'block in ActiveRecord::Transactions#save!'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activerecord-8.0.5/lib/active_record/transactions.rb:417:in 'block (2 levels) in ActiveRecord::Transactions#with_transaction_returning_status'

Трассировка стека

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.5/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.5/lib/active_support/broadcast_logger.rb:217:in 'Array#map'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.5/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.5/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#warn'
/var/www/discourse/plugins/discourse-ai/lib/translation/verbose_logger.rb:8:in 'DiscourseAi::Translation::VerboseLogger.log'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/localize_posts.rb:48:in 'block in Jobs::LocalizePosts#execute'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/localize_posts.rb:29:in 'Array#each'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/localize_posts.rb:29:in 'Jobs::LocalizePosts#execute'
/var/www/discourse/app/jobs/base.rb:318:in 'block (2 levels) in Jobs::Base#perform'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in 'RailsMultisite::ConnectionManagement::NullInstance#with_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in 'RailsMultisite::ConnectionManagement.with_connection'
/var/www/discourse/app/jobs/base.rb:305:in 'block in Jobs::Base#perform'
/var/www/discourse/app/jobs/base.rb:301:in 'Array#each'
/var/www/discourse/app/jobs/base.rb:301:in 'Jobs::Base#perform'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:220:in 'Sidekiq::Processor#execute_job'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:185:in 'block (4 levels) in Sidekiq::Processor#process'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:180:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:183:in 'block in Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/lib/sidekiq/suppress_user_email_errors.rb:6:in 'Sidekiq::SuppressUserEmailErrors#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:182:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:183:in 'block in Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in 'Sidekiq::DiscourseEvent#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:182:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:183:in 'block in Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:131:in 'Sidekiq::Pausable#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:182:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:183:in 'block in Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/job/interrupt_handler.rb:9:in 'Sidekiq::Job::InterruptHandler#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:182:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:183:in 'block in Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/metrics/tracking.rb:26:in 'Sidekiq::Metrics::ExecutionTracker#track'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/metrics/tracking.rb:134:in 'Sidekiq::Metrics::Middleware#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:182:in 'Sidekiq::Middleware::Chain#traverse'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/middleware/chain.rb:173:in 'Sidekiq::Middleware::Chain#invoke'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:184:in 'block (3 levels) in Sidekiq::Processor#process'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:145:in 'block (6 levels) in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/job_retry.rb:118:in 'Sidekiq::JobRetry#local'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:144:in 'block (5 levels) in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/config.rb:39:in 'block in <class:Config>'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:139:in 'block (4 levels) in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:281:in 'Sidekiq::Processor#stats'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:134:in 'block (3 levels) in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/job_logger.rb:15:in 'Sidekiq::JobLogger#call'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:133:in 'block (2 levels) in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/job_retry.rb:85:in 'Sidekiq::JobRetry#global'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:132:in 'block in Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/job_logger.rb:40:in 'Sidekiq::JobLogger#prepare'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:131:in 'Sidekiq::Processor#dispatch'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:183:in 'block (2 levels) in Sidekiq::Processor#process'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:182:in 'Thread.handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:182:in 'block in Sidekiq::Processor#process'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:181:in 'Thread.handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:181:in 'Sidekiq::Processor#process'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:86:in 'Sidekiq::Processor#process_one'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/processor.rb:76:in 'Sidekiq::Processor#run'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/component.rb:10:in 'Sidekiq::Component#watchdog'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/sidekiq-7.3.10/lib/sidekiq/component.rb:19:in 'block in Sidekiq::Component#safe_thread'

Тогда вам нужно проверить, что содержится в посте 120 (просто перейдите по адресу /p/120), а затем посмотреть, каким был ответ LLM при попытке его перевода (проверьте таблицу ai_api_audit_logs).

1 лайк

Когда я просматриваю журналы аудита с помощью этого запроса

SELECT 
  feature_name,
  created_at,
  post_id,
  response_tokens
FROM 
  ai_api_audit_logs
WHERE 
  post_id IS NOT NULL
  AND created_at > :start_date
  AND (response_tokens IS NULL OR response_tokens != 1)
ORDER BY 
  created_at DESC

В результатах для этого поста ничего нет в указанную дату/время.
Что ещё мне стоит проверить?

Да, удалите всё предложение response_tokens из условия WHERE.

Хорошо, сначала я допустил опечатку: это не PM. Я заметил, что вы указали использовать /p/120, а я использовал /t/120.

/p/120 ведёт на https://discussion.mcebuddy2x.com/t/63/1.

Затем я выполнил обновлённый запрос к таблице, но не нашёл ни одной записи с временной меткой из логов — Чт 23:25.

В таблице я вижу только эти записи, которые ближе всего к указанному времени:

feature_name created_at post response_tokens
translation 2026-05-07T23:26:15.471Z https://discussion.mcebuddy2x.com/t/5897/1 2423
translation 2026-05-07T23:11:23.504Z https://discussion.mcebuddy2x.com/t/5896/2 425

Ни один из идентификаторов постов выше не совпадает с идентификатором поста в логе ошибок.

Единственный раз, когда я вижу ссылку на этот идентификатор поста, это значительно позже в логах:

feature_name created_at post response_tokens
translation 2026-05-08T03:10:18.214Z https://discussion.mcebuddy2x.com/t/63/1 0

Токены ответа бесполезны для отладки, необходимо показать необработанный ответ.

Дело в том, что я не вижу ответа с тем же временным штампом, что и в логе, и с тем же ID поста.

Следующий дамп данных для этого ID поста я вижу примерно через час, и он содержит следующее:

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" given","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":".\n\n","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"Probably","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" keep","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" truncated","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":".\n\n","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"Now","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" produce","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" final","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" JSON","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" with","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" \"","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"output","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"\":","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" translation","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" string","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":".\n\n","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"Make","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" sure","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" to","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" preserve","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" line","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" breaks","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" exactly","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" as","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" original","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":".\n\n","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":"Let's","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" construct","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" final","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":" translation","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-35a85986-7a6b-4169-893a-b43bcc22b1f2","object":"chat.completion.chunk","created":1778209824,"model":"openai/gpt-oss-120b","system_fingerprint":"fp_d66938db44","choices":[{"index":0,"delta":{"reasoning":".\n\n","channel":"analysis"},"logprobs":null,"finish_reason":null}]}

event: error
data: {"error":{"message":"Failed to generate JSON. Please adjust your prompt. See 'failed_generation' for more details.","type":"invalid_request_error","code":"json_validate_failed","failed_generation":"max completion tokens reached before generating a valid document","status_code":400}}

Токены рассуждения «съедают» все токены лимита завершения max_tokens. Это ещё одна причина, по которой мы не используем рассуждения для переводов.

У нас была настройка сайта для решения этой проблемы

Но мы убрали её ещё в