mirror of
https://github.com/tiennm99/litellm.git
synced 2026-08-05 16:24:59 +00:00
Update sidebar and documentation for Guardrail Providers
This commit is contained in:
@@ -113,19 +113,13 @@ items={[
|
||||
|
||||
---
|
||||
|
||||
## Guardrails
|
||||
## Guardrail Providers
|
||||
|
||||
Add safety and content filtering to LLM calls.
|
||||
|
||||
<NavigationCards
|
||||
columns={3}
|
||||
items={[
|
||||
{
|
||||
icon: "⚡",
|
||||
title: "Quick Start",
|
||||
description: "Get started with guardrails.",
|
||||
to: "../proxy/guardrails/quick_start",
|
||||
},
|
||||
{
|
||||
icon: "🛡️",
|
||||
title: "Lakera AI",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import Image from '@theme/IdealImage';
|
||||
|
||||
# Getting Started Tutorial
|
||||
|
||||
@@ -37,7 +38,41 @@ $ pip install 'litellm[proxy]'
|
||||
|
||||
<TabItem value="docker-compose" label="Docker Compose (Proxy + DB)">
|
||||
|
||||
Use this docker compose to spin up the proxy with a postgres database running locally.
|
||||
### Step 1 — Pull the LiteLLM database image
|
||||
|
||||
LiteLLM provides a pre-built image with Postgres bundled in. Pull it before starting.
|
||||
|
||||
```bash
|
||||
docker pull ghcr.io/berriai/litellm-database:main-latest
|
||||
```
|
||||
|
||||
See all available tags on the [GitHub Container Registry](https://github.com/BerriAI/litellm/pkgs/container/litellm-database).
|
||||
|
||||
---
|
||||
|
||||
### Step 2 — Set up your config.yaml (do this before starting the server)
|
||||
|
||||
Create a `litellm_config.yaml` file. You **must** add your model and database settings here before starting the proxy.
|
||||
|
||||
```yaml
|
||||
model_list:
|
||||
- model_name: gpt-4o
|
||||
litellm_params:
|
||||
model: azure/my_azure_deployment
|
||||
api_base: os.environ/AZURE_API_BASE
|
||||
api_key: os.environ/AZURE_API_KEY
|
||||
api_version: "2025-01-01-preview"
|
||||
|
||||
general_settings:
|
||||
master_key: sk-1234 # 🔑 your proxy admin key (must start with sk-)
|
||||
database_url: "postgresql://<user>:<password>@<host>:<port>/<dbname>" # 👈 required for virtual keys
|
||||
```
|
||||
|
||||
:::tip
|
||||
`database_url` is required for virtual keys, spend tracking, and the UI. Use [Supabase](https://supabase.com/) or [Neon](https://neon.tech/) for a free managed Postgres instance.
|
||||
:::
|
||||
|
||||
Get the docker compose file and create your `.env`:
|
||||
|
||||
```bash
|
||||
# Get the docker compose file
|
||||
@@ -46,16 +81,55 @@ curl -O https://raw.githubusercontent.com/BerriAI/litellm/main/docker-compose.ym
|
||||
# Add the master key - you can change this after setup
|
||||
echo 'LITELLM_MASTER_KEY="sk-1234"' > .env
|
||||
|
||||
# Add the litellm salt key - you cannot change this after adding a model
|
||||
# It is used to encrypt / decrypt your LLM API Key credentials
|
||||
# We recommend - https://1password.com/password-generator/
|
||||
# password generator to get a random hash for litellm salt key
|
||||
# Add the litellm salt key — cannot be changed after adding a model
|
||||
# Used to encrypt/decrypt your LLM API key credentials
|
||||
# Generate a strong random value: https://1password.com/password-generator/
|
||||
echo 'LITELLM_SALT_KEY="sk-1234"' >> .env
|
||||
```
|
||||
|
||||
# Start
|
||||
---
|
||||
|
||||
### Step 3 — Start the proxy server and test it
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
```
|
||||
|
||||
Once running, test it with a curl request:
|
||||
|
||||
```bash
|
||||
curl -X POST 'http://0.0.0.0:4000/chat/completions' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H 'Authorization: Bearer sk-1234' \
|
||||
-d '{
|
||||
"model": "gpt-4o",
|
||||
"messages": [{"role": "user", "content": "Hello!"}]
|
||||
}'
|
||||
```
|
||||
|
||||
**Expected response:**
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "chatcmpl-abc123",
|
||||
"object": "chat.completion",
|
||||
"choices": [{"message": {"role": "assistant", "content": "Hello! How can I help you?"}, "finish_reason": "stop"}],
|
||||
"usage": {"prompt_tokens": 10, "completion_tokens": 9, "total_tokens": 19}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Optional — Navigate to the LiteLLM UI and generate a virtual key
|
||||
|
||||
Open [http://localhost:4000/ui](http://localhost:4000/ui) in your browser and log in with your master key (`sk-1234`).
|
||||
|
||||
Navigate to **Virtual Keys** and click **+ Create New Key**:
|
||||
|
||||
<Image img={require('../../img/litellm_ui_create_key.png')} alt="LiteLLM UI — Create Virtual Key" />
|
||||
|
||||
Virtual keys let you track spend, set rate limits, and control model access per user or team.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
@@ -647,4 +721,3 @@ LiteLLM Proxy uses the [LiteLLM Python SDK](https://docs.litellm.ai/docs/routing
|
||||
[](https://wa.link/huol9n) [](https://discord.gg/wuPM9dRgDw)
|
||||
|
||||
|
||||
|
||||
|
||||
+104
-107
@@ -44,70 +44,39 @@ const sidebars = {
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Guardrails",
|
||||
label: "Guardrail Providers",
|
||||
items: [
|
||||
"proxy/guardrails/quick_start",
|
||||
"proxy/guardrails/team_based_guardrails",
|
||||
"proxy/guardrails/guardrail_load_balancing",
|
||||
"proxy/guardrails/test_playground",
|
||||
"proxy/guardrails/litellm_content_filter",
|
||||
"proxy/guardrails/realtime_guardrails",
|
||||
{
|
||||
type: "category",
|
||||
label: "Providers",
|
||||
items: [
|
||||
...[
|
||||
"proxy/guardrails/qualifire",
|
||||
"proxy/guardrails/aim_security",
|
||||
"proxy/guardrails/onyx_security",
|
||||
"proxy/guardrails/aporia_api",
|
||||
"proxy/guardrails/azure_content_guardrail",
|
||||
"proxy/guardrails/bedrock",
|
||||
"proxy/guardrails/crowdstrike_aidr",
|
||||
"proxy/guardrails/enkryptai",
|
||||
"proxy/guardrails/ibm_guardrails",
|
||||
"proxy/guardrails/grayswan",
|
||||
"proxy/guardrails/hiddenlayer",
|
||||
"proxy/guardrails/lasso_security",
|
||||
"proxy/guardrails/guardrails_ai",
|
||||
"proxy/guardrails/lakera_ai",
|
||||
"proxy/guardrails/model_armor",
|
||||
"proxy/guardrails/noma_security",
|
||||
"proxy/guardrails/dynamoai",
|
||||
"proxy/guardrails/openai_moderation",
|
||||
"proxy/guardrails/pangea",
|
||||
"proxy/guardrails/pillar_security",
|
||||
"proxy/guardrails/pii_masking_v2",
|
||||
"proxy/guardrails/panw_prisma_airs",
|
||||
"proxy/guardrails/secret_detection",
|
||||
"proxy/guardrails/custom_guardrail",
|
||||
"proxy/guardrails/custom_code_guardrail",
|
||||
"proxy/guardrails/prompt_injection",
|
||||
"proxy/guardrails/tool_permission",
|
||||
"proxy/guardrails/zscaler_ai_guard",
|
||||
"proxy/guardrails/javelin"
|
||||
].sort(),
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Contributing to Guardrails",
|
||||
items: [
|
||||
"adding_provider/generic_guardrail_api",
|
||||
"adding_provider/simple_guardrail_tutorial",
|
||||
"adding_provider/adding_guardrail_support",
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Policies",
|
||||
items: [
|
||||
"proxy/guardrails/guardrail_policies",
|
||||
"proxy/guardrails/policy_flow_builder",
|
||||
"proxy/guardrails/policy_templates",
|
||||
"proxy/guardrails/policy_tags",
|
||||
...[
|
||||
"proxy/guardrails/qualifire",
|
||||
"proxy/guardrails/aim_security",
|
||||
"proxy/guardrails/onyx_security",
|
||||
"proxy/guardrails/aporia_api",
|
||||
"proxy/guardrails/azure_content_guardrail",
|
||||
"proxy/guardrails/bedrock",
|
||||
"proxy/guardrails/crowdstrike_aidr",
|
||||
"proxy/guardrails/enkryptai",
|
||||
"proxy/guardrails/ibm_guardrails",
|
||||
"proxy/guardrails/grayswan",
|
||||
"proxy/guardrails/hiddenlayer",
|
||||
"proxy/guardrails/lasso_security",
|
||||
"proxy/guardrails/guardrails_ai",
|
||||
"proxy/guardrails/lakera_ai",
|
||||
"proxy/guardrails/model_armor",
|
||||
"proxy/guardrails/noma_security",
|
||||
"proxy/guardrails/dynamoai",
|
||||
"proxy/guardrails/openai_moderation",
|
||||
"proxy/guardrails/pangea",
|
||||
"proxy/guardrails/pillar_security",
|
||||
"proxy/guardrails/pii_masking_v2",
|
||||
"proxy/guardrails/panw_prisma_airs",
|
||||
"proxy/guardrails/secret_detection",
|
||||
"proxy/guardrails/custom_guardrail",
|
||||
"proxy/guardrails/custom_code_guardrail",
|
||||
"proxy/guardrails/prompt_injection",
|
||||
"proxy/guardrails/tool_permission",
|
||||
"proxy/guardrails/zscaler_ai_guard",
|
||||
"proxy/guardrails/javelin"
|
||||
].sort(),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -293,11 +262,6 @@ const sidebars = {
|
||||
},
|
||||
"completion/token_usage",
|
||||
"exception_mapping",
|
||||
{
|
||||
type: "category",
|
||||
label: "LangChain, LlamaIndex, Instructor",
|
||||
items: ["langchain/langchain", "tutorials/instructor"],
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -310,16 +274,41 @@ const sidebars = {
|
||||
slug: "/simple_proxy",
|
||||
},
|
||||
items: [
|
||||
"proxy/docker_quick_start",
|
||||
{ type: "doc", id: "proxy/docker_quick_start", label: "Getting Started Tutorial" },
|
||||
{
|
||||
type: "link",
|
||||
label: "A2A Agent Gateway",
|
||||
href: "https://docs.litellm.ai/docs/a2a",
|
||||
},
|
||||
{
|
||||
type: "link",
|
||||
label: "MCP Gateway",
|
||||
href: "https://docs.litellm.ai/docs/mcp",
|
||||
type: "category",
|
||||
label: "Agent & MCP Gateway",
|
||||
items: [
|
||||
{
|
||||
type: "category",
|
||||
label: "A2A Agent Gateway",
|
||||
items: [
|
||||
"a2a",
|
||||
"a2a_invoking_agents",
|
||||
"a2a_agent_headers",
|
||||
"a2a_cost_tracking",
|
||||
"a2a_agent_permissions",
|
||||
"a2a_iteration_budgets",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "MCP Gateway",
|
||||
items: [
|
||||
"mcp",
|
||||
"mcp_usage",
|
||||
"mcp_openapi",
|
||||
"mcp_oauth",
|
||||
"mcp_aws_sigv4",
|
||||
"mcp_public_internet",
|
||||
"mcp_semantic_filter",
|
||||
"mcp_control",
|
||||
"mcp_cost",
|
||||
"mcp_guardrail",
|
||||
"mcp_troubleshoot",
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
@@ -461,14 +450,40 @@ const sidebars = {
|
||||
},
|
||||
"proxy/caching",
|
||||
{
|
||||
type: "link",
|
||||
type: "category",
|
||||
label: "Guardrails",
|
||||
href: "https://docs.litellm.ai/docs/proxy/guardrails/quick_start",
|
||||
items: [
|
||||
"proxy/guardrails/quick_start",
|
||||
"proxy/guardrails/team_based_guardrails",
|
||||
"proxy/guardrails/guardrail_load_balancing",
|
||||
"proxy/guardrails/test_playground",
|
||||
"proxy/guardrails/litellm_content_filter",
|
||||
"proxy/guardrails/realtime_guardrails",
|
||||
{
|
||||
type: "link",
|
||||
label: "Providers →",
|
||||
href: "/docs/integrations#guardrail-providers",
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
label: "Contributing to Guardrails",
|
||||
items: [
|
||||
"adding_provider/generic_guardrail_api",
|
||||
"adding_provider/simple_guardrail_tutorial",
|
||||
"adding_provider/adding_guardrail_support",
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "link",
|
||||
type: "category",
|
||||
label: "Policies",
|
||||
href: "https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",
|
||||
items: [
|
||||
"proxy/guardrails/guardrail_policies",
|
||||
"proxy/guardrails/policy_flow_builder",
|
||||
"proxy/guardrails/policy_templates",
|
||||
"proxy/guardrails/policy_tags",
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@@ -564,16 +579,9 @@ const sidebars = {
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: "category",
|
||||
type: "link",
|
||||
label: "/a2a - A2A Agent Gateway",
|
||||
items: [
|
||||
"a2a",
|
||||
"a2a_invoking_agents",
|
||||
"a2a_agent_headers",
|
||||
"a2a_cost_tracking",
|
||||
"a2a_agent_permissions",
|
||||
"a2a_iteration_budgets"
|
||||
],
|
||||
href: "/docs/simple_proxy#agent--mcp-gateway",
|
||||
},
|
||||
"assistants",
|
||||
"audio_transcription",
|
||||
@@ -636,21 +644,9 @@ const sidebars = {
|
||||
"vector_stores/create",
|
||||
"vector_stores/search",
|
||||
{
|
||||
type: "category",
|
||||
type: "link",
|
||||
label: "/mcp - Model Context Protocol",
|
||||
items: [
|
||||
"mcp",
|
||||
"mcp_usage",
|
||||
"mcp_openapi",
|
||||
"mcp_oauth",
|
||||
"mcp_aws_sigv4",
|
||||
"mcp_public_internet",
|
||||
"mcp_semantic_filter",
|
||||
"mcp_control",
|
||||
"mcp_cost",
|
||||
"mcp_guardrail",
|
||||
"mcp_troubleshoot",
|
||||
]
|
||||
href: "/docs/simple_proxy#agent--mcp-gateway",
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@@ -990,10 +986,10 @@ const sidebars = {
|
||||
|
||||
{
|
||||
type: "category",
|
||||
label: "Routing, Loadbalancing & Fallbacks",
|
||||
label: "Routing & Load Balancing",
|
||||
link: {
|
||||
type: "generated-index",
|
||||
title: "Routing, Loadbalancing & Fallbacks",
|
||||
title: "Routing & Load Balancing",
|
||||
description: "Learn how to load balance, route, and set fallbacks for your LLM requests",
|
||||
slug: "/routing-load-balancing",
|
||||
},
|
||||
@@ -1232,7 +1228,8 @@ const learnSidebar = {
|
||||
"tutorials/copilotkit_sdk",
|
||||
"tutorials/google_adk",
|
||||
"tutorials/livekit_xai_realtime",
|
||||
"tutorials/instructor",
|
||||
{ type: "doc", id: "tutorials/instructor", label: "Instructor with LiteLLM" },
|
||||
{ type: "doc", id: "langchain/langchain", label: "LangChain with LiteLLM" },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user