
    jq                         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 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)ArizeOTELAttributes)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                 <    t        j                  | ||t               y )N)r   set_attributesr   )r   kwargsresponse_objs      /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/integrations/arize/arize_phoenix.pyset_arize_phoenix_attributesz/ArizePhoenixLogger.set_arize_phoenix_attributes   s    dFL:MN    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  !!3!3ggY4G!H IJ  "/(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.integrations.arize._utilsr   (litellm.types.integrations.arize_phoenixr	   opentelemetry.tracer
   _Span litellm.types.integrations.arizer   	_Protocolopentelemetryr   _OpenTelemetryConfigr%   r   r3   r   r   <module>r@      se    	  , , + - A G1FJH.DHD !J 3
 3
r   