Langchain-Chatchat/frontend/src/config/server/app.ts

72 lines
2.1 KiB
TypeScript

/* eslint-disable sort-keys-fix/sort-keys-fix , typescript-sort-keys/interface */
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace NodeJS {
interface ProcessEnv {
ACCESS_CODE?: string;
IMGUR_CLIENT_ID?: string;
SITE_URL?: string;
AGENTS_INDEX_URL?: string;
PLUGINS_INDEX_URL?: string;
PLUGIN_SETTINGS?: string;
DEFAULT_AGENT_CONFIG?: string;
ENABLE_LANGFUSE?: string;
LANGFUSE_PUBLIC_KEY?: string;
LANGFUSE_SECRET_KEY?: string;
LANGFUSE_HOST?: string;
}
}
}
// we apply a free imgur app to get a client id
// refs: https://apidocs.imgur.com/
const DEFAULT_IMAGUR_CLIENT_ID = 'e415f320d6e24f9';
export const getAppConfig = () => {
if (typeof process === 'undefined') {
throw new Error('[Server Config] you are importing a server-only module outside of server');
}
const ACCESS_CODES = process.env.ACCESS_CODE?.split(',').filter(Boolean) || [];
return {
ACCESS_CODES,
DEFAULT_AGENT_CONFIG: process.env.DEFAULT_AGENT_CONFIG || '',
SHOW_ACCESS_CODE_CONFIG: !!ACCESS_CODES.length,
SITE_URL: process.env.SITE_URL,
IMGUR_CLIENT_ID: process.env.IMGUR_CLIENT_ID || DEFAULT_IMAGUR_CLIENT_ID,
AGENTS_INDEX_URL: !!process.env.AGENTS_INDEX_URL
? process.env.AGENTS_INDEX_URL
: 'https://chat-agents.lobehub.com',
PLUGINS_INDEX_URL: !!process.env.PLUGINS_INDEX_URL
? process.env.PLUGINS_INDEX_URL
: 'https://chat-plugins.lobehub.com',
PLUGIN_SETTINGS: process.env.PLUGIN_SETTINGS,
ENABLE_OAUTH_SSO: !!process.env.ENABLE_OAUTH_SSO,
AUTH0_CLIENT_ID: process.env.AUTH0_CLIENT_ID || '',
AUTH0_CLIENT_SECRET: process.env.AUTH0_CLIENT_SECRET || '',
AUTH0_ISSUER: process.env.AUTH0_ISSUER || '',
NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET || '',
ENABLE_LANGFUSE: process.env.ENABLE_LANGFUSE === '1',
LANGFUSE_SECRET_KEY: process.env.LANGFUSE_SECRET_KEY || '',
LANGFUSE_PUBLIC_KEY: process.env.LANGFUSE_PUBLIC_KEY || '',
LANGFUSE_HOST: process.env.LANGFUSE_HOST || 'https://cloud.langfuse.com',
};
};