跳至主要内容

内部用户自助服务

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

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

前往 内部用户 -> + 新用户

  1. 与用户分享邀请链接

复制与用户分享的邀请链接

信息

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

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

LiteLLM Enterprise:启用 SSO 登录

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

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

  1. 前往 内部用户 -> + 邀请用户

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


  1. 与用户分享邀请链接

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

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

可用角色

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

管理员角色

  • proxy_admin:平台管理员
  • proxy_admin_viewer:可以登录,查看所有密钥,查看所有消费。不能创建/删除密钥,添加新用户。

内部用户角色

  • internal_user:可以登录,查看/创建/删除自己的密钥,查看自己的消费。不能添加新用户。
  • internal_user_viewer:可以登录,查看自己的密钥,查看自己的消费。不能创建/删除密钥,添加新用户。

团队角色

  • admin:可以向团队添加新成员,可以控制团队权限,可以添加仅团队使用的模型(对于入职团队的微调模型很有用)。
  • user:可以登录,查看自己的密钥,查看自己的消费。不能创建/删除密钥(可通过团队权限控制),添加新用户。

自动将 SSO 用户添加到团队

本教程介绍如何设置 sso 自动添加 Okta、Google 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 字段

前往此处

高级

设置自定义注销 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 中以可视方式管理这些设置

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

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

设置团队的最大预算

前往此处

默认团队

前往 内部用户 -> 默认用户设置,并将默认团队设置为您刚创建的团队。

我们还将默认模型设置为 no-default-models。这意味着用户只能在团队内创建密钥。

团队成员预算

设置团队成员的最大预算。

您可以在创建新团队时或更新现有团队时执行此操作。

团队成员速率限制

为单个团队成员设置默认 tpm/rpm 限制。

您可以在创建新团队时或更新现有团队时执行此操作。

设置新团队的默认参数

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

工作原理

  1. 当 litellm 从您的 SSO 提供商处获取 groups 时,它将检查相应的 group_id 是否作为 litellm 中的 team_id 存在。
  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
teams: # Optional[List[NewUserRequestTeam]], optional): teams to be used by the user
- team_id: "team_id_1" # Required[str]: team_id to be used by the user
max_budget_in_team: 100 # Optional[float], optional): $100 budget for the team. Defaults to None.
user_role: "user" # Optional[str], optional): "user" or "admin". Defaults to "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"]

进一步阅读