浏览代码

feat: add types to some frontend stores

Jun Siang Cheah 1 年之前
父节点
当前提交
ed13da8aba
共有 1 个文件被更改,包括 84 次插入12 次删除
  1. 84 12
      src/lib/stores/index.ts

+ 84 - 12
src/lib/stores/index.ts

@@ -3,8 +3,8 @@ 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 user = writable(undefined);
+export const config: Writable<Config | undefined> = writable(undefined);
+export const user: Writable<SessionUser | undefined> = writable(undefined);
 
 
 // Frontend
 // Frontend
 export const MODEL_DOWNLOAD_POOL = writable({});
 export const MODEL_DOWNLOAD_POOL = writable({});
@@ -17,7 +17,7 @@ export const tags = writable([]);
 export const models: Writable<Model[]> = 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,7 +33,7 @@ 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);
 
 
@@ -44,7 +44,7 @@ type OpenAIModel = {
 	name: string;
 	name: string;
 	external: boolean;
 	external: boolean;
 	source?: string;
 	source?: string;
-}
+};
 
 
 type OllamaModel = {
 type OllamaModel = {
 	id: string;
 	id: string;
@@ -57,13 +57,85 @@ type OllamaModel = {
 	model: string;
 	model: string;
 	modified_at: string;
 	modified_at: string;
 	digest: string;
 	digest: string;
-}
+};
 
 
 type OllamaModelDetails = {
 type OllamaModelDetails = {
-  parent_model: string;
-  format: string;
-  family: string;
-  families: string[] | null;
-  parameter_size: string;
-  quantization_level: string;
+	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;
 };
 };