
    &`i                        d dl Z d dlmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZmZ d d	lmZ d d
l m!Z!m"Z" d dl#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. de	defdZ/eege.f         Z0dede.fdZ1	 	 d)dedee2         dee0         defdZ3d Z4d Z5d Z6d Z7d Z8dee2ee2         f         fdZ9ee2ee"ge%f         Z:	 d*de2dede"d ee         de%f
d!Z;d"ed#e2fd$Z<d%ed&efd'Z=d( Z>dS )+    N)CallableOptionalTuple)HEAD_NODE_RESOURCE_NAME)	GcsClient)ClusterNodeInfoCacheDefaultClusterNodeInfoCache)CreatePlacementGroupRequestDeploymentHandleSourceDeploymentIDEndpointInfoRequestMetadataRequestProtocol)CONTROLLER_MAX_CONCURRENCYRAY_SERVE_ENABLE_TASK_EVENTS)RAY_SERVE_PROXY_PREFER_LOCAL_NODE_ROUTING%RAY_SERVE_RUN_ROUTER_IN_SEPARATE_LOOPSERVE_CONTROLLER_NAMESERVE_NAMESPACE)DefaultDeploymentSchedulerDeploymentScheduler)gRPCGenericServer)DynamicHandleOptionsInitHandleOptions)CurrentLoopRouterRouterSingletonThreadRouter)generate_request_idget_current_actor_idget_head_node_idinside_ray_client_contextresolve_deployment_response)PlacementGroup
gcs_clientreturnc                      t          |           S N)r	   )r$   s    s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/serve/_private/default_impl.pycreate_cluster_node_info_cacher)   2   s    &z222    requestc                 r    t           j                            | j        | j        | j        | j        d          S )Ndetached)_soft_target_node_idnamelifetime)rayutilplacement_groupbundlesstrategytarget_node_idr/   )r+   s    r(   _default_create_placement_groupr7   9   s<     8##$3\ $   r*   cluster_node_info_cachehead_node_id_override"create_placement_group_fn_overridec                 T    |pt                      }t          | ||pt                    S )N)create_placement_group_fn)r    r   r7   )r8   r9   r:   head_node_ids       r(   create_deployment_schedulerr>   E   s=    
 )>,<,>,>L%"D #+*	   r*   c                      ddl m}  |di | S )Nr   )Replica )ray.serve._private.replicar@   )kwargsr@   s     r(   create_replica_implrD   S   s*    2222227Vr*   c                      ddl m}  |di | S )Nr   )ReplicaMetricsManagerrA   )rB   rF   )rC   rF   s     r(   create_replica_metrics_managerrG   Y   s+    @@@@@@  **6***r*   c                      t          di | S NrA   )r   rC   s    r(   create_dynamic_handle_optionsrK   _   s    ))&)))r*   c                  $    t          j        di | S rI   )r   createrJ   s    r(   create_init_handle_optionsrN   c   s    #--f---r*   c                    t           j        j                                        }t          j        }| r<| j        t          j        k    r'|j	        rt          j
        }n|j        rt          j        }t          |j        r|j        nt                      |j        r|j        nt                      |j        |j        |j        |j        |j        ||j        d
  
        S )NT)

request_idinternal_request_idcall_methodrouteapp_namemultiplexed_model_idis_streaming_request_protocolgrpc_context_by_reference)r1   servecontext_get_serve_request_contextr   	UNDEFINED_sourcer   PROXYis_http_requestHTTPrX   GRPCr   rP   r   _internal_request_idmethod_namerS   rT   rU   stream)init_optionshandle_options_request_contextrequest_protocols       r(   get_request_metadatarj   g   s    y(CCEE&0 4,0F0LLL+ 	4.3* 	4.3&##.. ""0#,AA """.$!*+@#**%2   r*   c                  4   t          j                                                    } 	 t          t	          t          j                    j                            }|                                 |                    |           }n# t          $ r d }Y nw xY w| |fS )N)address)	r1   get_runtime_contextget_node_idr)   r   gcs_addressupdateget_node_az	Exception)node_idr8   azs      r(   _get_node_id_and_azru      s    %''3355G"@c577CDDD#
 #
 	 &&((($0099    B;s   AB BB	handle_iddeployment_idrg   request_router_classc                 b   ddl m} t                      }t                      \  }} |            j        }t                      }	|j        rt          }
n9	 t          j	                     n# t          $ r t          d          w xY wt          }
 |
||| ||j        ||	 t          |||j                  S )Nr   _get_global_clientzNo event loop running. You cannot use a handle initialized with `_run_router_in_separate_loop=False` when not inside an asyncio event loop.)controller_handlerw   rv   self_actor_idhandle_sourcerx   "enable_strict_max_ongoing_requestsresolve_request_arg_funcrs   availability_zoneprefer_local_node_routing)ray.serve.contextr{   r   ru   _controllerr!   _run_router_in_separate_loopr   asyncioget_running_loopRuntimeErrorr   r^   r"   _prefer_local_routing)rv   rw   rg   rx   r{   actor_idrs   r   r|   is_inside_ray_client_contextrouter_wrapper_clss              r(   create_routerr      s     544444#%%H!4!6!6G**,,8#<#>#> 2 /2	$&&&& 	 	 	  	 /+#$,1/K+K!<+"0"F   s   A' 'Bgrpc_serverserver_addressc                 0    |                      |           dS )z3Helper function to add an address to a gRPC server.N)add_insecure_port)r   r   s     r(   add_grpc_addressr      s    !!.11111r*   endpointinfoc                    ddl m}  |            }|                    | j        | j        d          }|j        s,|                    t          t          j	        t                     |                    |j                   S )Nr   rz   T)check_exists)r   r^   r   )re   )r   r{   
get_handler/   rT   is_initialized_initr   r   r_   r   optionsapp_is_cross_language)r   r   r{   clienthandles        r(   get_proxy_handler      s     544444!!Fx}h.?dSSF   
 	"K*0)N 	 	
 	
 	
 >>T%?!?>@@@r*   c                      ddl m}   t          j        t          t
          ddddt          dit          t          	  	        |           }|S )Nr   )ServeControllerr-   gMbP?)	r/   	namespacenum_cpusr0   max_restartsmax_task_retries	resourcesmax_concurrencyenable_task_events)	ray.serve._private.controllerr   r1   remoter   r   r   r   r   )r   controller_impls     r(   get_controller_implr      se    ======
cj"!*E227
 
 
 
 
O r*   )NNr'   )?r   typingr   r   r   r1   ray._common.constantsr   ray._rayletr   *ray.serve._private.cluster_node_info_cacher   r	   ray.serve._private.commonr
   r   r   r   r   r   ray.serve._private.constantsr   r   r   r   r   r   'ray.serve._private.deployment_schedulerr   r   ray.serve._private.grpc_utilr   !ray.serve._private.handle_optionsr   r   ray.serve._private.routerr   r   r   ray.serve._private.utilsr   r   r    r!   r"   ray.util.placement_groupr#   r)   CreatePlacementGroupFnr7   strr>   rD   rG   rK   rN   rj   ru   CreateRouterCallabler   r   r   r   rA   r*   r(   <module>r      s    , , , , , , , , , , 



 9 9 9 9 9 9 ! ! ! ! ! !                                             ; : : : : : U U U U U U U U V V V V V V V V V V              4 3 3 3 3 33y 3=Q 3 3 3 3 "#>"?"OP 	(		 	 	 	 ,0KO 1#C= )11G(H 	     + + +* * *. . .  8U3#56      l4E F NO  04	) ))) &) #8,	)
 ) ) ) )X2"3 2S 2 2 2 2
A| A< A A A A0    r*   