mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-07 08:26:10 +00:00
* feat(terraform): close key/team schema gaps, fix team read envelope, add import support * feat(terraform): add fallback resource/data source and key/team block resources * feat(terraform): add access group and unified access group resources and data sources * feat(terraform): add guardrail and prompt resources and data sources * feat(terraform): add agent and search tool resources and data sources * feat(terraform): add user and budget resources and data sources * feat(terraform): add tag and project resources and data sources * docs(terraform): changelog and readme for parity additions * feat(terraform): add data sources for keys, teams, models, organizations, and mcp servers * fix(terraform): key update 400 on empty budget_duration, key info envelope, config-supplied key * fix(terraform): hash raw keys to SHA-256 tokens in key lookup URLs and block resource IDs
169 lines
5.6 KiB
Markdown
169 lines
5.6 KiB
Markdown
# litellm_team Resource
|
|
|
|
Manages a team configuration in LiteLLM. Teams allow you to group users and manage their access to models and usage limits.
|
|
|
|
## Example Usage
|
|
|
|
### Basic Team Configuration
|
|
|
|
```hcl
|
|
resource "litellm_team" "engineering" {
|
|
team_alias = "engineering-team"
|
|
models = ["gpt-4-proxy", "claude-2"]
|
|
max_budget = 1000.0
|
|
}
|
|
```
|
|
|
|
### Team with Comprehensive Configuration
|
|
|
|
```hcl
|
|
resource "litellm_team" "advanced_team" {
|
|
team_alias = "ai-research-team"
|
|
organization_id = "org_123456"
|
|
models = ["gpt-4-proxy", "claude-2", "gpt-3.5-turbo"]
|
|
|
|
# Budget and rate limiting
|
|
max_budget = 1000.0
|
|
soft_budget = 800.0
|
|
budget_duration = "1mo"
|
|
tpm_limit = 500000
|
|
rpm_limit = 5000
|
|
blocked = false
|
|
|
|
# Who gets paged when spend crosses soft_budget
|
|
soft_budget_alerting_emails = ["finops@example.com"]
|
|
|
|
# Tags for spend tracking and tag-based routing
|
|
tags = ["team:ai-research", "environment:production"]
|
|
|
|
# Team member permissions
|
|
team_member_permissions = [
|
|
"create_key",
|
|
"delete_key",
|
|
"view_spend",
|
|
"edit_team"
|
|
]
|
|
|
|
# Metadata for organization
|
|
metadata = {
|
|
department = "Engineering"
|
|
project = "AI Research"
|
|
cost_center = "R&D-001"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Team with Model Dependencies
|
|
|
|
```hcl
|
|
# First create models
|
|
resource "litellm_model" "gpt4" {
|
|
model_name = "gpt-4-proxy"
|
|
custom_llm_provider = "openai"
|
|
base_model = "gpt-4"
|
|
model_api_key = var.openai_api_key
|
|
}
|
|
|
|
resource "litellm_model" "claude" {
|
|
model_name = "claude-proxy"
|
|
custom_llm_provider = "anthropic"
|
|
base_model = "claude-3-sonnet-20240229"
|
|
model_api_key = var.anthropic_api_key
|
|
}
|
|
|
|
# Then create team with access to these models
|
|
resource "litellm_team" "model_dependent_team" {
|
|
team_alias = "model-users"
|
|
models = [
|
|
litellm_model.gpt4.model_name,
|
|
litellm_model.claude.model_name
|
|
]
|
|
|
|
max_budget = 500.0
|
|
budget_duration = "1mo"
|
|
|
|
team_member_permissions = [
|
|
"view_spend"
|
|
]
|
|
}
|
|
```
|
|
|
|
## Argument Reference
|
|
|
|
The following arguments are supported:
|
|
|
|
* `team_alias` - (Required) A human-readable identifier for the team.
|
|
|
|
* `organization_id` - (Optional) The ID of the organization this team belongs to.
|
|
|
|
* `models` - (Optional) List of model names that this team can access.
|
|
|
|
* `metadata` - (Optional) A map of string metadata key-value pairs associated with the team. `tags` and `soft_budget_alerting_emails` are stored by the proxy under metadata but are managed through their own attributes below, not this map.
|
|
|
|
* `tags` - (Optional) List of tags applied to the team, used for [spend tracking](https://docs.litellm.ai/docs/proxy/enterprise#tracking-spend-for-custom-tags) and [tag-based routing](https://docs.litellm.ai/docs/proxy/tag_routing).
|
|
|
|
* `blocked` - (Optional) Whether the team is blocked from making requests. Default is `false`.
|
|
|
|
* `tpm_limit` - (Optional) Team-wide tokens per minute limit.
|
|
|
|
* `rpm_limit` - (Optional) Team-wide requests per minute limit.
|
|
|
|
* `max_budget` - (Optional) Maximum budget allocated to the team.
|
|
|
|
* `soft_budget` - (Optional) Spend threshold at which the proxy sends a soft budget alert without blocking requests.
|
|
|
|
* `soft_budget_alerting_emails` - (Optional) List of email addresses notified when the team's spend crosses `soft_budget`.
|
|
|
|
* `budget_duration` - (Optional) Duration for the budget cycle. Valid values are:
|
|
* `daily`
|
|
* `weekly`
|
|
* `monthly`
|
|
* `yearly`
|
|
|
|
* `team_member_permissions` - (Optional) List of permissions granted to team members. This controls what actions team members can perform within the team context.
|
|
|
|
* `model_aliases` - (Optional) Map of alias names to model names, letting the team call models under stable alias names.
|
|
|
|
* `guardrails` - (Optional) List of guardrails applied to every request made by this team.
|
|
|
|
* `prompts` - (Optional) List of prompt IDs the team is allowed to use.
|
|
|
|
* `team_member_budget` - (Optional) Budget (in USD) applied to each individual team member.
|
|
|
|
* `team_member_budget_duration` - (Optional) Reset cycle for the per-member budget (e.g. `30d`, `1mo`).
|
|
|
|
* `team_member_rpm_limit` - (Optional) Requests per minute limit applied to each individual team member.
|
|
|
|
* `team_member_tpm_limit` - (Optional) Tokens per minute limit applied to each individual team member.
|
|
|
|
* `team_member_key_duration` - (Optional) Lifetime for keys created by team members (e.g. `1d`, `1w`).
|
|
|
|
* `model_rpm_limit` - (Optional) Map of model name to requests per minute limit for that model.
|
|
|
|
* `model_tpm_limit` - (Optional) Map of model name to tokens per minute limit for that model.
|
|
|
|
* `allowed_passthrough_routes` - (Optional) List of pass-through routes this team is allowed to call.
|
|
|
|
* `rpm_limit_type` - (Optional) How the RPM limit is enforced: `guaranteed_throughput` or `best_effort_throughput`. Changing this forces a new team to be created.
|
|
|
|
* `tpm_limit_type` - (Optional) How the TPM limit is enforced: `guaranteed_throughput` or `best_effort_throughput`. Changing this forces a new team to be created.
|
|
|
|
## Attribute Reference
|
|
|
|
In addition to the arguments above, the following attributes are exported:
|
|
|
|
* `id` - The unique identifier for the team.
|
|
|
|
## Import
|
|
|
|
Teams can be imported using the team ID:
|
|
|
|
```shell
|
|
terraform import litellm_team.engineering <team-id>
|
|
```
|
|
|
|
Note: The team ID is generated when the team is created and is different from the `team_alias`.
|
|
|
|
## Note on Team Members
|
|
|
|
Team members are managed through the separate `litellm_team_member` resource. This allows for more granular control over team membership and permissions. See the `litellm_team_member` resource documentation for details on managing team members.
|