forked from open-webui/open-webui
		
	Merge pull request #1686 from cheahjs/feat/add-store-types
feat: add types to some frontend stores
This commit is contained in:
		
						commit
						ef5af1e273
					
				
					 1 changed files with 109 additions and 6 deletions
				
			
		|  | @ -1,10 +1,10 @@ | |||
| import { APP_NAME } from '$lib/constants'; | ||||
| import { writable } from 'svelte/store'; | ||||
| import { type Writable, writable } from 'svelte/store'; | ||||
| 
 | ||||
| // Backend
 | ||||
| export const WEBUI_NAME = writable(APP_NAME); | ||||
| export const config = writable(undefined); | ||||
| export const user = writable(undefined); | ||||
| export const config: Writable<Config | undefined> = writable(undefined); | ||||
| export const user: Writable<SessionUser | undefined> = writable(undefined); | ||||
| 
 | ||||
| // Frontend
 | ||||
| export const MODEL_DOWNLOAD_POOL = writable({}); | ||||
|  | @ -14,10 +14,10 @@ export const chatId = writable(''); | |||
| 
 | ||||
| export const chats = writable([]); | ||||
| export const tags = writable([]); | ||||
| export const models = writable([]); | ||||
| export const models: Writable<Model[]> = writable([]); | ||||
| 
 | ||||
| export const modelfiles = writable([]); | ||||
| export const prompts = writable([]); | ||||
| export const prompts: Writable<Prompt[]> = writable([]); | ||||
| export const documents = writable([ | ||||
| 	{ | ||||
| 		collection_name: 'collection_name', | ||||
|  | @ -33,6 +33,109 @@ export const documents = writable([ | |||
| 	} | ||||
| ]); | ||||
| 
 | ||||
| export const settings = writable({}); | ||||
| export const settings: Writable<Settings> = writable({}); | ||||
| export const showSettings = writable(false); | ||||
| export const showChangelog = writable(false); | ||||
| 
 | ||||
| type Model = OpenAIModel | OllamaModel; | ||||
| 
 | ||||
| type OpenAIModel = { | ||||
| 	id: string; | ||||
| 	name: string; | ||||
| 	external: boolean; | ||||
| 	source?: string; | ||||
| }; | ||||
| 
 | ||||
| type OllamaModel = { | ||||
| 	id: string; | ||||
| 	name: string; | ||||
| 
 | ||||
| 	// Ollama specific fields
 | ||||
| 	details: OllamaModelDetails; | ||||
| 	size: number; | ||||
| 	description: string; | ||||
| 	model: string; | ||||
| 	modified_at: string; | ||||
| 	digest: string; | ||||
| }; | ||||
| 
 | ||||
| type OllamaModelDetails = { | ||||
| 	parent_model: string; | ||||
| 	format: string; | ||||
| 	family: string; | ||||
| 	families: string[] | null; | ||||
| 	parameter_size: string; | ||||
| 	quantization_level: string; | ||||
| }; | ||||
| 
 | ||||
| type Settings = { | ||||
| 	models?: string[]; | ||||
| 	conversationMode?: boolean; | ||||
| 	speechAutoSend?: boolean; | ||||
| 	responseAutoPlayback?: boolean; | ||||
| 	audio?: AudioSettings; | ||||
| 	showUsername?: boolean; | ||||
| 	saveChatHistory?: boolean; | ||||
| 	notificationEnabled?: boolean; | ||||
| 	title?: TitleSettings; | ||||
| 
 | ||||
| 	system?: string; | ||||
| 	requestFormat?: string; | ||||
| 	keepAlive?: string; | ||||
| 	seed?: number; | ||||
| 	temperature?: string; | ||||
| 	repeat_penalty?: string; | ||||
| 	top_k?: string; | ||||
| 	top_p?: string; | ||||
| 	num_ctx?: string; | ||||
| 	options?: ModelOptions; | ||||
| }; | ||||
| 
 | ||||
| type ModelOptions = { | ||||
| 	stop?: boolean; | ||||
| }; | ||||
| 
 | ||||
| type AudioSettings = { | ||||
| 	STTEngine?: string; | ||||
| 	TTSEngine?: string; | ||||
| 	speaker?: string; | ||||
| }; | ||||
| 
 | ||||
| type TitleSettings = { | ||||
| 	auto?: boolean; | ||||
| 	model?: string; | ||||
| 	modelExternal?: string; | ||||
| 	prompt?: string; | ||||
| }; | ||||
| 
 | ||||
| type Prompt = { | ||||
| 	command: string; | ||||
| 	user_id: string; | ||||
| 	title: string; | ||||
| 	content: string; | ||||
| 	timestamp: number; | ||||
| }; | ||||
| 
 | ||||
| type Config = { | ||||
| 	status?: boolean; | ||||
| 	name?: string; | ||||
| 	version?: string; | ||||
| 	default_locale?: string; | ||||
| 	images?: boolean; | ||||
| 	default_models?: string[]; | ||||
| 	default_prompt_suggestions?: PromptSuggestion[]; | ||||
| 	trusted_header_auth?: boolean; | ||||
| }; | ||||
| 
 | ||||
| type PromptSuggestion = { | ||||
| 	content: string; | ||||
| 	title: [string, string]; | ||||
| }; | ||||
| 
 | ||||
| type SessionUser = { | ||||
| 	id: string; | ||||
| 	email: string; | ||||
| 	name: string; | ||||
| 	role: string; | ||||
| 	profile_image_url: string; | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue