extonlawrence commited on
Commit
c326265
·
1 Parent(s): 0f880bf

Apply active persona prompt when creating new conversations

Browse files
Files changed (1) hide show
  1. src/routes/conversation/+server.ts +8 -2
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
- // use provided preprompt or model preprompt
79
- values.preprompt ??= model?.preprompt ?? "";
 
 
 
 
 
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,