内部用户自助服务
允许用户在代理 UI 上创建自己的密钥。
- 将具有权限的用户添加到代理团队
- UI
- API
前往 内部用户 -> + 新用户
在 LiteLLM 上创建一个新的内部用户,并为其分配 internal_user 角色。
curl -X POST '<PROXY_BASE_URL>/user/new' \
-H 'Authorization: Bearer <PROXY_MASTER_KEY>' \
-H 'Content-Type: application/json' \
-D '{
"user_email": "krrishdholakia@gmail.com",
"user_role": "internal_user" # 👈 THIS ALLOWS USER TO CREATE/VIEW/DELETE THEIR OWN KEYS + SEE THEIR SPEND
}'
预期响应
{
"user_id": "e9d45c7c-b20b-4ff8-ae76-3f479a7b1d7d", 👈 USE IN STEP 2
"user_email": "<YOUR_USERS_EMAIL>",
"user_role": "internal_user",
...
}
以下是 LiteLLM 内部用户可用的 UI 角色
管理员角色
proxy_admin:平台管理员proxy_admin_viewer:可以登录,查看所有密钥,查看所有消费。不能创建/删除密钥,添加新用户。
内部用户角色
internal_user:可以登录,查看/创建/删除自己的密钥,查看自己的消费。不能添加新用户。internal_user_viewer:可以登录,查看自己的密钥,查看自己的消费。不能创建/删除密钥,添加新用户。
- 与用户分享邀请链接
- UI
- API
复制与用户分享的邀请链接
curl -X POST '<PROXY_BASE_URL>/invitation/new' \
-H 'Authorization: Bearer <PROXY_MASTER_KEY>' \
-H 'Content-Type: application/json' \
-D '{
"user_id": "e9d45c7c-b20b..." # 👈 USER ID FROM STEP 1
}'
预期响应
{
"id": "a2f0918f-43b0-4770-a664-96ddd192966e",
"user_id": "e9d45c7c-b20b..",
"is_accepted": false,
"accepted_at": null,
"expires_at": "2024-06-13T00:02:16.454000Z", # 👈 VALID FOR 7d
"created_at": "2024-06-06T00:02:16.454000Z",
"created_by": "116544810872468347480",
"updated_at": "2024-06-06T00:02:16.454000Z",
"updated_by": "116544810872468347480"
}
邀请链接
http://0.0.0.0:4000/ui/onboarding?id=a2f0918f-43b0-4770-a664-96ddd192966e
# <YOUR_PROXY_BASE_URL>/ui/onboarding?id=<id>
使用 电子邮件通知 通过电子邮件向用户发送入职链接
- 用户通过电子邮件 + 密码认证登录
LiteLLM Enterprise:启用 SSO 登录
- 用户现在可以创建自己的密钥
允许用户查看使用情况、缓存分析
- 前往 内部用户 -> + 邀请用户
将他们的角色设置为 Admin Viewer - 这意味着他们只能查看使用情况、缓存分析
- 与用户分享邀请链接
- 用户通过电子邮件 + 密码认证登录
- 用户现在可以查看使用情况、缓存分析
可用角色
以下是 LiteLLM 内部用户可用的 UI 角色
管理员角色
proxy_admin:平台管理员proxy_admin_viewer:可以登录,查看所有密钥,查看所有消费。不能创建/删除密钥,添加新用户。
内部用户角色
internal_user:可以登录,查看/创建/删除自己的密钥,查看自己的消费。不能添加新用户。internal_user_viewer:可以登录,查看自己的密钥,查看自己的消费。不能创建/删除密钥,添加新用户。
团队角色
admin:可以向团队添加新成员,可以控制团队权限,可以添加仅团队使用的模型(对于入职团队的微调模型很有用)。user:可以登录,查看自己的密钥,查看自己的消费。不能创建/删除密钥(可通过团队权限控制),添加新用户。
自动将 SSO 用户添加到团队
本教程介绍如何设置 sso 自动添加 Okta、Google SSO
Okta、Google SSO
- 指定包含用户所属的团队 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"]
}
- 在 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
}'
- 测试 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 的 默认团队 下查看。
此预算不适用于在非默认团队下创建的密钥。
设置团队的最大预算
默认团队
- UI
- YAML
前往 内部用户 -> 默认用户设置,并将默认团队设置为您刚创建的团队。
我们还将默认模型设置为 no-default-models。这意味着用户只能在团队内创建密钥。
必须先创建团队,然后才能将其设置为默认团队。
litellm_settings:
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",
models: ["no-default-models"] # Optional[List[str]], optional): models to be used by the 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
user_role: "user" # Optional[str], optional): Default role in the team. Values: "user" or "admin". Defaults to "user"
团队成员预算
设置团队成员的最大预算。
您可以在创建新团队时或更新现有团队时执行此操作。
- UI
- API
curl -X POST '<PROXY_BASE_URL>/team/new' \
-H 'Authorization: Bearer <PROXY_MASTER_KEY>' \
-H 'Content-Type: application/json' \
-D '{
"team_alias": "team_1",
"budget_duration": "10d",
"team_member_budget": 10
}'
团队成员速率限制
为单个团队成员设置默认 tpm/rpm 限制。
您可以在创建新团队时或更新现有团队时执行此操作。
- UI
- API
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_member_rpm_limit": 100,
"team_member_tpm_limit": 1000
}'
设置新团队的默认参数
当您将 litellm 连接到您的 SSO 提供商时,litellm 可以自动创建团队。使用此设置这些自动创建的团队的默认 models、max_budget、budget_duration。
工作原理
- 当 litellm 从您的 SSO 提供商处获取
groups时,它将检查相应的 group_id 是否作为 litellm 中的team_id存在。 - 如果 team_id 不存在,litellm 将使用您设置的默认参数自动创建一个团队。
- 如果 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 流程的所有设置
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"]