@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
336 lines (231 loc) • 11 kB
text/typescript
/* eslint-disable sort-keys-fix/sort-keys-fix , typescript-sort-keys/interface */
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
export const getLLMConfig = () => {
return createEnv({
server: {
API_KEY_SELECT_MODE: z.string().optional(),
ENABLED_OPENAI: z.boolean(),
OPENAI_API_KEY: z.string().optional(),
ENABLED_AZURE_OPENAI: z.boolean(),
AZURE_API_KEY: z.string().optional(),
AZURE_API_VERSION: z.string().optional(),
AZURE_ENDPOINT: z.string().optional(),
ENABLED_AZUREAI: z.boolean(),
AZUREAI_ENDPOINT: z.string().optional(),
AZUREAI_ENDPOINT_KEY: z.string().optional(),
ENABLED_ZHIPU: z.boolean(),
ZHIPU_API_KEY: z.string().optional(),
ENABLED_DEEPSEEK: z.boolean(),
DEEPSEEK_API_KEY: z.string().optional(),
ENABLED_GOOGLE: z.boolean(),
GOOGLE_API_KEY: z.string().optional(),
ENABLED_MOONSHOT: z.boolean(),
MOONSHOT_API_KEY: z.string().optional(),
ENABLED_PERPLEXITY: z.boolean(),
PERPLEXITY_API_KEY: z.string().optional(),
ENABLED_ANTHROPIC: z.boolean(),
ANTHROPIC_API_KEY: z.string().optional(),
ENABLED_MINIMAX: z.boolean(),
MINIMAX_API_KEY: z.string().optional(),
ENABLED_MISTRAL: z.boolean(),
MISTRAL_API_KEY: z.string().optional(),
ENABLED_GROQ: z.boolean(),
GROQ_API_KEY: z.string().optional(),
ENABLED_GITHUB: z.boolean(),
GITHUB_TOKEN: z.string().optional(),
ENABLED_OPENROUTER: z.boolean(),
OPENROUTER_API_KEY: z.string().optional(),
ENABLED_ZEROONE: z.boolean(),
ZEROONE_API_KEY: z.string().optional(),
ENABLED_TOGETHERAI: z.boolean(),
TOGETHERAI_API_KEY: z.string().optional(),
ENABLED_FIREWORKSAI: z.boolean(),
FIREWORKSAI_API_KEY: z.string().optional(),
ENABLED_AWS_BEDROCK: z.boolean(),
AWS_REGION: z.string().optional(),
AWS_ACCESS_KEY_ID: z.string().optional(),
AWS_SECRET_ACCESS_KEY: z.string().optional(),
AWS_SESSION_TOKEN: z.string().optional(),
ENABLED_WENXIN: z.boolean(),
WENXIN_API_KEY: z.string().optional(),
ENABLED_OLLAMA: z.boolean(),
ENABLED_VLLM: z.boolean(),
VLLM_API_KEY: z.string().optional(),
ENABLED_XINFERENCE: z.boolean(),
XINFERENCE_API_KEY: z.string().optional(),
ENABLED_QINIU: z.boolean(),
QINIU_API_KEY: z.string().optional(),
ENABLED_QWEN: z.boolean(),
QWEN_API_KEY: z.string().optional(),
ENABLED_STEPFUN: z.boolean(),
STEPFUN_API_KEY: z.string().optional(),
ENABLED_NOVITA: z.boolean(),
NOVITA_API_KEY: z.string().optional(),
ENABLED_NVIDIA: z.boolean(),
NVIDIA_API_KEY: z.string().optional(),
ENABLED_BAICHUAN: z.boolean(),
BAICHUAN_API_KEY: z.string().optional(),
ENABLED_TAICHU: z.boolean(),
TAICHU_API_KEY: z.string().optional(),
ENABLED_CLOUDFLARE: z.boolean(),
CLOUDFLARE_API_KEY: z.string().optional(),
CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID: z.string().optional(),
ENABLED_AI360: z.boolean(),
AI360_API_KEY: z.string().optional(),
ENABLED_SILICONCLOUD: z.boolean(),
SILICONCLOUD_API_KEY: z.string().optional(),
ENABLED_GITEE_AI: z.boolean(),
GITEE_AI_API_KEY: z.string().optional(),
ENABLED_UPSTAGE: z.boolean(),
UPSTAGE_API_KEY: z.string().optional(),
ENABLED_SPARK: z.boolean(),
SPARK_API_KEY: z.string().optional(),
ENABLED_AI21: z.boolean(),
AI21_API_KEY: z.string().optional(),
ENABLED_HUNYUAN: z.boolean(),
HUNYUAN_API_KEY: z.string().optional(),
ENABLED_HUGGINGFACE: z.boolean(),
HUGGINGFACE_API_KEY: z.string().optional(),
ENABLED_SENSENOVA: z.boolean(),
SENSENOVA_API_KEY: z.string().optional(),
ENABLED_XAI: z.boolean(),
XAI_API_KEY: z.string().optional(),
ENABLED_INTERNLM: z.boolean(),
INTERNLM_API_KEY: z.string().optional(),
ENABLED_HIGRESS: z.boolean(),
HIGRESS_API_KEY: z.string().optional(),
ENABLED_VOLCENGINE: z.boolean(),
VOLCENGINE_API_KEY: z.string().optional(),
ENABLED_TENCENT_CLOUD: z.boolean(),
TENCENT_CLOUD_API_KEY: z.string().optional(),
ENABLED_JINA: z.boolean(),
JINA_API_KEY: z.string().optional(),
ENABLED_SAMBANOVA: z.boolean(),
SAMBANOVA_API_KEY: z.string().optional(),
ENABLED_PPIO: z.boolean(),
PPIO_API_KEY: z.string().optional(),
ENABLED_SEARCH1API: z.boolean(),
SEARCH1API_API_KEY: z.string().optional(),
ENABLED_COHERE: z.boolean(),
COHERE_API_KEY: z.string().optional(),
ENABLED_INFINIAI: z.boolean(),
INFINIAI_API_KEY: z.string().optional(),
ENABLED_MODELSCOPE: z.boolean(),
MODELSCOPE_API_KEY: z.string().optional(),
},
runtimeEnv: {
API_KEY_SELECT_MODE: process.env.API_KEY_SELECT_MODE,
ENABLED_OPENAI: process.env.ENABLED_OPENAI !== '0',
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
ENABLED_AZURE_OPENAI: !!process.env.AZURE_API_KEY,
AZURE_API_KEY: process.env.AZURE_API_KEY,
AZURE_API_VERSION: process.env.AZURE_API_VERSION,
AZURE_ENDPOINT: process.env.AZURE_ENDPOINT,
ENABLED_AZUREAI: !!process.env.AZUREAI_ENDPOINT_KEY,
AZUREAI_ENDPOINT_KEY: process.env.AZUREAI_ENDPOINT_KEY,
AZUREAI_ENDPOINT: process.env.AZUREAI_ENDPOINT,
ENABLED_ZHIPU: !!process.env.ZHIPU_API_KEY,
ZHIPU_API_KEY: process.env.ZHIPU_API_KEY,
ENABLED_DEEPSEEK: !!process.env.DEEPSEEK_API_KEY,
DEEPSEEK_API_KEY: process.env.DEEPSEEK_API_KEY,
ENABLED_GOOGLE: !!process.env.GOOGLE_API_KEY,
GOOGLE_API_KEY: process.env.GOOGLE_API_KEY,
ENABLED_VOLCENGINE: !!process.env.VOLCENGINE_API_KEY,
VOLCENGINE_API_KEY: process.env.VOLCENGINE_API_KEY,
ENABLED_PERPLEXITY: !!process.env.PERPLEXITY_API_KEY,
PERPLEXITY_API_KEY: process.env.PERPLEXITY_API_KEY,
ENABLED_ANTHROPIC: !!process.env.ANTHROPIC_API_KEY,
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
ENABLED_MINIMAX: !!process.env.MINIMAX_API_KEY,
MINIMAX_API_KEY: process.env.MINIMAX_API_KEY,
ENABLED_MISTRAL: !!process.env.MISTRAL_API_KEY,
MISTRAL_API_KEY: process.env.MISTRAL_API_KEY,
ENABLED_OPENROUTER: !!process.env.OPENROUTER_API_KEY,
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
ENABLED_TOGETHERAI: !!process.env.TOGETHERAI_API_KEY,
TOGETHERAI_API_KEY: process.env.TOGETHERAI_API_KEY,
ENABLED_FIREWORKSAI: !!process.env.FIREWORKSAI_API_KEY,
FIREWORKSAI_API_KEY: process.env.FIREWORKSAI_API_KEY,
ENABLED_MOONSHOT: !!process.env.MOONSHOT_API_KEY,
MOONSHOT_API_KEY: process.env.MOONSHOT_API_KEY,
ENABLED_GROQ: !!process.env.GROQ_API_KEY,
GROQ_API_KEY: process.env.GROQ_API_KEY,
ENABLED_GITHUB: !!process.env.GITHUB_TOKEN,
GITHUB_TOKEN: process.env.GITHUB_TOKEN,
ENABLED_ZEROONE: !!process.env.ZEROONE_API_KEY,
ZEROONE_API_KEY: process.env.ZEROONE_API_KEY,
ENABLED_AWS_BEDROCK: process.env.ENABLED_AWS_BEDROCK === '1',
AWS_REGION: process.env.AWS_REGION,
AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN,
ENABLED_WENXIN: !!process.env.WENXIN_API_KEY,
WENXIN_API_KEY: process.env.WENXIN_API_KEY,
ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
ENABLED_VLLM: !!process.env.VLLM_API_KEY,
VLLM_API_KEY: process.env.VLLM_API_KEY,
ENABLED_XINFERENCE: !!process.env.XINFERENCE_API_KEY,
XINFERENCE_API_KEY: process.env.XINFERENCE_API_KEY,
ENABLED_QINIU: !!process.env.QINIU_API_KEY,
QINIU_API_KEY: process.env.QINIU_API_KEY,
ENABLED_QWEN: !!process.env.QWEN_API_KEY,
QWEN_API_KEY: process.env.QWEN_API_KEY,
ENABLED_STEPFUN: !!process.env.STEPFUN_API_KEY,
STEPFUN_API_KEY: process.env.STEPFUN_API_KEY,
ENABLED_NOVITA: !!process.env.NOVITA_API_KEY,
NOVITA_API_KEY: process.env.NOVITA_API_KEY,
ENABLED_NVIDIA: !!process.env.NVIDIA_API_KEY,
NVIDIA_API_KEY: process.env.NVIDIA_API_KEY,
ENABLED_BAICHUAN: !!process.env.BAICHUAN_API_KEY,
BAICHUAN_API_KEY: process.env.BAICHUAN_API_KEY,
ENABLED_TAICHU: !!process.env.TAICHU_API_KEY,
TAICHU_API_KEY: process.env.TAICHU_API_KEY,
ENABLED_CLOUDFLARE:
!!process.env.CLOUDFLARE_API_KEY && !!process.env.CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID,
CLOUDFLARE_API_KEY: process.env.CLOUDFLARE_API_KEY,
CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID: process.env.CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID,
ENABLED_AI360: !!process.env.AI360_API_KEY,
AI360_API_KEY: process.env.AI360_API_KEY,
ENABLED_SILICONCLOUD: !!process.env.SILICONCLOUD_API_KEY,
SILICONCLOUD_API_KEY: process.env.SILICONCLOUD_API_KEY,
ENABLED_GITEE_AI: !!process.env.GITEE_AI_API_KEY,
GITEE_AI_API_KEY: process.env.GITEE_AI_API_KEY,
ENABLED_UPSTAGE: !!process.env.UPSTAGE_API_KEY,
UPSTAGE_API_KEY: process.env.UPSTAGE_API_KEY,
ENABLED_SPARK: !!process.env.SPARK_API_KEY,
SPARK_API_KEY: process.env.SPARK_API_KEY,
ENABLED_AI21: !!process.env.AI21_API_KEY,
AI21_API_KEY: process.env.AI21_API_KEY,
ENABLED_HUNYUAN: !!process.env.HUNYUAN_API_KEY,
HUNYUAN_API_KEY: process.env.HUNYUAN_API_KEY,
ENABLED_HUGGINGFACE: !!process.env.HUGGINGFACE_API_KEY,
HUGGINGFACE_API_KEY: process.env.HUGGINGFACE_API_KEY,
ENABLED_SENSENOVA: !!process.env.SENSENOVA_API_KEY,
SENSENOVA_API_KEY: process.env.SENSENOVA_API_KEY,
ENABLED_XAI: !!process.env.XAI_API_KEY,
XAI_API_KEY: process.env.XAI_API_KEY,
ENABLED_INTERNLM: !!process.env.INTERNLM_API_KEY,
INTERNLM_API_KEY: process.env.INTERNLM_API_KEY,
ENABLED_HIGRESS: !!process.env.HIGRESS_API_KEY,
HIGRESS_API_KEY: process.env.HIGRESS_API_KEY,
ENABLED_TENCENT_CLOUD: !!process.env.TENCENT_CLOUD_API_KEY,
TENCENT_CLOUD_API_KEY: process.env.TENCENT_CLOUD_API_KEY,
ENABLED_JINA: !!process.env.JINA_API_KEY,
JINA_API_KEY: process.env.JINA_API_KEY,
ENABLED_SAMBANOVA: !!process.env.SAMBANOVA_API_KEY,
SAMBANOVA_API_KEY: process.env.SAMBANOVA_API_KEY,
ENABLED_PPIO: !!process.env.PPIO_API_KEY,
PPIO_API_KEY: process.env.PPIO_API_KEY,
ENABLED_SEARCH1API: !!process.env.SEARCH1API_API_KEY,
SEARCH1API_API_KEY: process.env.SEARCH1API_API_KEY,
ENABLED_COHERE: !!process.env.COHERE_API_KEY,
COHERE_API_KEY: process.env.COHERE_API_KEY,
ENABLED_INFINIAI: !!process.env.INFINIAI_API_KEY,
INFINIAI_API_KEY: process.env.INFINIAI_API_KEY,
ENABLED_MODELSCOPE: !!process.env.MODELSCOPE_API_KEY,
MODELSCOPE_API_KEY: process.env.MODELSCOPE_API_KEY,
},
});
};
export const llmEnv = getLLMConfig();