fix: use static rotating greeting list instead of AI-generated login greeting

This commit is contained in:
2026-07-09 22:28:57 -04:00
parent b49877af52
commit 3c650997f4

View File

@@ -1,61 +1,27 @@
import express, { Request, Response } from "express"; 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 router = express.Router();
const FALLBACK_GREETINGS = [ const GREETINGS = [
"How can I help you today?", "How can I help you today?",
"What can I do for you today?", "What can I do for you today?",
"Ready when you are.", "Ready when you are.",
"What's on your mind today?", "What's on your mind today?",
"Let's get started.", "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<any> => { router.get("/", async (_req: Request, res: Response): Promise<any> => {
try { const greeting = GREETINGS[Math.floor(Math.random() * GREETINGS.length)];
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 }); 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 });
}
}); });
export default router; export default router;