dify/web/models/common.ts

102 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-05-15 08:51:32 +08:00
export type CommonResponse = {
result: 'success' | 'fail'
}
export type OauthResponse = {
redirect_url: string
}
export type UserProfileResponse = {
id: string
name: string
email: string
interface_language?: string
interface_theme?: string
timezone?: string
last_login_at?: string
last_login_ip?: string
created_at?: string
}
export type UserProfileOriginResponse = {
json: () => Promise<UserProfileResponse>
bodyUsed: boolean
headers: any
}
export type LangGeniusVersionResponse = {
current_version: string
latest_version: string
version: string
release_date: string
release_notes: string
can_auto_update: boolean
current_env: string
}
export type TenantInfoResponse = {
name: string
created_at: string
providers: Array<{
provider: string
provider_name: string
token_is_set: boolean
is_valid: boolean
token_is_valid: boolean
}>
in_trail: boolean
trial_end_reason: null | 'trial_exceeded' | 'using_custom'
}
export type Member = Pick<UserProfileResponse, 'id' | 'name' | 'email' | 'last_login_at' | 'created_at'> & {
avatar: string
status: 'pending' | 'active' | 'banned' | 'closed'
role: 'owner' | 'admin' | 'normal'
}
2023-05-23 14:15:33 +08:00
export enum ProviderName {
OPENAI = 'openai',
AZURE_OPENAI = 'azure_openai'
}
2023-05-15 08:51:32 +08:00
export type ProviderAzureToken = {
2023-05-23 14:15:33 +08:00
openai_api_base?: string
openai_api_key?: string
2023-05-15 08:51:32 +08:00
}
2023-05-23 14:15:33 +08:00
export type ProviderTokenType = {
[ProviderName.OPENAI]: string
[ProviderName.AZURE_OPENAI]: ProviderAzureToken
2023-05-15 08:51:32 +08:00
}
2023-05-23 14:15:33 +08:00
export type Provider = {
[Name in ProviderName]: {
provider_name: Name
} & {
provider_type: 'custom' | 'system'
is_valid: boolean
is_enabled: boolean
last_used: string
token?: ProviderTokenType[Name]
}
}[ProviderName]
2023-05-15 08:51:32 +08:00
export type ProviderHosted = Provider & {
quota_type: string
quota_limit: number
quota_used: number
}
export type AccountIntegrate = {
provider: 'google' | 'github'
created_at: number
is_bound: boolean
link: string
}
export interface IWorkspace {
id: string
name: string
plan: string
status: string
created_at: number
current: boolean
}