48 lines
1.5 KiB
TypeScript
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,
|
|
}
|
|
}
|