index.ts 1.44 KB
Newer Older
1
import { APP_NAME } from '$lib/constants';
2
import { type Writable, writable } from 'svelte/store';
3

4
// Backend
5
export const WEBUI_NAME = writable(APP_NAME);
6
7
export const config = writable(undefined);
export const user = writable(undefined);
8
9

// Frontend
10
export const MODEL_DOWNLOAD_POOL = writable({});
Timothy J. Baek's avatar
Timothy J. Baek committed
11

12
export const theme = writable('system');
13
export const chatId = writable('');
Timothy J. Baek's avatar
Timothy J. Baek committed
14

15
export const chats = writable([]);
Timothy J. Baek's avatar
Timothy J. Baek committed
16
export const tags = writable([]);
17
export const models: Writable<Model[]> = writable([]);
Timothy J. Baek's avatar
Timothy J. Baek committed
18

19
export const modelfiles = writable([]);
Timothy J. Baek's avatar
Timothy J. Baek committed
20
export const prompts = writable([]);
Timothy J. Baek's avatar
Timothy J. Baek committed
21
22
23
24
25
26
27
28
29
30
31
32
33
34
export const documents = writable([
	{
		collection_name: 'collection_name',
		filename: 'filename',
		name: 'name',
		title: 'title'
	},
	{
		collection_name: 'collection_name1',
		filename: 'filename1',
		name: 'name1',
		title: 'title1'
	}
]);
Timothy J. Baek's avatar
Timothy J. Baek committed
35

36
37
export const settings = writable({});
export const showSettings = writable(false);
38
export const showChangelog = writable(false);
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

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;
};