Spaces:
Paused
Paused
| """ | |
| 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) | |
| 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 <your_api_key>" | |
| ``` | |
| 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) | |