From 3022d34613bd8214630f1d650c1c9de9f491e43f Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Thu, 24 Oct 2024 15:47:12 -0300 Subject: [PATCH] FEATURE: Support srv records for OpenAI compatible LLMs (#865) --- lib/completions/endpoints/open_ai.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/completions/endpoints/open_ai.rb b/lib/completions/endpoints/open_ai.rb index a8cff595..0677af94 100644 --- a/lib/completions/endpoints/open_ai.rb +++ b/lib/completions/endpoints/open_ai.rb @@ -48,7 +48,14 @@ module DiscourseAi private def model_uri - URI(llm_model.url) + if llm_model.url.to_s.starts_with?("srv://") + service = DiscourseAi::Utils::DnsSrv.lookup(llm_model.url.sub("srv://", "")) + api_endpoint = "https://#{service.target}:#{service.port}/v1/chat/completions" + else + api_endpoint = llm_model.url + end + + @uri ||= URI(api_endpoint) end def prepare_payload(prompt, model_params, dialect)