Ich frage mich, welcher der richtige Ansatz ist, um interne KI-API-Endpunkte (wie LiteLLM) auf selbst gehosteten Discourse-Instanzen zu nutzen.
Ich habe versucht, Docker-Bridge, Container-IPs und ordnungsgemäß SSL-terminierte Endpunkte (zur gleichen öffentlichen IP, auf der Discourse gehostet wird) zu aktivieren, aber nichts funktioniert. Ich habe interne Hosts erlaubt, erhalte aber beim Testen in der LLM-AI-Benutzeroberfläche innerhalb von Discourse einen 500-Fehler.
Es hängt wahrscheinlich mit meiner eigenen Konfiguration zusammen, und ich weiß, dass ich wahrscheinlich einige Fehler gemacht habe. Ich hoffe also, dies mit Hilfe der Community zu lösen
Unser Hauptanwendungsfall ist es, Vertex AI (OpenAI)-Endpunkte auszuprobieren, die auf Discourse nicht sofort funktioniert haben, weil sie nicht unterstützt werden. Aber wir möchten auch die Schicht, die LiteLLM zu unserem Workflow hinzufügt.
Logs:
FinalDestination::SSRFDetector::DisallowedIpError (FinalDestination: alle aufgelösten IPs waren nicht erlaubt)
Ich habe es über die Benutzeroberfläche so gemacht, wie ich es in einem ähnlichen vorherigen Beitrag gesehen habe. Ich habe es auch mit der Variable in meiner app.yml-Datei versucht, bekomme aber weiterhin den Fehler.
Was könnte falsch sein, wenn meine Anmeldedaten in Ordnung sind und ich den API-Endpunkt auf dem Host nutzen kann? Kann ich weiter debuggen?
Nun, ich habe den Endpunkt mit SSL innerhalb von Discourse (App-Container) getestet, und er funktioniert, aber nicht im Test der Discourse AI-Benutzeroberfläche.
/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'
Es ist seltsam, und ich versuche schon seit Wochen, das Problem zu lösen.
Bereits versucht:
EDIT 1:DISCOURSE_ALLOWED_INTERNAL_HOSTS: 172.16.X.X(LiteLLM-Container-IP, 127.0.0.1 und der SSL-terminierte LLM-Domain-Host, von dem ich verstehe, dass er hier nicht angegeben werden muss)
EDIT 2: Und ich sehe den gleichen 500-Fehler, wenn ich versuche, meinen MCP-Server zu konfigurieren (Konfiguration im Tab „MCP discourse-ai“).
Habe ich bereits gemacht, wie ich zuvor schrieb, nichts funktioniert und ich bitte höflich um Hilfe zur weiteren Fehlersuche, da es etwas Seltsames ist.
Dieser Endpunkt funktioniert innerhalb der Discourse-Container-App, aber nicht aus der Discourse-Benutzeroberfläche heraus.