
    h
                         d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ erd dlmZ d dlmZ dd	lmZ eZeZeeef   ZneZeZeZd
Z G d d      Zy)    N)TYPE_CHECKINGAnyUnion)verbose_logger)_utils)ArizePhoenixConfig)Span)Protocol   )OpenTelemetryConfigz'https://app.phoenix.arize.com/v1/tracesc                   8    e Zd Zedefd       Zedefd       Zy)ArizePhoenixLoggerspanc                 2    t        j                  | ||       y )N)r   set_attributes)r   kwargsresponse_objs      d/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/integrations/arize/arize_phoenix.pyset_arize_phoenix_attributesz/ArizePhoenixLogger.set_arize_phoenix_attributes   s    dFL9    returnc                     t         j                  j                  dd      } t         j                  j                  dd      }t         j                  j                  dd      }d}d}|r|}d}n+|r|}d}n$t        }d}t	        j
                  dt                d}|t        k(  r| t        d      d	|  }n'| %d
t        j                  j                  d|         }t        |||      S )z
        Retrieves the Arize Phoenix configuration based on environment variables.

        Returns:
            ArizePhoenixConfig: A Pydantic model containing Arize Phoenix configuration.
        PHOENIX_API_KEYNPHOENIX_COLLECTOR_ENDPOINTPHOENIX_COLLECTOR_HTTP_ENDPOINT	otlp_http	otlp_grpczjNo PHOENIX_COLLECTOR_ENDPOINT or PHOENIX_COLLECTOR_HTTP_ENDPOINT found, using default endpoint with http: zKPHOENIX_API_KEY must be set when the Arize hosted Phoenix endpoint is used.zapi_key=zAuthorization=zBearer )otlp_auth_headersprotocolendpoint)osenvirongetARIZE_HOSTED_PHOENIX_ENDPOINTr   debug
ValueErrorurllibparsequoter   )api_keygrpc_endpointhttp_endpointr    r   r   s         r   get_arize_phoenix_configz+ArizePhoenixLogger.get_arize_phoenix_config"   s    **..!2D9

'CTJ

'H$O($H"H$H"H4H"H  |  ~[  }\  ] ! 44 a  #+7) 4 "01C1CggYDW1X0Y Z!/(X
 	
r   N)__name__
__module____qualname__staticmethodr	   r   r   r-    r   r   r   r      s7    4   *
&8 *
 *
r   r   )r!   urllib.parser'   typingr   r   r   litellm._loggingr   litellm.integrations.arizer   (litellm.types.integrations.arize_phoenixr   opentelemetry.tracer	   _Span litellm.types.integrations.arizer
   	_Protocolopentelemetryr   _OpenTelemetryConfigr$   r   r2   r   r   <module>r>      sb    	  , , + - G1FJH.DHD !J 1
 1
r   