Ë
    tPêjÉ  ã                   ó  — U d Z ddlmZ ddlZddlmZ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mZmZmZmZmZmZmZ  e«       Zeed	<   ej5                  d
dg ee«      ge¬«      d ee«      fdedededz  de
fd„«       Zej;                  d
dg ee«      ge¬«      dddddd ee«      fdedededz  dedz  dedz  dedz  dedz  dedz  de
fd„«       Zej;                  ddg ee«      ge¬«      d ee«      fdededededz  de
f
d„«       Z ej5                  ddg ee«      ge¬«      d ee«      fdededededz  de
f
d„«       Z!ejE                  ddg ee«      ge¬«      d ee«      fdededededz  de
f
d„«       Z#ej5                  ddg ee«      ge¬«      d ee«      fdededededz  de
f
d „«       Z$ej5                  d!d"g ee«      ge¬«      d ee«      fdededededz  de
f
d#„«       Z%ej;                  d!d"g ee«      ge¬«      ddddd ee«      fdededededz  dedz  dedz  dedz  dedz  de
fd$„«       Z&ej;                  d%d"g ee«      ge¬«      d ee«      fded&ededededz  de
fd'„«       Z'ej5                  d%d"g ee«      ge¬«      d ee«      fded&ededededz  de
fd(„«       Z(ejE                  d%d"g ee«      ge¬«      d ee«      fded&ededededz  de
fd)„«       Z)y)*z(
OpenAI Evals API endpoints - /v1/evals
é    )ÚFinalN)Ú	APIRouterÚDependsÚRequestÚResponse)ÚUserAPIKeyAuth)Úuser_api_key_auth)ÚProxyBaseLLMRequestProcessing)ÚCancelEvalResponseÚCancelRunResponseÚDeleteEvalResponseÚEvalÚListEvalsResponseÚListRunsResponseÚRunÚRunDeleteResponseÚrouterz	/v1/evalszOpenAI Evals API)ÚtagsÚdependenciesÚresponse_modelÚopenaiÚfastapi_responseÚrequestÚcustom_llm_providerÚuser_api_key_dictc              ƒ   óF  K  — ddl m}m}m}m}m}m}	m}
m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }|j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬«      }	 |j'                  || |d||||||j                  d«      ||||
|	|¬	«      ƒ d{  –—† S 7 Œ½7 Œ# t(        $ r#}|j+                  ||||¬
«      ƒ d{  –—†7  ‚d}~ww xY w­w)a±  
    Create a new evaluation.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl -X POST "http://localhost:4000/v1/evals"       -H "Authorization: Bearer your-key"       -H "Content-Type: application/json"       -d '{
        "name": "Test Eval",
        "data_source_config": {"type": "file", "file_id": "file-abc123"},
        "testing_criteria": {"graders": [{"type": "llm_as_judge"}]}
      }'
    ```

    Returns: Eval object with id, status, timestamps, etc.
    r   ©Úgeneral_settingsÚ
llm_routerÚproxy_configÚproxy_logging_objÚselect_data_generatorÚuser_api_baseÚuser_max_tokensÚ
user_modelÚuser_request_timeoutÚuser_temperatureÚversionNÚmodelúx-litellm-modelr   ©ÚdataÚacreate_eval©r   r   r   Ú
route_typer!   r   r   r    r"   r)   r%   r'   r&   r$   r#   r(   ©Úer   r!   r(   ©Úlitellm.proxy.proxy_serverr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   ÚbodyÚorjsonÚloadsÚgetÚquery_paramsÚheadersr
   Úbase_process_llm_requestÚ	ExceptionÚ_handle_llm_api_exception)r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r4   r,   r)   Ú	processorr1   s                       ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/openai_evals_endpoints/endpoints.pyÚcreate_evalr?      sH  è ø€ ÷D÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø%Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð 'øð
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üsR   ‚.D!°C.±BD!Â63C2 Ã)C0Ã*C2 Ã-D!Ã0C2 Ã2	DÃ;DÄDÄDÄDÄD!é   ÚlimitÚafterÚbeforeÚorderÚorder_byc	              ƒ   ó´  K  — ddl m}	m}
m}m}m}m}m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }d|vr|�||d<   d|vr|�||d<   d|vr|�||d<   d|vr|�||d<   d|vr|�||d<   |j                  d	«      xs8 |j                   j                  d	«      xs |j"                  j                  d
«      }|r||d	<   d|vr||d<   t%        |¬«      }	 |j'                  || |d||
|	|||j                  d	«      ||||||¬«      ƒ d{  –—† S 7 Œô7 Œ# t(        $ r#}|j+                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)aÎ  
    List evaluations with pagination.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl "http://localhost:4000/v1/evals?limit=10"       -H "Authorization: Bearer your-key"
    ```

    Returns: ListEvalsResponse with list of evaluations
    r   r   NrA   rB   rC   rD   rE   r)   r*   r   r+   Úalist_evalsr.   r0   r2   )r   r   rA   rB   rC   rD   rE   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r4   r,   r)   r=   r1   s                            r>   Ú
list_evalsrH   v   s¹  è ø€ ÷B÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð �dÑ˜uÐ0ØˆˆW‰Ø�dÑ˜uÐ0ØˆˆW‰Ø�tÑ Ð 2ØˆˆX‰Ø�dÑ˜uÐ0ØˆˆW‰Ø˜Ñ (Ð"6Ø#ˆˆZÑð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø$Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð5 'øð4
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üsR   ‚.E°D%±B;EÃ-3D) Ä D'Ä!D) Ä$EÄ'D) Ä)	EÄ2EÅ
EÅEÅEÅEz/v1/evals/{eval_id}Úeval_idc              ƒ   óP  K  — ddl m}m}m}m}m}	m}
m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬«      }	 |j'                  |||d	|||||	|j                  d«      |||||
|¬
«      ƒ d{  –—† S 7 ŒÂ7 Œ# t(        $ r#}|j+                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)a®  
    Get a specific evaluation by ID.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl "http://localhost:4000/v1/evals/eval_123"       -H "Authorization: Bearer your-key"
    ```

    Returns: Eval object
    r   r   NrI   r)   r*   r   r+   Ú	aget_evalr.   r0   r2   ©rI   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r4   r,   r)   r=   r1   s                        r>   Úget_evalrM   Û   sR  è ø€ ÷:÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð €Dˆ�Oð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø"Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð# 'øð"
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üóR   ‚.D&°C3±B	D&Â;3C7 Ã.C5Ã/C7 Ã2D&Ã5C7 Ã7	D#Ä DÄDÄDÄD#Ä#D&c              ƒ   óP  K  — ddl m}m}m}m}m}	m}
m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬«      }	 |j'                  |||d	|||||	|j                  d«      |||||
|¬
«      ƒ d{  –—† S 7 ŒÂ7 Œ# t(        $ r#}|j+                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)a  
    Update an evaluation.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl -X POST "http://localhost:4000/v1/evals/eval_123"       -H "Authorization: Bearer your-key"       -H "Content-Type: application/json"       -d '{"name": "Updated Name"}'
    ```

    Returns: Updated Eval object
    r   r   NrI   r)   r*   r   r+   Úaupdate_evalr.   r0   r2   rL   s                        r>   Úupdate_evalrQ   3  sR  è ø€ ÷>÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð €Dˆ�Oð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø%Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð# 'øð"
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
ürN   c              ƒ   óP  K  — ddl m}m}m}m}m}	m}
m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬«      }	 |j'                  |||d	|||||	|j                  d«      |||||
|¬
«      ƒ d{  –—† S 7 ŒÂ7 Œ# t(        $ r#}|j+                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)aÏ  
    Delete an evaluation.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl -X DELETE "http://localhost:4000/v1/evals/eval_123"       -H "Authorization: Bearer your-key"
    ```

    Returns: DeleteEvalResponse with deletion confirmation
    r   r   NrI   r)   r*   r   r+   Úadelete_evalr.   r0   r2   rL   s                        r>   Údelete_evalrT   �  óR  è ø€ ÷:÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð €Dˆ�Oð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø%Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð# 'øð"
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
ürN   z/v1/evals/{eval_id}/cancelc              ƒ   óP  K  — ddl m}m}m}m}m}	m}
m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬«      }	 |j'                  |||d	|||||	|j                  d«      |||||
|¬
«      ƒ d{  –—† S 7 ŒÂ7 Œ# t(        $ r#}|j+                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)aß  
    Cancel a running evaluation.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`

    Example usage:
    ```bash
    curl -X POST "http://localhost:4000/v1/evals/eval_123/cancel"       -H "Authorization: Bearer your-key"
    ```

    Returns: CancelEvalResponse with cancellation confirmation
    r   r   NrI   r)   r*   r   r+   Úacancel_evalr.   r0   r2   rL   s                        r>   Úcancel_evalrX   å  rU   rN   z/v1/evals/{eval_id}/runszOpenAI Evals API - Runsc              ƒ   óÚ  K  — ddl m}m}m}m}m}	m}
m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   |j                  j!                  d«      xsr |j"                  j!                  d«      xsU |j!                  d«      xsB t%        |j!                  d«      t&        «      r!|j!                  di «      j!                  d«      nd}|r||d<   d|vr||d<   t)        |¬	«      }	 |j+                  |||d
|||||	|j!                  d«      |||||
|¬«      ƒ d{  –—† S 7 �Œ7 Œ# t,        $ r#}|j/                  ||||¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)aú  
    Create a new run for an evaluation.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`
    - Pass model via body: `{"model": "gpt-4-account-1"}`
    - Pass model via completion.model: `{"completion": {"model": "gpt-4-account-1"}}`

    Example usage:
    ```bash
    curl -X POST "http://localhost:4000/v1/evals/eval_123/runs"       -H "Authorization: Bearer your-key"       -H "Content-Type: application/json"       -d '{
        "data_source": {"type": "dataset", "dataset_id": "dataset_123"},
        "completion": {"model": "gpt-4", "temperature": 0.7}
      }'
    ```

    Returns: Run object with id, status, timestamps, etc.
    r   r   NrI   r*   r)   Ú
completionr   r+   Úacreate_runr.   r0   )r3   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r4   r5   r6   r9   r7   r8   Ú
isinstanceÚdictr
   r:   r;   r<   rL   s                        r>   Ú
create_runr^   B  s˜  è ø€ ÷F÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð €Dˆ�Oð 	�‰×ÑÐ-Ó.ò 	kØ×Ñ×#Ñ# GÓ,ò	kà�8‰8�GÓò	kô 8BÀ$Ç(Á(È<ÓBXÔZ^Ô7_ˆD�H‰H�\ 2Ó&×*Ñ*¨7Ô3Ðeið	 
ñ ØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø$Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð- 'ùð,
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üsR   ‚.E+°D7±CE+Ã?3D< Ä2D:Ä3D< Ä6E+Ä:D< Ä<	E(ÅE#ÅE ÅE#Å#E(Å(E+c	              ƒ   ó  K  — ddl m}	m}
m}m}m}m}m}m}m	}m
}m} | ||||dœ}|j                  j                  d«      xs |j                  j                  d«      }|r||d<   d|vr||d<   t        |¬«      }	 |j!                  |||d||
|	|||j                  d«      �t#        |j                  d«      «      nd	||||||¬
«      ƒ d	{  –—† S 7 Œ# t$        $ r#}|j'                  ||||¬«      ƒ d	{  –—†7  ‚d	}~ww xY w­w)a©  
    List all runs for an evaluation with pagination.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`

    Example usage:
    ```bash
    curl "http://localhost:4000/v1/evals/eval_123/runs?limit=10"       -H "Authorization: Bearer your-key"
    ```

    Returns: ListRunsResponse with list of runs
    r   r   )rI   rA   rB   rC   rD   r*   r)   r   r+   Ú
alist_runsNr.   r0   )r3   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r9   r7   r8   r
   r:   Ústrr;   r<   )rI   r   r   rA   rB   rC   rD   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r,   r)   r=   r1   s                           r>   Ú	list_runsrb   ¥  s@  è ø€ ÷@÷ ÷ ñ ð  ØØØØñ€Dð —?‘?×&Ñ&Ð'8Ó9Ò^¸W×=QÑ=Q×=UÑ=UÐV]Ó=^€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø#Ø/Ø!Ø-Ø%Ø"7Ø,0¯H©H°WÓ,=Ð,I”#�d—h‘h˜wÓ'Ô(ÈtØ!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð 
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üsI   ‚A7C?Á:AC Ã	CÃ
C ÃC?ÃC Ã	C<ÃC7Ã1C4Ã2C7Ã7C<Ã<C?z!/v1/evals/{eval_id}/runs/{run_id}Úrun_idc              ƒ   óÈ  K  — ddl m}m}m}m}	m}
m}m}m}m	}m
}m} | |dœ}|j                  j                  d«      xs |j                  j                  d«      }|r||d<   d|vr|�||d<   t        |¬«      }	 |j!                  |||d	|	||||
|j                  d«      ||||||¬
«      ƒ d{  –—† S 7 Œ# t"        $ r#}|j%                  |||	|¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)a‹  
    Get a specific run by ID.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`

    Example usage:
    ```bash
    curl "http://localhost:4000/v1/evals/eval_123/runs/run_456"       -H "Authorization: Bearer your-key"
    ```

    Returns: Run object with full details
    r   r   )rI   rc   r*   r)   r   Nr+   Úaget_runr.   r0   )r3   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r9   r7   r8   r
   r:   r;   r<   )rI   rc   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r,   r)   r=   r1   s                        r>   Úget_runrf     s'  è ø€ ÷:÷ ÷ ñ ð  Øñ€Dð —?‘?×&Ñ&Ð'8Ó9Ò^¸W×=QÑ=Q×=UÑ=UÐV]Ó=^€EÙØˆˆW‰à DÑ(Ð-@Ð-LØ&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø!Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð 
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üsH   ‚A6C"Á93B3 Â,B1Â-B3 Â0C"Â1B3 Â3	CÂ<CÃCÃCÃCÃC"c              ƒ   óZ  K  — ddl m}m}m}m}	m}
m}m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   ||d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬	«      }	 |j'                  |||d
|	||||
|j                  d«      ||||||¬«      ƒ d{  –—† S 7 ŒÇ7 Œ# t(        $ r#}|j+                  |||	|¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)aª  
    Cancel a running run.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`

    Example usage:
    ```bash
    curl -X POST "http://localhost:4000/v1/evals/eval_123/runs/run_456/cancel"       -H "Authorization: Bearer your-key"
    ```

    Returns: CancelRunResponse with cancellation confirmation
    r   r   NrI   rc   r)   r*   r   r+   Úacancel_runr.   r0   r2   ©rI   rc   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r4   r,   r)   r=   r1   s                         r>   Ú
cancel_runrj   Y  ó[  è ø€ ÷:÷ ÷ ñ ð  Ÿ™›×&€DÙ(,”&—,‘,˜tÔ$°"€Dð €Dˆ�OØ€Dˆ�Nð —8‘8˜GÓ$Òs¨×(<Ñ(<×(@Ñ(@ÀÓ(IÒsÈWÏ_É_×M`ÑM`ÐarÓMs€EÙØˆˆW‰à DÑ(Ø&9ˆÐ"Ñ#ô 5¸$Ô?€Ið
Ø×7Ñ7ØØ-Ø/Ø$Ø/Ø!Ø-Ø%Ø"7Ø—(‘(˜7Ó#Ø!Ø-Ø!5Ø+Ø'Øð! 8ó 
÷ 
ð 	
ð% 'øð$
ùô$ ò 
Ø×7Ñ7ØØ/Ø/Øð	 8ó 
÷ 
ð 
ð 	
ûð
üóR   ‚.D+°C8±BD+Ã 3C< Ã3C:Ã4C< Ã7D+Ã:C< Ã<	D(ÄD#ÄD ÄD#Ä#D(Ä(D+c              ƒ   óZ  K  — ddl m}m}m}m}	m}
m}m}m}m	}m
}m} |j                  «       ƒ d{  –—† }|rt        j                  |«      ni }| |d<   ||d<   |j                  d«      xs8 |j                   j                  d«      xs |j"                  j                  d«      }|r||d<   d|vr||d<   t%        |¬	«      }	 |j'                  |||d
|	||||
|j                  d«      ||||||¬«      ƒ d{  –—† S 7 ŒÇ7 Œ# t(        $ r#}|j+                  |||	|¬«      ƒ d{  –—†7  ‚d}~ww xY w­w)a™  
    Delete a run.

    Model-based routing (for multi-account support):
    - Pass model via header: `x-litellm-model: gpt-4-account-1`
    - Pass model via query: `?model=gpt-4-account-1`

    Example usage:
    ```bash
    curl -X DELETE "http://localhost:4000/v1/evals/eval_123/runs/run_456"       -H "Authorization: Bearer your-key"
    ```

    Returns: RunDeleteResponse with deletion confirmation
    r   r   NrI   rc   r)   r*   r   r+   Úadelete_runr.   r0   r2   ri   s                         r>   Ú
delete_runro   ²  rk   rl   )*Ú__doc__Útypingr   r5   Úfastapir   r   r   r   Úlitellm.proxy._typesr   Ú$litellm.proxy.auth.user_api_key_authr	   Ú'litellm.proxy.common_request_processingr
   Úlitellm.types.llms.openai_evalsr   r   r   r   r   r   r   r   r   Ú__annotations__Úpostra   r?   r7   ÚintrH   rM   rQ   ÚdeleterT   rX   r^   rb   rf   rj   ro   © ó    r>   ú<module>r}      s€  ðòõ ã ß 9Ó 9å /Ý BÝ Q÷	÷ 	ó 	ñ “€ˆÓ ð ‡�ØØ
Ð	ÙÐ+Ó,Ð-Øð	 ó ð '/Ù(/Ð0AÓ(Bñ	R
ØðR
àðR
ð ˜t™ðR
ð &ò	R
óðR
ðj ‡�ØØ
Ð	ÙÐ+Ó,Ð-Ø$ð	 ó ð ØØØØØ&.Ù(/Ð0AÓ(Bñ\
Øð\
àð\
ð �‰:ð\
ð �‰:ð	\
ð
 �$‰Jð\
ð �‰:ð\
ð �D‰jð\
ð ˜t™ð\
ð &ò\
óð\
ð~ ‡�ØØ
Ð	ÙÐ+Ó,Ð-Øð	 ó ð '/Ù(/Ð0AÓ(BñO
ØðO
àðO
ð ðO
ð ˜t™ð	O
ð
 &òO
óðO
ðd ‡�ØØ
Ð	ÙÐ+Ó,Ð-Øð	 ó ð '/Ù(/Ð0AÓ(BñQ
ØðQ
àðQ
ð ðQ
ð ˜t™ð	Q
ð
 &òQ
óðQ
ðh ‡�ØØ
Ð	ÙÐ+Ó,Ð-Ø%ð	 ó ð '/Ù(/Ð0AÓ(BñO
ØðO
àðO
ð ðO
ð ˜t™ð	O
ð
 &òO
óðO
ðd ‡�Ø Ø
Ð	ÙÐ+Ó,Ð-Ø%ð	 ó ð '/Ù(/Ð0AÓ(BñO
ØðO
àðO
ð ðO
ð ˜t™ð	O
ð
 &òO
óðO
ðn ‡�ØØ
#Ð	$ÙÐ+Ó,Ð-Øð	 ó ð '/Ù(/Ð0AÓ(BñZ
ØðZ
àðZ
ð ðZ
ð ˜t™ð	Z
ð
 &òZ
óðZ
ðz ‡�ØØ
#Ð	$ÙÐ+Ó,Ð-Ø#ð	 ó ð ØØØØ&.Ù(/Ð0AÓ(BñT
ØðT
àðT
ð ðT
ð �‰:ð	T
ð
 �‰:ðT
ð �$‰JðT
ð �‰:ðT
ð ˜t™ðT
ð &òT
óðT
ðn ‡�Ø'Ø
#Ð	$ÙÐ+Ó,Ð-Øð	 ó ð '/Ù(/Ð0AÓ(BñN
ØðN
àðN
ð ðN
ð ð	N
ð
 ˜t™ðN
ð &òN
óðN
ðb ‡�Ø'Ø
#Ð	$ÙÐ+Ó,Ð-Ø$ð	 ó ð '/Ù(/Ð0AÓ(BñP
ØðP
àðP
ð ðP
ð ð	P
ð
 ˜t™ðP
ð &òP
óðP
ðf ‡�Ø'Ø
#Ð	$ÙÐ+Ó,Ð-Ø$ð	 ó ð '/Ù(/Ð0AÓ(BñP
ØðP
àðP
ð ðP
ð ð	P
ð
 ˜t™ðP
ð &òP
óñP
r|   