跳到主要内容

内部用户自助服务

允许用户在代理 UI上创建自己的密钥。

  1. 将具有权限的用户添加到代理上的团队

转到内部用户 -> +新用户

  1. 与用户分享邀请链接

将邀请链接复制给用户

信息

使用电子邮件通知向用户发送入职链接

  1. 用户通过电子邮件 + 密码进行认证登录
信息

LiteLLM 企业版:启用SSO 登录

  1. 用户现在可以创建自己的密钥了

允许用户查看使用情况、缓存分析

  1. 转到内部用户 -> +邀请用户

将他们的角色设置为Admin Viewer - 这意味着他们只能查看使用情况、缓存分析


  1. 与用户分享邀请链接

  1. 用户通过电子邮件 + 密码进行认证登录

  1. 用户现在可以查看使用情况、缓存分析了

可用角色

以下是 LiteLLM 内部用户可用的 UI 角色

管理员角色

  • proxy_admin: 平台管理员
  • proxy_admin_viewer: 可以登录,查看所有密钥,查看所有支出。无法创建/删除密钥,添加新用户。

内部用户角色

  • internal_user: 可以登录,查看/创建/删除自己的密钥,查看自己的支出。无法添加新用户。
  • internal_user_viewer: 可以登录,查看自己的密钥,查看自己的支出。无法创建/删除密钥,添加新用户。

自动将 SSO 用户添加到团队

这将指导您设置 Okta、Google SSO 的 SSO 自动添加

Okta、Google SSO

  1. 指定包含用户所属团队 ID 的 JWT 字段。
general_settings:
master_key: sk-1234
litellm_jwtauth:
team_ids_jwt_field: "groups" # 👈 CAN BE ANY FIELD

这是假设您的 SSO 令牌看起来像这样。如果您需要检查 LiteLLM 从 SSO 提供商接收到的 JWT 字段,请按照此处的说明进行操作

{
...,
"groups": ["team_id_1", "team_id_2"]
}
  1. 在 LiteLLM 上创建团队
curl -X POST '<PROXY_BASE_URL>/team/new' \
-H 'Authorization: Bearer <PROXY_MASTER_KEY>' \
-H 'Content-Type: application/json' \
-D '{
"team_alias": "team_1",
"team_id": "team_id_1" # 👈 MUST BE THE SAME AS THE SSO GROUP ID
}'
  1. 测试 SSO 流程

这是工作原理的演练

Microsoft Entra ID SSO 组分配

请遵循此教程,了解如何使用 Microsoft Entra ID 自动将 SSO 用户添加到团队

调试 SSO JWT 字段

如果您需要检查 LiteLLM 从 SSO 提供商接收到的 JWT 字段,请按照这些说明进行操作。本指南将指导您设置调试回调,以便在 SSO 过程中查看 JWT 数据。


  1. 在您的 SSO 提供商中添加/sso/debug/callback作为重定向 URL

    在您的 SSO 提供商设置中,添加以下 URL 作为新的重定向(回调)URL

    重定向 URL
    http://<proxy_base_url>/sso/debug/callback
  1. 在您的浏览器上导航到调试登录页面

    在您的浏览器上导航到以下 URL

    要导航到的 URL
    https://<proxy_base_url>/sso/debug/login

    这将启动标准的 SSO 流程。您将被重定向到您的 SSO 提供商登录屏幕,成功认证后,您将被重定向回 LiteLLM 的调试回调路由。

  1. 查看 JWT 字段

重定向后,您应该会看到一个名为“SSO 调试信息”的页面。该页面显示 LiteLLM 从您的 SSO 提供商接收到的 JWT 字段(如上图所示)

高级

设置自定义退出登录 URL

如果您希望用户在点击退出登录时被重定向到特定 URL,请在您的 .env 中设置PROXY_LOGOUT_URL

export PROXY_LOGOUT_URL="https://www.google.com"

设置内部用户的最大预算

在内部用户注册时自动为其应用预算。默认情况下,每隔 10 分钟检查一次表格,以便用户重置。要修改此设置,请参见此处

litellm_settings:
max_internal_user_budget: 10
internal_user_budget_duration: "1mo" # reset every month

这为内部用户注册时设置了 10 美元的最大预算。

此预算仅适用于该用户创建的个人密钥 - 在 UI 的默认团队下可见。

此预算不适用于非默认团队下创建的密钥。

设置团队的最大预算

转到此处

为新团队设置默认参数

当您将 litellm 连接到您的 SSO 提供商时,litellm 可以自动创建团队。使用此设置来为这些自动创建的团队设置默认的modelsmax_budgetbudget_duration

工作原理

  1. 当 litellm 从您的 SSO 提供商获取groups时,它会检查相应的 group_id 是否作为team_id存在于 litellm 中。
  2. 如果 team_id 不存在,litellm 将使用您设置的默认参数自动创建一个团队。
  3. 如果 team_id 已存在,litellm 不会对该团队应用任何设置。

用法

新团队的默认参数
litellm_settings:
default_team_params: # Default Params to apply when litellm auto creates a team from SSO IDP provider
max_budget: 100 # Optional[float], optional): $100 budget for the team
budget_duration: 30d # Optional[str], optional): 30 days budget_duration for the team
models: ["gpt-3.5-turbo"] # Optional[List[str]], optional): models to be used by the team

限制用户创建个人密钥

如果您只想让用户在特定团队下创建密钥,这将很有用。

这也将阻止用户在测试密钥聊天面板上使用他们的会话令牌。

👉 请参见此处

自助服务 / SSO 流程的所有设置

自助服务 / SSO 流程的所有设置
litellm_settings:
max_internal_user_budget: 10 # max budget for internal users
internal_user_budget_duration: "1mo" # reset every month

default_internal_user_params: # Default Params used when a new user signs in Via SSO
user_role: "internal_user" # one of "internal_user", "internal_user_viewer", "proxy_admin", "proxy_admin_viewer". New SSO users not in litellm will be created as this user
max_budget: 100 # Optional[float], optional): $100 budget for a new SSO sign in user
budget_duration: 30d # Optional[str], optional): 30 days budget_duration for a new SSO sign in user
models: ["gpt-3.5-turbo"] # Optional[List[str]], optional): models to be used by a new SSO sign in user

default_team_params: # Default Params to apply when litellm auto creates a team from SSO IDP provider
max_budget: 100 # Optional[float], optional): $100 budget for the team
budget_duration: 30d # Optional[str], optional): 30 days budget_duration for the team
models: ["gpt-3.5-turbo"] # Optional[List[str]], optional): models to be used by the team


upperbound_key_generate_params: # Upperbound for /key/generate requests when self-serve flow is on
max_budget: 100 # Optional[float], optional): upperbound of $100, for all /key/generate requests
budget_duration: "10d" # Optional[str], optional): upperbound of 10 days for budget_duration values
duration: "30d" # Optional[str], optional): upperbound of 30 days for all /key/generate requests
max_parallel_requests: 1000 # (Optional[int], optional): Max number of requests that can be made in parallel. Defaults to None.
tpm_limit: 1000 #(Optional[int], optional): Tpm limit. Defaults to None.
rpm_limit: 1000 #(Optional[int], optional): Rpm limit. Defaults to None.

key_generation_settings: # Restricts who can generate keys. [Further docs](./virtual_keys.md#restricting-key-generation)
team_key_generation:
allowed_team_member_roles: ["admin"]
personal_key_generation: # maps to 'Default Team' on UI
allowed_user_roles: ["proxy_admin"]