Spaces:
Sleeping
Sleeping
File size: 2,267 Bytes
faca43f 5528541 faca43f d54ea4b 0015338 d54ea4b 5528541 faca43f d54ea4b faca43f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 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 70 71 |
import { redirect } from "@sveltejs/kit";
import type { LayoutServerLoad } from "./$types";
import { collections } from "$lib/server/database";
import type { Conversation } from "$lib/types/Conversation";
import { UrlDependency } from "$lib/types/UrlDependency";
import { defaultModel, models, oldModels, validateModel } from "$lib/server/models";
import { authCondition, requiresUser } from "$lib/server/auth";
import { DEFAULT_SETTINGS } from "$lib/types/Settings";
import { SERPAPI_KEY, SERPER_API_KEY, MESSAGES_BEFORE_LOGIN } from "$env/static/private";
export const load: LayoutServerLoad = async ({ locals, depends, url }) => {
const { conversations } = collections;
const urlModel = url.searchParams.get("model");
depends(UrlDependency.ConversationList);
if (urlModel) {
const isValidModel = validateModel(models).safeParse(urlModel).success;
if (isValidModel) {
await collections.settings.updateOne(
authCondition(locals),
{ $set: { activeModel: urlModel } },
{ upsert: true }
);
}
throw redirect(302, url.pathname);
}
return {
conversations: [],
settings: {
shareConversationsWithModelAuthors: DEFAULT_SETTINGS.shareConversationsWithModelAuthors,
ethicsModalAcceptedAt: null,
activeModel: DEFAULT_SETTINGS.activeModel,
searchEnabled: false,
customPrompts: {},
},
models: models.map((model) => ({
id: model.id,
name: model.name,
websiteUrl: model.websiteUrl,
modelUrl: model.modelUrl,
is_local: model.is_local,
userMessageToken: model.userMessageToken,
assistantMessageToken: model.assistantMessageToken,
is_phi: model.is_phi,
server_addr: model.server_addr,
is_code: model.is_code,
type: model.type,
datasetName: model.datasetName,
datasetUrl: model.datasetUrl,
displayName: model.displayName,
description: model.description,
promptExamples: model.promptExamples,
parameters: model.parameters,
preprompt: model.preprompt,
chatPromptTemplate: model.chatPromptTemplate
})),
oldModels,
user: locals.user && {
username: locals.user.username,
avatarUrl: locals.user.avatarUrl,
email: locals.user.email,
},
requiresLogin: requiresUser,
messagesBeforeLogin: MESSAGES_BEFORE_LOGIN ? parseInt(MESSAGES_BEFORE_LOGIN) : 0,
};
};
|