Bonjour à tous,
Nous explorons Discourse AI afin d’intégrer un assistant conversationnel dans notre forum Discourse, pour aider les utilisateurs avec la navigation, les fonctionnalités, les catégories, les sujets et les questions générales liées au forum.
Nous avons accès à nos propres API LLM pour GPT et Claude au sein de notre organisation, et nous souhaitons comprendre comment ces modèles peuvent être configurés comme fournisseurs dans Discourse AI. Notre objectif est d’exploiter les capacités des LLM pour créer un assistant conversationnel plus contextuel au sein de notre Discourse.
Configuration LLM actuelle
Nous disposons actuellement d’un point de terminaison API interne compatible OpenAI :
Point de terminaison :
https://genai-nexus.api.corpinter.net/openai/deployments/gpt-5.5/chat/completions?api-version=2024-10-21
Modèle :
gpt-5.5
Nous sommes particulièrement intéressés par les conseils de toute personne ayant configuré Discourse AI avec une passerelle API interne/entreprise compatible OpenAI , plutôt qu’en utilisant directement l’API publique d’OpenAI.
Tous exemples de configuration ou recommandations seraient grandement appréciés.
Merci d’avance !
Falco
(Falco)
Août 17, 2026, 5:21
2
Choisissez openai comme fournisseur, et configurez l’URL avec celle que vous avez.
J’ai essayé de sélectionner OpenAI comme fournisseur, mais je n’arrive toujours pas à configurer…
Y a-t-il une autre méthode ou des recommandations ?
kddkd
(用户16)
Août 17, 2026, 6:00
4
J’utilise également ce type d’API. Mon identifiant de modèle est gpt-5.6-sol, et il fonctionne actuellement sans problème.
Pouvez-vous me dire comment vous l’avez configuré… Chez moi, ça ne fonctionne pas après avoir renseigné tous les détails…
kddkd
(用户16)
Août 17, 2026, 6:26
6
Dans le panneau d’administration, sous AI-LLM-Modèles LLM non configurés , sélectionnez GPT-5.6 Sol , puis saisissez les deux informations fournies par l’API tierce :
URL du service hébergeant le modèle : par exemple ai.com/v1/responses
Clé API du service hébergeant le modèle : fournie par le tiers
Vous pouvez cliquer sur le bouton « Exécuter le test » ci-dessous. En cas d’échec, cela est probablement dû à un format incorrect de l’URL saisie.
Oui, après avoir fourni toutes ces informations, je reçois un message d’erreur interne du serveur
kddkd
(用户16)
Août 17, 2026, 6:55
8
J’ai testé votre URL, mais elle ne renvoie pas les informations de cette image. Pourriez-vous me préciser sur quelle page se trouvent les informations de cette image ?
Le résultat de mon test sans saisie de la clé API est le suivant : échec de la requête non streaming : {“message”:“Unauthorized”}
kddkd
(用户16)
Août 17, 2026, 6:56
9
Il semble que vous deviez prendre une capture d’écran de votre page de configuration complète.
Moin
Août 17, 2026, 8:03
11
Y a-t-il une erreur plus détaillée dans les journaux sur forum.example.com/logs ?
Si vous utilisez votre adresse IP interne, vous devez ajouter le domaine au filtre de sécurité dans DISCOURSE_ALLOWED_INTERNAL_HOSTS
Voici les journaux
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)
Avez-vous des suggestions ou des recommandations concernant les journaux que j’ai partagés, et que faire ensuite ?
Dans mon cas, j’ai essayé de modifier la valeur de la fenêtre de contexte, par exemple en la passant à 200000 ou 128000.