Estou me perguntando qual é a abordagem correta para usar endpoints de API de IA interna (como o LiteLLM) em instâncias do Discourse hospedadas localmente.
Tentei habilitar o bridge do Docker, os IPs dos contêineres e endpoints SSL devidamente encerrados (direcionados ao mesmo IP público onde o Discourse está hospedado), mas nada funcionou. Permiti hosts internos, mas recebo um erro 500 ao testar na interface do LLM-AI dentro do Discourse.
Provavelmente está relacionado à minha própria configuração, e sei que provavelmente cometi alguns erros. Então, espero resolver isso com a ajuda da comunidade
Nosso principal caso de uso é tentar os endpoints do Vertex AI (OpenAI) que não funcionaram imediatamente no Discourse porque não são suportados. Mas também queremos a camada que o LiteLLM adiciona ao nosso fluxo de trabalho.
Logs:
FinalDestination::SSRFDetector::DisallowedIpError (FinalDestination: todos os IPs resolvidos foram bloqueados)
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:182:in 'DiscourseAi::Completions::Endpoints::Base#perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/open_ai_shared.rb:28:in 'DiscourseAi::Completions::Endpoints::OpenAiShared#perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:214:in 'DiscourseAi::Completions::Llm#generate'
pitchfork-0.18.2/lib/pitchfork/soft_timeout.rb:46:in 'Pitchfork::SoftTimeout::Request#interrupt'
pitchfork-0.18.2/lib/pitchfork/soft_timeout.rb:94:in 'block (2 levels) in Pitchfork::SoftTimeout#create_timeout_thread'
pitchfork-0.18.2/lib/pitchfork/soft_timeout.rb:93:in 'Array#each'
pitchfork-0.18.2/lib/pitchfork/soft_timeout.rb:93:in 'block in Pitchfork::SoftTimeout#create_timeout_thread'
É estranho, e tenho tentado resolver isso há semanas.
Já tentei isto:
EDIT 1:DISCOURSE_ALLOWED_INTERNAL_HOSTS: 172.16.X.X(IP do container do LiteLLM, 127.0.0.1 e o host do domínio LLM com término de SSL — entendo que não precisa estar aqui)
EDIT 2: E vejo o mesmo erro 500 ao tentar acessar a configuração do meu servidor MCP (configuração da aba discourse-ai do MCP).