@@ -31,9 +31,15 @@ def _get_protocol_params(kwargs):
3131 base_address = kwargs .pop ('base_address' , None )
3232 flattened_output = kwargs .pop ('flattened_output' , False )
3333 extra_url_parameters = kwargs .pop ('extra_url_parameters' , None )
34+
35+ # Extract user-agent from headers if present
36+ user_agent = ''
37+ if headers and 'user-agent' in headers :
38+ user_agent = headers .pop ('user-agent' )
39+
3440 return (api_protocol , ws_stream_mode , is_binary_input , http_method , stream ,
3541 async_request , query , headers , request_timeout , form , resources ,
36- base_address , flattened_output , extra_url_parameters )
42+ base_address , flattened_output , extra_url_parameters , user_agent )
3743
3844
3945def _build_api_request (model : str ,
@@ -46,8 +52,8 @@ def _build_api_request(model: str,
4652 ** kwargs ):
4753 (api_protocol , ws_stream_mode , is_binary_input , http_method , stream ,
4854 async_request , query , headers , request_timeout , form , resources ,
49- base_address , flattened_output ,
50- extra_url_parameters ) = _get_protocol_params (kwargs )
55+ base_address , flattened_output , extra_url_parameters ,
56+ user_agent ) = _get_protocol_params (kwargs )
5157 task_id = kwargs .pop ('task_id' , None )
5258 enable_encryption = kwargs .pop ('enable_encryption' , False )
5359 encryption = None
@@ -87,7 +93,8 @@ def _build_api_request(model: str,
8793 timeout = request_timeout ,
8894 task_id = task_id ,
8995 flattened_output = flattened_output ,
90- encryption = encryption )
96+ encryption = encryption ,
97+ user_agent = user_agent )
9198 elif api_protocol == ApiProtocol .WEBSOCKET :
9299 if base_address is not None :
93100 websocket_url = base_address
@@ -101,7 +108,8 @@ def _build_api_request(model: str,
101108 is_binary_input = is_binary_input ,
102109 timeout = request_timeout ,
103110 flattened_output = flattened_output ,
104- pre_task_id = pre_task_id )
111+ pre_task_id = pre_task_id ,
112+ user_agent = user_agent )
105113 else :
106114 raise UnsupportedApiProtocol (
107115 'Unsupported protocol: %s, support [http, https, websocket]' %
0 commit comments