Ë
    ’Äii  ã                   ó<   — d Z ddlmZmZmZ ddlmZ  G d„ d«      Zy)zK
Arize Phoenix API client for fetching prompt versions from Arize Phoenix.
é    )ÚAnyÚDictÚOptional)ÚHTTPHandlerc                   ó`   — e Zd ZdZddee   dee   fd„Zdedeeeef      fd„Z	de
fd	„Zd
„ Zy)ÚArizePhoenixClientzÏ
    Client for interacting with Arize Phoenix API to fetch prompt versions.

    Supports:
    - Authentication with Bearer tokens
    - Fetching prompt versions
    - Direct API base URL configuration
    NÚapi_keyÚapi_basec                 óÌ   — || _         || _        | j                   st        d«      ‚| j                  st        d«      ‚d| j                   › ddœ| _        t	        d¬«      | _        y)	zâ
        Initialize the Arize Phoenix client.

        Args:
            api_key: Arize Phoenix API token
            api_base: Base URL for the Arize Phoenix API (e.g., 'https://app.phoenix.arize.com/s/workspace/v1')
        zapi_key is requiredzapi_base is requiredzBearer zapplication/json)ÚAuthorizationÚAcceptT)Údisable_default_headersN)r	   r
   Ú
ValueErrorÚheadersr   Úhttp_handler)Úselfr	   r
   s      ú€/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/integrations/arize/arize_phoenix_client.pyÚ__init__zArizePhoenixClient.__init__   sc   € ð ˆŒØ ˆŒà|Š|ÜÐ2Ó3Ð3à}Š}ÜÐ3Ó4Ð4ð  ' t§|¡| nÐ5Ø(ñ
ˆŒô (ÀÔEˆÕó    Úprompt_version_idÚreturnc                 ó
  — | j                   › d|› }	 | j                  j                  || j                  ¬«      }|j	                  «        |j                  «       }|j                  d«      S # t        $ rŽ}t        |dd«      }|it        |d«      r]|j                  dk(  rY d}~y|j                  dk(  rt        d	|› d
«      ‚|j                  dk(  rt        d«      ‚t        d|› d|› «      ‚t        d|› d|› «      ‚d}~ww xY w)zî
        Fetch a prompt version from Arize Phoenix.

        Args:
            prompt_version_id: The ID of the prompt version to fetch

        Returns:
            Dictionary containing prompt version data, or None if not found
        z/v1/prompt_versions/©r   ÚdataÚresponseNÚstatus_codei”  i“  z!Access denied to prompt version 'z('. Check your Arize Phoenix permissions.i‘  zHAuthentication failed. Check your Arize Phoenix API key and permissions.z Failed to fetch prompt version 'z': zError fetching prompt version ')
r
   r   Úgetr   Úraise_for_statusÚjsonÚ	ExceptionÚgetattrÚhasattrr   )r   r   Úurlr   r   Úes         r   Úget_prompt_versionz%ArizePhoenixClient.get_prompt_version.   s1  € ð —‘Ð3Ð4EÐ3FÐGˆð	à×(Ñ(×,Ñ,¨S¸$¿,¹,Ð,ÓGˆHØ×%Ñ%Ô'à—=‘=“?ˆDØ—8‘8˜FÓ#Ð#øäò 	ä˜q *¨dÓ3ˆHØÐ#¬°¸-Ô(HØ×'Ñ'¨3Ò.ÜØ×)Ñ)¨SÒ0Ü#Ø;Ð<MÐ;NÐNvÐwóð ð ×)Ñ)¨SÒ0Ü#Øbóð ô $Ø:Ð;LÐ:MÈSÐQRÐPSÐTóð ô  Ø5Ð6GÐ5HÈÈAÈ3ÐOóð ûð'	ús   “AA+ Á+	DÁ4*C=Â#AC=Ã=Dc                 óÄ   — 	 | j                   › d}| j                  j                  j                  || j                  ¬«      }|j                  «        y# t        $ r Y yw xY w)z
        Test the connection to the Arize Phoenix API.

        Returns:
            True if connection is successful, False otherwise
        z/prompt_versionsr   TF)r
   r   Úclientr   r   r   r    )r   r#   r   s      r   Útest_connectionz"ArizePhoenixClient.test_connectionY   s^   € ð	à—]‘]OÐ#3Ð4ˆCØ×(Ñ(×/Ñ/×3Ñ3°CÀÇÁÐ3ÓNˆHØ×%Ñ%Ô'ØøÜò 	Ùð	ús   ‚AA Á	AÁAc                 óR   — t        | d«      r| j                  j                  «        yy)z)Close the HTTP handler to free resources.r   N)r"   r   Úclose)r   s    r   r*   zArizePhoenixClient.closei   s#   € ä4˜Ô(Ø×Ñ×#Ñ#Õ%ð )r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   r   r   r%   Úboolr(   r*   © r   r   r   r   
   sW   „ ññF ¨¡ð FÀÈÁó Fð4)°Cð )¸HÀTÈ#ÈsÈ(Á^Ñ<Tó )ðV ó ó &r   r   N)r.   Útypingr   r   r   Ú&litellm.llms.custom_httpx.http_handlerr   r   r1   r   r   Ú<module>r4      s!   ðñ÷ 'Ñ &å >÷b&ò b&r   