import { buildPrompt } from "$lib/buildPrompt"; import { authCondition } from "$lib/server/auth"; import { collections } from "$lib/server/database"; import { generateFromDefaultEndpoint } from "$lib/server/generateFromDefaultEndpoint"; import { defaultModel } from "$lib/server/models"; import { error } from "@sveltejs/kit"; import { ObjectId } from "mongodb"; export async function POST({ params, locals }) { const convId = new ObjectId(params.id); const conversation = await collections.conversations.findOne({ _id: convId, ...authCondition(locals), }); if (!conversation) { throw error(404, "Conversation not found"); } const firstMessage = conversation.messages.find((m) => m.from === "user"); const userPrompt = `Please summarize the following message as a single sentence of less than 5 words:\n` + firstMessage?.content; const prompt = await buildPrompt([{ from: "user", content: userPrompt }], defaultModel); const generated_text = await generateFromDefaultEndpoint(prompt); if (generated_text) { await collections.conversations.updateOne( { _id: convId, ...authCondition(locals), }, { $set: { title: generated_text }, } ); } return new Response( JSON.stringify( generated_text ? { title: generated_text, } : {} ), { headers: { "Content-Type": "application/json" } } ); }