Spaces:
Sleeping
Sleeping
datasource client { | |
provider = "postgresql" | |
url = env("DATABASE_URL") | |
} | |
generator client { | |
provider = "prisma-client-py" | |
} | |
// Budget / Rate Limits for an org | |
model LiteLLM_BudgetTable { | |
budget_id String | |
max_budget Float? | |
soft_budget Float? | |
max_parallel_requests Int? | |
tpm_limit BigInt? | |
rpm_limit BigInt? | |
model_max_budget Json? | |
temp_verification_token String? // bad param for testing | |
budget_duration String? | |
budget_reset_at DateTime? | |
created_at DateTime | |
created_by String | |
updated_at DateTime | |
updated_by String | |
organization LiteLLM_OrganizationTable[] // multiple orgs can have the same budget | |
keys LiteLLM_VerificationToken[] // multiple keys can have the same budget | |
end_users LiteLLM_EndUserTable[] // multiple end-users can have the same budget | |
team_membership LiteLLM_TeamMembership[] // budgets of Users within a Team | |
} | |
// Models on proxy | |
model LiteLLM_ProxyModelTable { | |
model_id String | |
model_name String | |
litellm_params Json | |
model_info Json? | |
created_at DateTime | |
created_by String | |
updated_at DateTime | |
updated_by String | |
} | |
model LiteLLM_OrganizationTable { | |
organization_id String | |
organization_alias String | |
budget_id String | |
metadata Json | |
models String[] | |
spend Float | |
model_spend Json | |
created_at DateTime | |
created_by String | |
updated_at DateTime | |
updated_by String | |
litellm_budget_table LiteLLM_BudgetTable? | |
teams LiteLLM_TeamTable[] | |
users LiteLLM_UserTable[] | |
} | |
// Model info for teams, just has model aliases for now. | |
model LiteLLM_ModelTable { | |
id Int | |
model_aliases Json? | |
created_at DateTime | |
created_by String | |
updated_at DateTime | |
updated_by String | |
team LiteLLM_TeamTable? | |
} | |
// Assign prod keys to groups, not individuals | |
model LiteLLM_TeamTable { | |
team_id String | |
team_alias String? | |
organization_id String? | |
admins String[] | |
members String[] | |
members_with_roles Json | |
metadata Json | |
max_budget Float? | |
spend Float | |
models String[] | |
max_parallel_requests Int? | |
tpm_limit BigInt? | |
rpm_limit BigInt? | |
budget_duration String? | |
budget_reset_at DateTime? | |
blocked Boolean | |
created_at DateTime | |
updated_at DateTime | |
model_spend Json | |
model_max_budget Json | |
model_id Int? // id for LiteLLM_ModelTable -> stores team-level model aliases | |
litellm_organization_table LiteLLM_OrganizationTable? | |
litellm_model_table LiteLLM_ModelTable? | |
} | |
// Track spend, rate limit, budget Users | |
model LiteLLM_UserTable { | |
user_id String | |
user_alias String? | |
team_id String? | |
organization_id String? | |
password String? | |
teams String[] | |
user_role String? | |
max_budget Float? | |
spend Float | |
user_email String? | |
models String[] | |
metadata Json | |
max_parallel_requests Int? | |
tpm_limit BigInt? | |
rpm_limit BigInt? | |
budget_duration String? | |
budget_reset_at DateTime? | |
allowed_cache_controls String[] | |
model_spend Json | |
model_max_budget Json | |
litellm_organization_table LiteLLM_OrganizationTable? | |
invitations_created LiteLLM_InvitationLink[] | |
invitations_updated LiteLLM_InvitationLink[] | |
invitations_user LiteLLM_InvitationLink[] | |
} | |
// Generate Tokens for Proxy | |
model LiteLLM_VerificationToken { | |
token String | |
key_name String? | |
key_alias String? | |
soft_budget_cooldown Boolean // key-level state on if budget alerts need to be cooled down | |
spend Float | |
expires DateTime? | |
models String[] | |
aliases Json | |
config Json | |
user_id String? | |
team_id String? | |
permissions Json | |
max_parallel_requests Int? | |
metadata Json | |
blocked Boolean? | |
tpm_limit BigInt? | |
rpm_limit BigInt? | |
max_budget Float? | |
budget_duration String? | |
budget_reset_at DateTime? | |
allowed_cache_controls String[] | |
model_spend Json | |
model_max_budget Json | |
budget_id String? | |
litellm_budget_table LiteLLM_BudgetTable? | |
} | |
model LiteLLM_EndUserTable { | |
user_id String | |
alias String? // admin-facing alias | |
spend Float | |
allowed_model_region String? // require all user requests to use models in this specific region | |
default_model String? // use along with 'allowed_model_region'. if no available model in region, default to this model. | |
budget_id String? | |
litellm_budget_table LiteLLM_BudgetTable? | |
blocked Boolean | |
} | |
// store proxy config.yaml | |
model LiteLLM_Config { | |
param_name String | |
param_value Json? | |
} | |
// View spend, model, api_key per request | |
model LiteLLM_SpendLogs { | |
request_id String | |
call_type String | |
api_key String "") // Hashed API Token. Not the actual Virtual Key. Equivalent to 'token' column in LiteLLM_VerificationToken | (|
spend Float | |
total_tokens Int | |
prompt_tokens Int | |
completion_tokens Int | |
startTime DateTime // Assuming start_time is a DateTime field | |
endTime DateTime // Assuming end_time is a DateTime field | |
completionStartTime DateTime? // Assuming completionStartTime is a DateTime field | |
model String | |
model_id String? // the model id stored in proxy model db | |
model_group String? // public model_name / model_group | |
api_base String? | |
user String? | |
metadata Json? | |
cache_hit String? | |
cache_key String? | |
request_tags Json? | |
team_id String? | |
end_user String? | |
requester_ip_address String? | |
@ | |
@ | |
} | |
// View spend, model, api_key per request | |
model LiteLLM_ErrorLogs { | |
request_id String | |
startTime DateTime // Assuming start_time is a DateTime field | |
endTime DateTime // Assuming end_time is a DateTime field | |
api_base String | |
model_group String // public model_name / model_group | |
litellm_model_name String // model passed to litellm | |
model_id String // ID of model in ProxyModelTable | |
request_kwargs Json | |
exception_type String | |
exception_string String | |
status_code String | |
} | |
// Beta - allow team members to request access to a model | |
model LiteLLM_UserNotifications { | |
request_id String | |
user_id String | |
models String[] | |
justification String | |
status String // approved, disapproved, pending | |
} | |
model LiteLLM_TeamMembership { | |
// Use this table to track the Internal User's Spend within a Team + Set Budgets, rpm limits for the user within the team | |
user_id String | |
team_id String | |
spend Float | |
budget_id String? | |
litellm_budget_table LiteLLM_BudgetTable? | |
@ | |
} | |
model LiteLLM_InvitationLink { | |
// use this table to track invite links sent by admin for people to join the proxy | |
id String | |
user_id String | |
is_accepted Boolean | |
accepted_at DateTime? // when link is claimed (user successfully onboards via link) | |
expires_at DateTime // till when is link valid | |
created_at DateTime // when did admin create the link | |
created_by String // who created the link | |
updated_at DateTime // when was invite status updated | |
updated_by String // who updated the status (admin/user who accepted invite) | |
// Relations | |
liteLLM_user_table_user LiteLLM_UserTable | |
liteLLM_user_table_created LiteLLM_UserTable | |
liteLLM_user_table_updated LiteLLM_UserTable | |
} | |
model LiteLLM_AuditLog { | |
id String | |
updated_at DateTime | |
changed_by String // user or system that performed the action | |
changed_by_api_key String // api key hash that performed the action | |
action String // create, update, delete | |
table_name String // on of LitellmTableNames.TEAM_TABLE_NAME, LitellmTableNames.USER_TABLE_NAME, LitellmTableNames.PROXY_MODEL_TABLE_NAME, | |
object_id String // id of the object being audited. This can be the key id, team id, user id, model id | |
before_value Json? // value of the row | |
updated_values Json? // value of the row after change | |
} | |