Rocky_Mountain_Vending/lib/site-chat/config.ts

48 lines
1.5 KiB
TypeScript

import { businessConfig } from "@/lib/seo-config"
export const SITE_CHAT_MODEL =
process.env.XAI_CHAT_MODEL || "grok-4-1-fast-non-reasoning"
export const SITE_CHAT_SOURCE = "site-chat"
export const SITE_CHAT_SESSION_COOKIE = "rmv_site_chat_session"
export const SITE_CHAT_AVATAR_SRC = "/images/jessica-avatar.jpg"
export const SITE_CHAT_SUPPRESSED_ROUTE_PREFIXES = [
"/admin",
"/auth",
"/sign-in",
"/stripe-setup",
"/style-guide",
"/manuals/dashboard",
"/test-page",
] as const
export const SITE_CHAT_MAX_HISTORY_MESSAGES = 12
export const SITE_CHAT_MAX_INPUT_CHARS = 600
export const SITE_CHAT_MAX_MESSAGE_CHARS = 1000
export const SITE_CHAT_MAX_OUTPUT_TOKENS = 180
export const SITE_CHAT_MAX_OUTPUT_CHARS = 700
export const SITE_CHAT_TEMPERATURE = 0.2
export const SITE_CHAT_MAX_REQUESTS_PER_IP_WINDOW = 12
export const SITE_CHAT_MAX_REQUESTS_PER_SESSION_WINDOW = 18
export const SITE_CHAT_REQUEST_WINDOW_MS = 10 * 60 * 1000
export const SITE_CHAT_MAX_OUTPUT_CHARS_PER_SESSION_WINDOW = 5000
export const SITE_CHAT_OUTPUT_WINDOW_MS = 60 * 60 * 1000
export function isSiteChatSuppressedRoute(pathname: string) {
return SITE_CHAT_SUPPRESSED_ROUTE_PREFIXES.some(
(prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`)
)
}
export function getSiteChatBootstrap() {
return {
assistantName: "Jessica",
avatarSrc: SITE_CHAT_AVATAR_SRC,
callNumber: businessConfig.publicCallNumber,
callUrl: businessConfig.publicCallUrl,
smsNumber: businessConfig.publicSmsNumber,
smsUrl: businessConfig.publicSmsUrl,
}
}