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 { APP_NAME } from '$lib/constants'; | ||||||
| import { writable } from 'svelte/store'; | import { type Writable, writable } from 'svelte/store'; | ||||||
| 
 | 
 | ||||||
| // Backend
 | // Backend
 | ||||||
| export const WEBUI_NAME = writable(APP_NAME); | export const WEBUI_NAME = writable(APP_NAME); | ||||||
| export const config = writable(undefined); | export const config: Writable<Config | undefined> = writable(undefined); | ||||||
| export const user = writable(undefined); | export const user: Writable<SessionUser | undefined> = writable(undefined); | ||||||
| 
 | 
 | ||||||
| // Frontend
 | // Frontend
 | ||||||
| export const MODEL_DOWNLOAD_POOL = writable({}); | export const MODEL_DOWNLOAD_POOL = writable({}); | ||||||
|  | @ -14,10 +14,10 @@ export const chatId = writable(''); | ||||||
| 
 | 
 | ||||||
| export const chats = writable([]); | export const chats = writable([]); | ||||||
| export const tags = writable([]); | export const tags = writable([]); | ||||||
| export const models = writable([]); | export const models: Writable<Model[]> = writable([]); | ||||||
| 
 | 
 | ||||||
| export const modelfiles = writable([]); | export const modelfiles = writable([]); | ||||||
| export const prompts = writable([]); | export const prompts: Writable<Prompt[]> = writable([]); | ||||||
| export const documents = writable([ | export const documents = writable([ | ||||||
| 	{ | 	{ | ||||||
| 		collection_name: 'collection_name', | 		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 showSettings = writable(false); | ||||||
| export const showChangelog = 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
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek