30 lines
893 B
TypeScript
30 lines
893 B
TypeScript
import { Langfuse } from "langfuse";
|
|
|
|
let client: Langfuse | null = null;
|
|
|
|
function isTruthy(value: string | undefined) {
|
|
const v = (value ?? "").trim().toLowerCase();
|
|
return v === "1" || v === "true" || v === "yes" || v === "on";
|
|
}
|
|
|
|
export function isLangfuseEnabled() {
|
|
const enabledRaw = process.env.LANGFUSE_ENABLED;
|
|
if (enabledRaw && !isTruthy(enabledRaw)) return false;
|
|
return Boolean((process.env.LANGFUSE_PUBLIC_KEY ?? "").trim() && (process.env.LANGFUSE_SECRET_KEY ?? "").trim());
|
|
}
|
|
|
|
export function getLangfuseClient() {
|
|
if (!isLangfuseEnabled()) return null;
|
|
if (client) return client;
|
|
|
|
client = new Langfuse({
|
|
publicKey: (process.env.LANGFUSE_PUBLIC_KEY ?? "").trim(),
|
|
secretKey: (process.env.LANGFUSE_SECRET_KEY ?? "").trim(),
|
|
baseUrl: (process.env.LANGFUSE_BASE_URL ?? "http://langfuse-web:3000").trim(),
|
|
enabled: true,
|
|
});
|
|
|
|
return client;
|
|
}
|
|
|