From 4a52a71956a8d46fcb7294ac71734504bb09bcc2 Mon Sep 17 00:00:00 2001 From: S. Solomon Darnell Date: Fri, 28 Mar 2025 21:52:21 -0500 Subject: two version of R2R are here --- .../proxy/guardrails/guardrail_endpoints.py | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .venv/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_endpoints.py (limited to '.venv/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_endpoints.py') diff --git a/.venv/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_endpoints.py b/.venv/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_endpoints.py new file mode 100644 index 00000000..7407d6fb --- /dev/null +++ b/.venv/lib/python3.12/site-packages/litellm/proxy/guardrails/guardrail_endpoints.py @@ -0,0 +1,85 @@ +""" +CRUD ENDPOINTS FOR GUARDRAILS +""" + +from typing import Dict, List, Optional, cast + +from fastapi import APIRouter, Depends + +from litellm.proxy.auth.user_api_key_auth import user_api_key_auth +from litellm.types.guardrails import GuardrailInfoResponse, ListGuardrailsResponse + +#### GUARDRAILS ENDPOINTS #### + +router = APIRouter() + + +def _get_guardrails_list_response( + guardrails_config: List[Dict], +) -> ListGuardrailsResponse: + """ + Helper function to get the guardrails list response + """ + guardrail_configs: List[GuardrailInfoResponse] = [] + for guardrail in guardrails_config: + guardrail_configs.append( + GuardrailInfoResponse( + guardrail_name=guardrail.get("guardrail_name"), + litellm_params=guardrail.get("litellm_params"), + guardrail_info=guardrail.get("guardrail_info"), + ) + ) + return ListGuardrailsResponse(guardrails=guardrail_configs) + + +@router.get( + "/guardrails/list", + tags=["Guardrails"], + dependencies=[Depends(user_api_key_auth)], + response_model=ListGuardrailsResponse, +) +async def list_guardrails(): + """ + List the guardrails that are available on the proxy server + + 👉 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start) + + Example Request: + ```bash + curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer " + ``` + + Example Response: + ```json + { + "guardrails": [ + { + "guardrail_name": "bedrock-pre-guard", + "guardrail_info": { + "params": [ + { + "name": "toxicity_score", + "type": "float", + "description": "Score between 0-1 indicating content toxicity level" + }, + { + "name": "pii_detection", + "type": "boolean" + } + ] + } + } + ] + } + ``` + """ + from litellm.proxy.proxy_server import proxy_config + + config = proxy_config.config + + _guardrails_config = cast(Optional[list[dict]], config.get("guardrails")) + + if _guardrails_config is None: + return _get_guardrails_list_response([]) + + return _get_guardrails_list_response(_guardrails_config) -- cgit v1.2.3