
    jo1                         d dl Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZ  e j                  e j                  d	      Z G d
 d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)!ManualEvaluationRequestEntityType)ManualEvaluationResponse   )AsyncRawManualEvaluationClientRawManualEvaluationClient.c                      e Zd ZdefdZedefd       Zdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZy)ManualEvaluationClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/manual_evaluation/client.py__init__zManualEvaluationClient.__init__   s    4NS    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawManualEvaluationClient
        r   r   s    r   with_raw_responsez(ManualEvaluationClient.with_raw_response        r   Nrequest_options
project_id
entity_idsrule_idsentity_typer   c                Z    | j                   j                  |||||      }|j                  S )a  
        Manually trigger evaluation rules on selected spans. Bypasses sampling and enqueues all specified spans for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.manual_evaluation.evaluate_spans(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        r   r    r!   r"   r   r   evaluate_spansdatar   r   r    r!   r"   r   	_responses          r   r&   z%ManualEvaluationClient.evaluate_spans   s;    P $$33!!#+ 4 
	 ~~r   c                Z    | j                   j                  |||||      }|j                  S )a  
        Manually trigger evaluation rules on selected threads. Bypasses sampling and enqueues all specified threads for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.manual_evaluation.evaluate_threads(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        r$   r   evaluate_threadsr'   r(   s          r   r,   z'ManualEvaluationClient.evaluate_threadsO   s;    P $$55!!#+ 6 
	 ~~r   c                Z    | j                   j                  |||||      }|j                  S )a  
        Manually trigger evaluation rules on selected traces. Bypasses sampling and enqueues all specified traces for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.manual_evaluation.evaluate_traces(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        r$   r   evaluate_tracesr'   r(   s          r   r/   z&ManualEvaluationClient.evaluate_traces   s;    P $$44!!#+ 5 
	 ~~r   )__name__
__module____qualname__r   r   propertyr   r   strtypingSequencer   Optionalr   r   r&   r,   r/    r   r   r   r      sU   T*; T  #<    " <@/ / OOC(	/
 //#&/ 7/  8/ 
"/p <@/ / OOC(	/
 //#&/ 7/  8/ 
"/p <@/ / OOC(	/
 //#&/ 7/  8/ 
"/r   r   c                      e Zd ZdefdZedefd       Zdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZdddede	j                  e   d	e	j                  e   d
ede	j                  e   defdZy)AsyncManualEvaluationClientr   c                &    t        |      | _        y r   )r
   r   r   s     r   r   z$AsyncManualEvaluationClient.__init__   s    9Xr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawManualEvaluationClient
        r   r   s    r   r   z-AsyncManualEvaluationClient.with_raw_response   r   r   Nr   r   r    r!   r"   r   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Manually trigger evaluation rules on selected spans. Bypasses sampling and enqueues all specified spans for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.manual_evaluation.evaluate_spans(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        asyncio.run(main())
        r$   Nr%   r(   s          r   r&   z*AsyncManualEvaluationClient.evaluate_spans   sI     V **99!!#+ : 
 
	 ~~
   $979c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Manually trigger evaluation rules on selected threads. Bypasses sampling and enqueues all specified threads for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.manual_evaluation.evaluate_threads(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        asyncio.run(main())
        r$   Nr+   r(   s          r   r,   z,AsyncManualEvaluationClient.evaluate_threads   sI     V **;;!!#+ < 
 
	 ~~
r>   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Manually trigger evaluation rules on selected traces. Bypasses sampling and enqueues all specified traces for evaluation.

        Parameters
        ----------
        project_id : str
            Project ID

        entity_ids : typing.Sequence[str]
            List of entity IDs (trace IDs or thread IDs) to evaluate

        rule_ids : typing.Sequence[str]
            List of automation rule IDs to apply

        entity_type : ManualEvaluationRequestEntityType
            Type of entity to evaluate (trace or thread)

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ManualEvaluationResponse
            Accepted - Evaluation request queued successfully

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.manual_evaluation.evaluate_traces(project_id='550e8400-e29b-41d4-a716-446655440000', entity_ids=['550e8400-e29b-41d4-a716-446655440000', '550e8400-e29b-41d4-a716-446655440001'], rule_ids=['660e8400-e29b-41d4-a716-446655440000'], entity_type="trace", )
        asyncio.run(main())
        r$   Nr.   r(   s          r   r/   z+AsyncManualEvaluationClient.evaluate_traces)  sI     V **::!!#+ ; 
 
	 ~~
r>   )r0   r1   r2   r   r   r3   r
   r   r4   r5   r6   r   r7   r   r   r&   r,   r/   r8   r   r   r:   r:      sU   Y*< Y  #A    " <@2 2 OOC(	2
 //#&2 72  82 
"2v <@2 2 OOC(	2
 //#&2 72  82 
"2v <@2 2 OOC(	2
 //#&2 72  82 
"2r   r:   )r5   core.client_wrapperr   r   core.request_optionsr   +types.manual_evaluation_request_entity_typer    types.manual_evaluation_responser   
raw_clientr
   r   castAnyOMITr   r:   r8   r   r   <module>rI      sJ     G 1 [ G Q v{{6::s#` `Fi ir   