123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import { APP_NAME } from '$lib/constants';
- import { type Writable, writable } from 'svelte/store';
- import type { GlobalModelConfig, ModelConfig } from '$lib/apis';
- // Backend
- export const WEBUI_NAME = writable(APP_NAME);
- export const config: Writable<Config | undefined> = writable(undefined);
- export const user: Writable<SessionUser | undefined> = writable(undefined);
- // Frontend
- export const MODEL_DOWNLOAD_POOL = writable({});
- export const mobile = writable(false);
- export const theme = writable('system');
- export const chatId = writable('');
- export const chats = writable([]);
- export const tags = writable([]);
- export const models: Writable<Model[]> = writable([]);
- export const modelfiles = writable([]);
- export const prompts: Writable<Prompt[]> = writable([]);
- export const documents = writable([
- {
- collection_name: 'collection_name',
- filename: 'filename',
- name: 'name',
- title: 'title'
- },
- {
- collection_name: 'collection_name1',
- filename: 'filename1',
- name: 'name1',
- title: 'title1'
- }
- ]);
- export const settings: Writable<Settings> = writable({});
- export const showSidebar = writable(false);
- export const showSettings = writable(false);
- export const showArchivedChats = writable(false);
- export const showChangelog = writable(false);
- export type Model = OpenAIModel | OllamaModel;
- type BaseModel = {
- id: string;
- name: string;
- info?: ModelConfig;
- };
- export interface OpenAIModel extends BaseModel {
- external: boolean;
- source?: string;
- }
- export interface OllamaModel extends BaseModel {
- 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;
- splitLargeDeltas?: boolean;
- chatDirection: 'LTR' | 'RTL';
- 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;
- model?: 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[];
- auth_trusted_header?: boolean;
- auth: boolean;
- oauth: {
- providers: {
- [key: string]: string;
- };
- };
- };
- type PromptSuggestion = {
- content: string;
- title: [string, string];
- };
- type SessionUser = {
- id: string;
- email: string;
- name: string;
- role: string;
- profile_image_url: string;
- };
|