Ë
    tPêj  ã                   ó|   — d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ e G d„ d«      «       Z G d	„ d
e«      Zy)zQ
AgentOps integration for LiteLLM - Provides OpenTelemetry tracing for LLM calls
é    N)Ú	dataclass)ÚAnyÚFinal)ÚOpenTelemetryÚOpenTelemetryConfig)Ú_get_httpx_clientc                   óv   — e Zd ZU dZeed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZ	eed<   e
d	„ «       Zy)
ÚAgentOpsConfigú%https://otlp.agentops.cloud/v1/tracesÚendpointNÚapi_keyÚservice_nameÚdeployment_environmentú%https://api.agentops.ai/v3/auth/tokenÚauth_endpointc           	      ó’   —  | dt        j                  d«      t        j                  dd«      t        j                  dd«      d¬«      S )	Nr   ÚAGENTOPS_API_KEYÚAGENTOPS_SERVICE_NAMEÚagentopsÚAGENTOPS_ENVIRONMENTÚ
productionr   )r   r   r   r   r   )ÚosÚgetenv)Úclss    úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/agentops/agentops.pyÚfrom_envzAgentOpsConfig.from_env   s@   € áØ<Ü—I‘IÐ0Ó1ÜŸ™Ð#:¸JÓGÜ#%§9¡9Ð-CÀ\Ó#RØAô
ð 	
ó    )Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚ__annotations__r   r   r   r   Úclassmethodr   © r   r   r
   r
      sS   … à;€HˆcÓ;Ø€GˆS�4‰ZÓØ#€L�#˜‘*Ó#Ø)-Ð˜C $™JÓ-Ø@€M�3Ó@àñ
ó ñ
r   r
   c                   óP   ‡ — e Zd ZdZ	 d	dedz  fˆ fd„Zdededeeef   fd„Z	ˆ xZ
S )
ÚAgentOpsaX  
    AgentOps integration - built on top of OpenTelemetry

    Example usage:
        ```python
        import litellm

        litellm.success_callback = ["agentops"]

        response = litellm.completion(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": "Hello, how are you?"}],
        )
        ```
    NÚconfigc                 óÆ  •— |€t         j                  «       }d }d }|j                  rI	 | j                  |j                  |j                  «      }|j                  d«      }|j                  d«      }|rd|› �nd }t        d|j                  |¬«      }t        ‰| �)  |d¬«       |j                  xs d|j                  xs d	dd
œ}|r||d<   || _        y # t        $ r Y Œnw xY w)NÚtokenÚ
project_idzAuthorization=Bearer Ú	otlp_http)Úexporterr   Úheadersr   )r'   Úcallback_nameÚlitellmr   )zservice.namezdeployment.environmentztelemetry.sdk.namez
project.id)r
   r   r   Ú_fetch_auth_tokenr   ÚgetÚ	Exceptionr   r   ÚsuperÚ__init__r   r   Úresource_attributes)	Úselfr'   Ú	jwt_tokenr*   Úresponser-   Úotel_configÚresource_attrsÚ	__class__s	           €r   r4   zAgentOps.__init__1   sú   ø€ ð ˆ>Ü#×,Ñ,Ó.ˆFð ˆ	Øˆ
Ø�>Š>ðØ"&×"8Ñ"8¸¿¹È×I]ÑI]Ó"^�Ø$ŸL™L¨Ó1�	Ø%Ÿ\™\¨,Ó7�
ñ AJÐ0°°Ñ<Ètˆä0¸+ÐPV×P_ÑP_ÐipÔqˆô 	‰Ñ ¸:ÐÔFð #×/Ñ/Ò<°9Ø&,×&CÑ&CÒ&SÀ|Ø",ñ!
ˆñ Ø+5ˆN˜<Ñ(à#1ˆÕ øô) ò Ùðús   ©AC Ã	C ÃC r   r   Úreturnc                 ó  — dddœ}t        «       }	 |j                  ||d|id¬«      }|j                  dk7  rt        d|j                  › �«      ‚|j                  «       |j                  «        S # |j                  «        w xY w)	zñ
        Fetch JWT authentication token from AgentOps API

        Args:
            api_key: AgentOps API key
            auth_endpoint: Authentication endpoint

        Returns:
            Dict containing JWT token and project ID
        zapplication/jsonz
keep-alive)zContent-TypeÚ
Connectionr   é
   )Úurlr-   ÚjsonÚtimeoutéÈ   zFailed to fetch auth token: )r   ÚpostÚstatus_coder2   ÚtextrA   Úclose)r6   r   r   r-   Úclientr8   s         r   r0   zAgentOps._fetch_auth_tokenV   s‡   € ð /Ø&ñ
ˆô
 *Ó+ˆð	Ø$Ÿk™kØ!ØØ Ð)Øð	 *ó ˆHð ×#Ñ# sÒ*ÜÐ">¸x¿}¹}¸oÐ NÓOÐOà—=‘=“?à�L‰L�NøˆF�L‰L�Nús   ‘AA/ Á/B)N)r   r   r    Ú__doc__r
   r4   r!   Údictr   r0   Ú__classcell__)r;   s   @r   r&   r&       sB   ø„ ñð$ )-ñ#2à Ñ%õ#2ðJ¨ð ¸Sð ÀTÈ#ÈsÈ(Á^÷ r   r&   )rI   r   Údataclassesr   Útypingr   r   Ú"litellm.integrations.opentelemetryr   r   Ú&litellm.llms.custom_httpx.http_handlerr   r
   r&   r$   r   r   ú<module>rP      sB   ðñó 
Ý !ß ç QÝ Dð ÷
ð 
ó ð
ô$Tˆ}õ Tr   