Konfiguration von Discourse AI mit internen OpenAI-APIs

Hallo zusammen,

Wir untersuchen die Möglichkeit, Discourse AI zu nutzen, um einen Konversationsassistenten in unserem Discourse-Forum bereitzustellen, der Benutzern bei der Navigation, bei Funktionen, Kategorien, Themen und allgemeinen Fragen zum Forum hilft.

Wir haben Zugriff auf die eigenen LLM-APIs für GPT und Claude unserer Organisation und möchten verstehen, wie diese Modelle als Anbieter innerhalb von Discourse AI konfiguriert werden können. Unser Ziel ist es, die LLM-Fähigkeiten zu nutzen, um einen kontextbezogenen Konversationsassistenten in unserem Discourse-Forum aufzubauen.

Aktuelle LLM-Konfiguration

Derzeit haben wir Zugriff auf einen OpenAI-kompatiblen internen API-Endpunkt:

Endpunkt:

https://genai-nexus.api.corpinter.net/openai/deployments/gpt-5.5/chat/completions?api-version=2024-10-21

Modell:

gpt-5.5

Wir sind besonders an Hinweisen von Personen interessiert, die Discourse AI mit einem unternehmensinternen/internen OpenAI-kompatiblen API-Gateway konfiguriert haben, anstatt die öffentliche API von OpenAI direkt zu verwenden.

Jede Konfigurationsbeispiele oder Empfehlungen wären sehr willkommen.

Vielen Dank im Voraus!

Wählen Sie openai als Anbieter und konfigurieren Sie die URL mit der, die Sie haben.

Ich habe versucht, OpenAI als Anbieter auszuwählen, aber die Konfiguration ist immer noch nicht möglich.

Gibt es andere Möglichkeiten oder Empfehlungen??

Ich nutze ebenfalls diese API. Meine Modell-ID ist gpt-5.6-sol und sie läuft derzeit einwandfrei.

Kannst du mir sagen, wie du es konfiguriert hast? Bei mir läuft es nicht, nachdem ich alle Angaben eingegeben habe.

Wählen Sie im Admin-Bereich unter AI-LLM-Nicht konfigurierte LLM-Vorlagen die Option GPT-5.6 Sol und geben Sie die beiden vom Drittanbieter-API bereitgestellten Informationen ein:

URL des gehosteten Modells: z. B. ai.com/v1/responses

API-Schlüssel des gehosteten Modells: Vom Drittanbieter bereitgestellt

Unten können Sie auf die Schaltfläche „Test ausführen“ klicken. Wenn dies fehlschlägt, liegt dies möglicherweise an einem falschen URL-Format.

Ja, nach der Eingabe aller dieser Informationen erhalte ich eine interne Serverfehlermeldung

Ich habe Ihre URL getestet, und sie hat keine Informationen zu diesem Bild zurückgegeben. Auf welcher Seite befinden sich die Informationen zu diesem Bild?

Das Ergebnis des Tests ohne Eingabe des API-Schlüssels war: Nicht-Streaming-Anfrage fehlgeschlagen: {“message”:“Unauthorized”}

Es sieht so aus, als ob du einen Screenshot deiner vollständigen Konfigurationsseite machen musst.


Dieses

Gibt es in den Logs unter forum.example.com/logs einen detaillierteren Fehler?

Wenn Sie Ihre interne IP-Adresse verwenden, müssen Sie die Domain im Sicherheitsfilter unter DISCOURSE_ALLOWED_INTERNAL_HOSTS hinzufügen.

image

Hier sind die Logs

plugins/discourse-ai/lib/completions/dialects/dialect.rb:217:in 'DiscourseAi::Completions::Dialects::Dialect#trim_messages'
plugins/discourse-ai/lib/completions/dialects/dialect.rb:140:in 'DiscourseAi::Completions::Dialects::Dialect#translate'
plugins/discourse-ai/lib/completions/endpoints/base.rb:126:in 'DiscourseAi::Completions::Endpoints::Base#perform_completion!'
plugins/discourse-ai/lib/completions/endpoints/open_ai.rb:54:in 'DiscourseAi::Completions::Endpoints::OpenAi#perform_completion!'
plugins/discourse-ai/lib/completions/llm.rb:439:in 'DiscourseAi::Completions::Llm#generate'
plugins/discourse-ai/lib/configuration/llm_validator.rb:36:in 'DiscourseAi::Configuration::LlmValidator#run_test'
plugins/discourse-ai/app/controllers/discourse_ai/admin/ai_llms_controller.rb:159:in 'DiscourseAi::Admin::AiLlmsController#test'
actionpack (8.0.4) lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action'
actionpack (8.0.4) lib/abstract_controller/base.rb:215:in 'AbstractController::Base#process_action'
activesupport (8.0.4) lib/active_support/callbacks.rb:120:in 'block in ActiveSupport::Callbacks#run_callbacks'
app/controllers/application_controller.rb:442:in 'block in ApplicationController#with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in 'I18n::Base#with_locale'
app/controllers/application_controller.rb:442:in 'ApplicationController#with_resolved_locale'
actionpack (8.0.4) lib/action_dispatch/routing/route_set.rb:908:in 'ActionDispatch::Routing::RouteSet#call'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
rack (2.2.23) lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call'
rack (2.2.23) lib/rack/conditional_get.rb:27:in 'Rack::ConditionalGet#call'
rack (2.2.23) lib/rack/head.rb:12:in 'Rack::Head#call'
actionpack (8.0.4) lib/action_dispatch/middleware/cookies.rb:706:in 'ActionDispatch::Cookies#call'
actionpack (8.0.4) lib/action_dispatch/middleware/callbacks.rb:31:in 'block in ActionDispatch::Callbacks#call'
activesupport (8.0.4) lib/active_support/callbacks.rb:100:in 'block in ActiveSupport::Callbacks#run_callbacks'
actionpack (8.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:31:in 'ActionDispatch::DebugExceptions#call'
actionpack (8.0.4) lib/action_dispatch/middleware/show_exceptions.rb:32:in 'ActionDispatch::ShowExceptions#call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in 'Logster::Middleware::Reporter#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
railties (8.0.4) lib/rails/rack/logger.rb:41:in 'Rails::Rack::Logger#call_app'
railties (8.0.4) lib/rails/rack/logger.rb:29:in 'Rails::Rack::Logger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
rack (2.2.23) lib/rack/method_override.rb:24:in 'Rack::MethodOverride#call'
actionpack (8.0.4) lib/action_dispatch/middleware/executor.rb:16:in 'ActionDispatch::Executor#call'
rack (2.2.23) lib/rack/sendfile.rb:127:in 'Rack::Sendfile#call'
rack-mini-profiler (4.0.1) lib/mini_profiler.rb:191:in 'Rack::MiniProfiler#call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in 'MessageBus::Rack::Middleware#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
actionpack (8.0.4) lib/action_dispatch/middleware/remote_ip.rb:96:in 'ActionDispatch::RemoteIp#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'
railties (8.0.4) lib/rails/engine.rb:535:in 'Rails::Engine#call'
railties (8.0.4) lib/rails/railtie.rb:226:in 'Kernel#public_send'
railties (8.0.4) lib/rails/railtie.rb:226:in 'Kernel#method_missing'
rack (2.2.23) lib/rack/urlmap.rb:74:in 'block in Rack::URLMap#call'
rack (2.2.23) lib/rack/urlmap.rb:58:in 'Array#each'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in 'Unicorn::HttpServer#process_client'
unicorn (6.1.0)

Hast du einen Vorschlag oder eine Empfehlung zu den Logs, die ich geteilt habe? Was soll als Nächstes geschehen?

In meinem Fall habe ich versucht, den Wert für Context window zu ändern, z. B. auf 200000 oder 128000.