2121"""
2222
2323import json
24+ import urllib
25+
2426import requests
2527import datetime
2628
@@ -118,18 +120,15 @@ def call_http_request(
118120 else self ._endpoint .api_model .name
119121 )
120122
121- # build full URL (host + endpoint path )
122- full_url = (
123- self . _endpoint . api_model . api_host . rstrip ( "/" ) + "/" + ep_url . lstrip ( "/" )
124- )
123+ full_url = self . _prepare_full_url_ep ( ep_url )
124+
125+ if not headers :
126+ headers = { "Content-Type" : "application/json" }
125127
126128 # auth header
127129 token_str = self ._endpoint .api_model .api_token
128130 if token_str :
129- headers = {
130- "Authorization" : f"Bearer { token_str } " ,
131- "Content-Type" : "application/json" ,
132- }
131+ headers ["Authorization" ] = f"Bearer { token_str } "
133132
134133 # prepend system prompt if required
135134 system_msg = {}
@@ -212,9 +211,8 @@ def stream_response(
212211 else self ._endpoint .api_model .name
213212 )
214213 params ["stream" ] = True
215- full_url = (
216- self ._endpoint .api_model .api_host .rstrip ("/" ) + "/" + ep_url .lstrip ("/" )
217- )
214+ full_url = self ._prepare_full_url_ep (ep_url )
215+
218216 method = (self ._endpoint .method or "POST" ).upper ()
219217 headers = {
220218 "Content-Type" : "application/json" ,
@@ -232,8 +230,11 @@ def stream_response(
232230 return self ._stream_generic (full_url , params , method , headers )
233231
234232 # ------------------------------------------------------------------
235- # Private helpers – moved unchanged from the original class
233+ # Private helpers
236234 # ------------------------------------------------------------------
235+ def _prepare_full_url_ep (self , ep_url : str ) -> str :
236+ return urllib .parse .urljoin (self ._endpoint .api_model .api_host , ep_url )
237+
237238 def _call_for_each_user_message (
238239 self ,
239240 ep_url : str ,
@@ -273,7 +274,7 @@ def _call_for_each_user_message(
273274 ``_prepare_response_function`` is missing.
274275 """
275276 _payloads = []
276- for m in params .get ("messages" , {} ):
277+ for m in params .get ("messages" , [] ):
277278 if m .get ("role" , "?" ) == "user" :
278279 _params = params .copy ()
279280 _params ["messages" ] = [system_message , m ]
@@ -288,7 +289,8 @@ def _call_for_each_user_message(
288289 contents = []
289290 responses = []
290291 for payload , content in _payloads :
291- self .logger .debug (json .dumps (payload , indent = 2 , ensure_ascii = False ))
292+ self .logger .debug (f"Request payload: { payload } " )
293+
292294 response = self ._call_post_with_payload (
293295 ep_url = ep_url ,
294296 params = payload ,
0 commit comments