feat: add types to some frontend stores

This commit is contained in:
Jun Siang Cheah 2024-04-22 18:15:07 +01:00
parent 81b7cdfed7
commit ed13da8aba

View File

@ -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 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({});
@ -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,7 +57,7 @@ type OllamaModel = {
model: string; model: string;
modified_at: string; modified_at: string;
digest: string; digest: string;
} };
type OllamaModelDetails = { type OllamaModelDetails = {
parent_model: string; parent_model: string;
@ -67,3 +67,75 @@ type OllamaModelDetails = {
parameter_size: string; parameter_size: string;
quantization_level: 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;
};