Spaces:
Paused
Paused
| 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 | |
| } | |