diff --git a/apps/Backend/src/routes/greeting.ts b/apps/Backend/src/routes/greeting.ts index c0742079..c1f516b2 100644 --- a/apps/Backend/src/routes/greeting.ts +++ b/apps/Backend/src/routes/greeting.ts @@ -1,61 +1,27 @@ import express, { Request, Response } from "express"; -import { prisma as db } from "@repo/db/client"; -import { resolveAiProvider, getLlm } from "../ai/llm-factory"; const router = express.Router(); -const FALLBACK_GREETINGS = [ +const GREETINGS = [ "How can I help you today?", "What can I do for you today?", "Ready when you are.", "What's on your mind today?", "Let's get started.", + "What would you like to work on?", + "How can I assist you?", + "What are we tackling today?", + "Where should we begin?", + "Let me know what you need.", + "What brings you here today?", + "How can I make your day easier?", + "What's next on the list?", + "I'm here whenever you're ready.", ]; -let cachedGreeting: { text: string; date: string } | null = null; - -function todayKey() { - return new Date().toISOString().slice(0, 10); -} - router.get("/", async (_req: Request, res: Response): Promise => { - try { - const today = todayKey(); - - if (cachedGreeting && cachedGreeting.date === today) { - return res.status(200).json({ greeting: cachedGreeting.text }); - } - - const aiSettings = await db.aiSettings.findFirst(); - const activeAi = aiSettings ? resolveAiProvider(aiSettings) : null; - - if (!activeAi) { - const fallback = FALLBACK_GREETINGS[Math.floor(Math.random() * FALLBACK_GREETINGS.length)]; - return res.status(200).json({ greeting: fallback }); - } - - const llm = getLlm(activeAi.provider, activeAi.key, activeAi.model); - const result = await llm.invoke([ - { - role: "system", - content: "Generate a single short AI greeting, similar to how ChatGPT or Claude greets users. Keep it to one short sentence. Examples of the style: 'How can I help you today?', 'What's on your mind?', 'Ready when you are.', 'What can I do for you today?'. Be warm but concise. Do not use emojis. Do not mention names. Vary each greeting.", - }, - { - role: "user", - content: "Generate a short greeting.", - }, - ]); - - const greeting = typeof result.content === "string" - ? result.content.trim() - : FALLBACK_GREETINGS[0]!; - - cachedGreeting = { text: greeting, date: today }; - return res.status(200).json({ greeting }); - } catch { - const fallback = FALLBACK_GREETINGS[Math.floor(Math.random() * FALLBACK_GREETINGS.length)]; - return res.status(200).json({ greeting: fallback }); - } + const greeting = GREETINGS[Math.floor(Math.random() * GREETINGS.length)]; + return res.status(200).json({ greeting }); }); export default router;