Внутренняя ошибка сервера Discourse AI

Я запускаю Discourse через самохостинговый Docker на виртуальной машине под управлением Ubuntu. Плагин Discourse AI установился без проблем, все настройки отображаются в панели администратора, однако при попытке использовать любые AI-сервисы или протестировать их в панели администратора я сталкиваюсь с этими ошибками. Честно говоря, я понятия не имею, что здесь происходит. Я могу пропинговать API OpenAI и Google внутри Docker с помощью curl -I <адрес API>, но сама реализация Discourse AI, похоже, содержит ошибку, которая выходит далеко за рамки моего понимания.

Сайт работает через Cloudflare Zero Trust, если это имеет какое-то значение.

Timeout::Error (Timeout::Error)
lib/final_destination/resolver.rb:31:in `block in lookup'
lib/final_destination/resolver.rb:8:in `synchronize'
lib/final_destination/resolver.rb:8:in `lookup'
lib/final_destination/ssrf_detector.rb:128:in `lookup_ips'
lib/final_destination/ssrf_detector.rb:96:in `lookup_and_filter_ips'
lib/final_destination/http.rb:15:in `connect'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'

Редактирование:

Выбор флажка «Отключить поддержку встроенных инструментов (использовать инструменты на основе XML) (необязательно)» для OpenAI теперь позволяет тестировать запуск с вероятностью успеха 50 %, но ничего не меняет для Gemini. Если честно, я думаю, что это только добавило мне путаницы.

Извините, что переклассифицировал это как запрос в службу поддержки, но судя по ошибке, в вашем контейнере происходит тайм-аут при разрешении DNS.

Это явный признак того, что DNS на хосте настроен неправильно и/или используется медленный или неоптимальный резолвер.

Конкретная ошибка не связана с Cloudflare.

Эту задачу следовало сначала передать в поддержку — голова немного устала от последней недели настройки сервера и Discourse. Спасибо!

В итоге проблема решена, не уверен, какое именно из трёх внесённых изменений помогло. Но на будущее для всех, кто столкнётся с этим:

  1. Изменил DNS с Google DNS на Cloudflare DNS.
  2. Увеличил выделенные ресурсы Ubuntu VM с 4 ядер и 8 потоков до 8 ядер и 16 потоков, а также с 16 ГБ до 32 ГБ оперативной памяти.
  3. Увеличил количество рабочих процессов Unicorn с 8 до 16.

Скорее всего, так и есть. Google DNS работает отлично, но возможно, ваш droplet / VM / что-то другое некорректно маршрутизировал запросы к нему.