Spaces:
Sleeping
Sleeping
Commit
·
c326265
1
Parent(s):
0f880bf
Apply active persona prompt when creating new conversations
Browse files
src/routes/conversation/+server.ts
CHANGED
|
@@ -75,8 +75,13 @@ export const POST: RequestHandler = async ({ locals, request }) => {
|
|
| 75 |
error(400, "Can't start a conversation with an unlisted model");
|
| 76 |
}
|
| 77 |
|
| 78 |
-
//
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
if (messages && messages.length > 0 && messages[0].from === "system") {
|
| 82 |
messages[0].content = values.preprompt;
|
|
@@ -90,6 +95,7 @@ export const POST: RequestHandler = async ({ locals, request }) => {
|
|
| 90 |
messages,
|
| 91 |
model: values.model,
|
| 92 |
preprompt: values.preprompt,
|
|
|
|
| 93 |
createdAt: new Date(),
|
| 94 |
updatedAt: new Date(),
|
| 95 |
userAgent: request.headers.get("User-Agent") ?? undefined,
|
|
|
|
| 75 |
error(400, "Can't start a conversation with an unlisted model");
|
| 76 |
}
|
| 77 |
|
| 78 |
+
// Get user settings to retrieve active persona
|
| 79 |
+
const userSettings = await collections.settings.findOne(authCondition(locals));
|
| 80 |
+
const activePersonaId = userSettings?.activePersona ?? "default-neutral";
|
| 81 |
+
const activePersona = userSettings?.personas?.find((p) => p.id === activePersonaId);
|
| 82 |
+
|
| 83 |
+
// Use persona prompt as preprompt, fall back to model preprompt or provided preprompt
|
| 84 |
+
values.preprompt = activePersona?.prompt ?? values.preprompt ?? model?.preprompt ?? "";
|
| 85 |
|
| 86 |
if (messages && messages.length > 0 && messages[0].from === "system") {
|
| 87 |
messages[0].content = values.preprompt;
|
|
|
|
| 95 |
messages,
|
| 96 |
model: values.model,
|
| 97 |
preprompt: values.preprompt,
|
| 98 |
+
personaId: activePersonaId, // Store persona reference
|
| 99 |
createdAt: new Date(),
|
| 100 |
updatedAt: new Date(),
|
| 101 |
userAgent: request.headers.get("User-Agent") ?? undefined,
|