跳到主要内容

预算路由

LiteLLM 支持设置以下预算

  • 提供商预算 - OpenAI 每日 100 美元,Azure 每日 100 美元。
  • 模型预算 - gpt-4 (https://api-base-1) 每日 100 美元,gpt-4o (https://api-base-2) 每日 100 美元
  • 标签预算 - tag=product:chat-bot 每日 10 美元,tag=product:chat-bot-2 每日 100 美元

提供商预算

用于为 LLM 提供商设置预算 - 例如 OpenAI 每日 100 美元,Azure 每日 100 美元。

快速入门

在您的 proxy_config.yaml 文件中设置提供商预算

代理配置设置

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

router_settings:
provider_budget_config:
openai:
budget_limit: 0.000000000001 # float of $ value budget for time period
time_period: 1d # can be 1d, 2d, 30d, 1mo, 2mo
azure:
budget_limit: 100
time_period: 1d
anthropic:
budget_limit: 100
time_period: 10d
vertex_ai:
budget_limit: 100
time_period: 12d
gemini:
budget_limit: 100
time_period: 12d

# OPTIONAL: Set Redis Host, Port, and Password if using multiple instance of LiteLLM
redis_host: os.environ/REDIS_HOST
redis_port: os.environ/REDIS_PORT
redis_password: os.environ/REDIS_PASSWORD

general_settings:
master_key: sk-1234

发送测试请求

我们预计第一个请求会成功,而第二个请求会失败,因为我们超出了 openai 的预算

Langchain, OpenAI SDK 使用示例

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
]
}'

提供商预算路由的工作原理

  1. 预算跟踪:

    • 使用 Redis 跟踪每个提供商的消费
    • 跟踪指定时间段(例如,“1d”、“30d”)内的消费
    • 在时间段到期后自动重置消费
  2. 路由逻辑:

    • 将请求路由到在其预算限制内的提供商
    • 跳过超出预算的提供商
    • 如果所有提供商都超出预算,则会引发错误
  3. 支持的时间周期:

    • 秒: "Xs" (例如,“30s”)
    • 分钟: "Xm" (例如,“10m”)
    • 小时: "Xh" (例如,“24h”)
    • 天: "Xd" (例如,“1d”、“30d”)
    • 月: "Xmo" (例如,“1mo”、“2mo”)
  4. 要求:

    • 需要 Redis 来跟踪跨实例的消费
    • 提供商名称必须是 litellm 提供商名称。参见 支持的提供商

监控提供商剩余预算

获取预算、消费详情

使用此端点检查提供商当前的预算、消费和预算重置时间

请求示例

curl -X GET http://localhost:4000/provider/budgets \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234"

响应示例

{
"providers": {
"openai": {
"budget_limit": 1e-12,
"time_period": "1d",
"spend": 0.0,
"budget_reset_at": null
},
"azure": {
"budget_limit": 100.0,
"time_period": "1d",
"spend": 0.0,
"budget_reset_at": null
},
"anthropic": {
"budget_limit": 100.0,
"time_period": "10d",
"spend": 0.0,
"budget_reset_at": null
},
"vertex_ai": {
"budget_limit": 100.0,
"time_period": "12d",
"spend": 0.0,
"budget_reset_at": null
}
}
}

Prometheus 指标

LiteLLM 将在 Prometheus 上发出以下指标,以跟踪每个提供商的剩余预算

此指标表示提供商的剩余预算(美元)

litellm_provider_remaining_budget_metric{api_provider="openai"} 10

模型预算

用于为模型设置预算 - 例如 openai/gpt-4o 每日 10 美元,openai/gpt-4o-mini 每日 100 美元

快速入门

在您的 proxy_config.yaml 文件中设置模型预算

model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
max_budget: 0.000000000001 # (USD)
budget_duration: 1d # (Duration. can be 1s, 1m, 1h, 1d, 1mo)
- model_name: gpt-4o-mini
litellm_params:
model: openai/gpt-4o-mini
api_key: os.environ/OPENAI_API_KEY
max_budget: 100 # (USD)
budget_duration: 30d # (Duration. can be 1s, 1m, 1h, 1d, 1mo)


发送测试请求

我们预计第一个请求会成功,而第二个请求会失败,因为我们超出了 openai/gpt-4o 的预算

Langchain, OpenAI SDK 使用示例

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
]
}'

✨ 标签预算

信息

✨ 这是仅限企业版的功能 在此开始使用企业版

用于为标签设置预算 - 例如 tag=product:chat-bot 每日 10 美元,tag=product:chat-bot-2 每日 100 美元

快速入门

通过在您的 proxy_config.yaml 文件中设置 tag_budget_config 来设置标签预算

model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY

litellm_settings:
tag_budget_config:
product:chat-bot: # (Tag)
max_budget: 0.000000000001 # (USD)
budget_duration: 1d # (Duration)
product:chat-bot-2: # (Tag)
max_budget: 100 # (USD)
budget_duration: 1d # (Duration)

发送测试请求

我们预计第一个请求会成功,而第二个请求会失败,因为我们超出了 openai/gpt-4o 的预算

Langchain, OpenAI SDK 使用示例

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
],
"metadata": {"tags": ["product:chat-bot"]}
}'

多实例设置

如果您使用多实例设置,您需要在 proxy_config.yaml 文件中设置 Redis 的主机、端口和密码。Redis 用于同步 LiteLLM 实例之间的消费。

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

router_settings:
provider_budget_config:
openai:
budget_limit: 0.000000000001 # float of $ value budget for time period
time_period: 1d # can be 1d, 2d, 30d, 1mo, 2mo

# 👇 Add this: Set Redis Host, Port, and Password if using multiple instance of LiteLLM
redis_host: os.environ/REDIS_HOST
redis_port: os.environ/REDIS_PORT
redis_password: os.environ/REDIS_PASSWORD

general_settings:
master_key: sk-1234

provider_budget_config 的规范

provider_budget_config 是一个字典,其中

  • : 提供商名称 (字符串) - 必须是有效的 LiteLLM 提供商名称
  • : 预算配置对象,包含以下参数
    • budget_limit: 表示预算(美元)的浮点值
    • time_period: 以下格式之一的持续时间字符串
      • 秒: "Xs" (例如,“30s”)
      • 分钟: "Xm" (例如,“10m”)
      • 小时: "Xh" (例如,“24h”)
      • 天: "Xd" (例如,“1d”、“30d”)
      • 月: "Xmo" (例如,“1mo”、“2mo”)

示例结构

provider_budget_config:
openai:
budget_limit: 100.0 # $100 USD
time_period: "1d" # 1 day period
azure:
budget_limit: 500.0 # $500 USD
time_period: "30d" # 30 day period
anthropic:
budget_limit: 200.0 # $200 USD
time_period: "1mo" # 1 month period
gemini:
budget_limit: 50.0 # $50 USD
time_period: "24h" # 24 hour period