Discourse AI 내부 서버 오류

저는 Ubuntu VM에서 자체 호스팅용 Docker로 Discourse를 실행하고 있습니다. Discourse AI 플러그인은 문제없이 설치되었고, 관리자 패널에 모든 설정 항목이 표시되지만, AI 서비스를 사용하거나 관리자 패널에서 테스트를 시도하면 다음 오류가 발생합니다. 솔직히 여기서 무슨 일이 일어나고 있는지 전혀 감이 잡히지 않습니다. Docker 내부에서 curl -I <api site>를 사용하여 OpenAI API와 Google API 모두에 ping을 보낼 수 있지만, 실제 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'

수정:

OpenAI에서 “네이티브 도구 지원 비활성화 (XML 기반 도구 사용) (선택 사항)” 체크박스를 선택하니 테스트 실행 성공률이 50%로 올라갔지만, Gemini에는 아무런 효과가 없습니다. 오히려 이 조치가 제 혼란을 더 키운 것 같습니다.

이 문제를 지원으로 재분류한 점 죄송합니다. 에러를 살펴보니 컨테이너 내부에서 DNS를 해석하는 데 타임아웃이 발생하고 있습니다.

이것은 호스트에서 DNS가 올바르게 구성되지 않았거나, 느리거나 비최적의 리졸버를 사용하고 있음을 강력하게 시사합니다.

해당 에러는 Cloudflare와는 무관합니다.

이 def는 원래 지원팀에 먼저 전달해야 했는데, 지난 한 달간 서버 세팅과 디스코스 세팅으로 머리가 좀 지쳐서요. 감사합니다!

결국 해결은 했지만, 제가 세 가지 변경 사항 중 어떤 것이 문제를 해결한 건지 정확히는 모르겠습니다. 하지만 혹시 미래에 같은 문제를 겪는 분들을 위해 공유합니다.

  1. DNS를 Google DNS에서 Cloudflare DNS로 변경
  2. Ubuntu VM에 할당된 리소스를 4코어 8스레드에서 8코어 16스레드로, RAM은 16GB에서 32GB로 증설
  3. 유니콘(unicorn) 개수를 8개에서 16개로 증가

이것이 가장 가능성이 높은 원인입니다. Google DNS는 훌륭하지만, 드롭렛/VM/기타 환경에서 해당 DNS로 올바르게 라우팅되지 않았을 수 있습니다.