Files
open-webui/src/lib/stores/index.ts

146 lines
2.8 KiB
TypeScript
Raw Normal View History

2024-02-23 17:12:19 -08:00
import { APP_NAME } from '$lib/constants';
2024-04-21 11:41:18 +01:00
import { type Writable, writable } from 'svelte/store';
2023-11-18 16:47:12 -08:00
2023-11-19 17:47:07 -08:00
// Backend
2024-02-23 17:12:19 -08:00
export const WEBUI_NAME = writable(APP_NAME);
export const config: Writable<Config | undefined> = writable(undefined);
export const user: Writable<SessionUser | undefined> = writable(undefined);
2023-11-19 17:47:07 -08:00
// Frontend
export const MODEL_DOWNLOAD_POOL = writable({});
2024-01-02 20:41:37 -08:00
export const theme = writable('system');
2023-11-19 17:47:07 -08:00
export const chatId = writable('');
2024-01-02 20:41:37 -08:00
2023-11-19 17:47:07 -08:00
export const chats = writable([]);
2024-01-18 02:55:25 -08:00
export const tags = writable([]);
2024-04-21 11:41:18 +01:00
export const models: Writable<Model[]> = writable([]);
2024-01-07 23:43:32 -08:00
export const modelfiles = writable([]);
export const prompts: Writable<Prompt[]> = writable([]);
2024-01-07 23:43:32 -08:00
export const documents = writable([
{
collection_name: 'collection_name',
filename: 'filename',
name: 'name',
title: 'title'
},
{
collection_name: 'collection_name1',
filename: 'filename1',
name: 'name1',
title: 'title1'
}
]);
2024-01-01 16:05:05 -08:00
export const settings: Writable<Settings> = writable({});
2024-04-30 16:34:29 -07:00
export const showSidebar = writable(false);
2023-11-19 17:47:07 -08:00
export const showSettings = writable(false);
2024-02-23 00:47:54 -08:00
export const showChangelog = writable(false);
2024-04-21 11:41:18 +01:00
type Model = OpenAIModel | OllamaModel;
type OpenAIModel = {
id: string;
name: string;
external: boolean;
source?: string;
};
2024-04-21 11:41:18 +01:00
type OllamaModel = {
id: string;
name: string;
// Ollama specific fields
details: OllamaModelDetails;
size: number;
description: string;
model: string;
modified_at: string;
digest: string;
};
2024-04-21 11:41:18 +01:00
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;
splitLargeDeltas?: boolean;
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;
OpenAIModel?: 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;
2024-04-21 11:41:18 +01:00
};