package ai import "time" type ModelCatalogEntry struct { ModelID string `json:"model_id"` Label string `json:"label"` Enabled bool `json:"enabled"` } type AssistantPolicy struct { Enabled bool `json:"enabled"` OpenWebUIInternalURL string `json:"openwebui_internal_url"` PublicPath string `json:"public_path"` EmbedDefaultTemporary bool `json:"embed_default_temporary"` DefaultModel string `json:"default_model"` EnabledTools []string `json:"enabled_tools"` ChatSyncEnabled bool `json:"chat_sync_enabled"` ChatNCPath string `json:"chat_nc_path"` Models []ModelCatalogEntry `json:"models,omitempty"` } type QuotaLimits struct { DailyLimitMicroEUR *int64 `json:"llm_daily_cost_limit_micro_eur,omitempty"` MonthlyLimitMicroEUR *int64 `json:"llm_monthly_cost_limit_micro_eur,omitempty"` WarnThresholdPct int `json:"llm_cost_warn_threshold_pct,omitempty"` // Deprecated legacy fields RequestsPerDay int `json:"llm_requests_per_day"` TokensPerMonth int64 `json:"llm_tokens_per_month"` } type ChatMessage struct { Role string `json:"role"` Content string `json:"content,omitempty"` ToolCalls []any `json:"tool_calls,omitempty"` Attachments []any `json:"attachments,omitempty"` } type ChatMeta struct { Model string `json:"model,omitempty"` TokensUsed int64 `json:"tokens_used,omitempty"` Context string `json:"context,omitempty"` } type ChatRecord struct { ID string `json:"id"` Title string `json:"title"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Source string `json:"source"` OpenWebUIChatID string `json:"openwebui_chat_id,omitempty"` Messages []ChatMessage `json:"messages"` Meta ChatMeta `json:"meta"` } type ChatListItem struct { ID string `json:"id"` Title string `json:"title"` UpdatedAt time.Time `json:"updated_at"` Source string `json:"source"` } type SessionContext struct { App string `json:"app"` Temporary bool `json:"temporary"` MessageID string `json:"message_id,omitempty"` AccountID string `json:"account_id,omitempty"` DrivePath string `json:"drive_path,omitempty"` FileID string `json:"file_id,omitempty"` ContactID string `json:"contact_id,omitempty"` Subject string `json:"subject,omitempty"` Snippet string `json:"snippet,omitempty"` } type SessionResponse struct { SessionID string `json:"session_id"` EmbedURL string `json:"embed_url"` TokenSecret string `json:"token_secret,omitempty"` Temporary bool `json:"temporary"` MCPURL string `json:"mcp_url,omitempty"` EnabledTools []string `json:"enabled_tools,omitempty"` }