1
/* eslint-disable sort-keys-fix/sort-keys-fix , typescript-sort-keys/interface */
2
import { createEnv } from '@t3-oss/env-nextjs';
3
import { z } from 'zod';
5
export const getLLMConfig = () => {
8
API_KEY_SELECT_MODE: z.string().optional(),
10
ENABLED_OPENAI: z.boolean(),
11
OPENAI_API_KEY: z.string().optional(),
12
OPENAI_PROXY_URL: z.string().optional(),
13
OPENAI_MODEL_LIST: z.string().optional(),
15
ENABLED_AZURE_OPENAI: z.boolean(),
16
AZURE_API_KEY: z.string().optional(),
17
AZURE_API_VERSION: z.string().optional(),
18
AZURE_ENDPOINT: z.string().optional(),
19
AZURE_MODEL_LIST: z.string().optional(),
21
ENABLED_ZHIPU: z.boolean(),
22
ZHIPU_API_KEY: z.string().optional(),
23
ZHIPU_MODEL_LIST: z.string().optional(),
25
ENABLED_DEEPSEEK: z.boolean(),
26
DEEPSEEK_API_KEY: z.string().optional(),
28
ENABLED_GOOGLE: z.boolean(),
29
GOOGLE_API_KEY: z.string().optional(),
30
GOOGLE_PROXY_URL: z.string().optional(),
31
GOOGLE_MODEL_LIST: z.string().optional(),
33
ENABLED_MOONSHOT: z.boolean(),
34
MOONSHOT_API_KEY: z.string().optional(),
35
MOONSHOT_PROXY_URL: z.string().optional(),
37
ENABLED_PERPLEXITY: z.boolean(),
38
PERPLEXITY_API_KEY: z.string().optional(),
39
PERPLEXITY_PROXY_URL: z.string().optional(),
41
ENABLED_ANTHROPIC: z.boolean(),
42
ANTHROPIC_API_KEY: z.string().optional(),
43
ANTHROPIC_PROXY_URL: z.string().optional(),
45
ENABLED_MINIMAX: z.boolean(),
46
MINIMAX_API_KEY: z.string().optional(),
48
ENABLED_MISTRAL: z.boolean(),
49
MISTRAL_API_KEY: z.string().optional(),
51
ENABLED_GROQ: z.boolean(),
52
GROQ_API_KEY: z.string().optional(),
53
GROQ_MODEL_LIST: z.string().optional(),
54
GROQ_PROXY_URL: z.string().optional(),
56
ENABLED_GITHUB: z.boolean(),
57
GITHUB_TOKEN: z.string().optional(),
58
GITHUB_MODEL_LIST: z.string().optional(),
60
ENABLED_OPENROUTER: z.boolean(),
61
OPENROUTER_API_KEY: z.string().optional(),
62
OPENROUTER_MODEL_LIST: z.string().optional(),
64
ENABLED_ZEROONE: z.boolean(),
65
ZEROONE_API_KEY: z.string().optional(),
66
ZEROONE_MODEL_LIST: z.string().optional(),
68
ENABLED_TOGETHERAI: z.boolean(),
69
TOGETHERAI_API_KEY: z.string().optional(),
70
TOGETHERAI_MODEL_LIST: z.string().optional(),
72
ENABLED_FIREWORKSAI: z.boolean(),
73
FIREWORKSAI_API_KEY: z.string().optional(),
74
FIREWORKSAI_MODEL_LIST: z.string().optional(),
76
ENABLED_AWS_BEDROCK: z.boolean(),
77
AWS_BEDROCK_MODEL_LIST: z.string().optional(),
78
AWS_REGION: z.string().optional(),
79
AWS_ACCESS_KEY_ID: z.string().optional(),
80
AWS_SECRET_ACCESS_KEY: z.string().optional(),
81
AWS_SESSION_TOKEN: z.string().optional(),
83
ENABLED_WENXIN: z.boolean(),
84
WENXIN_ACCESS_KEY: z.string().optional(),
85
WENXIN_SECRET_KEY: z.string().optional(),
87
ENABLED_OLLAMA: z.boolean(),
88
OLLAMA_PROXY_URL: z.string().optional(),
89
OLLAMA_MODEL_LIST: z.string().optional(),
91
ENABLED_QWEN: z.boolean(),
92
QWEN_API_KEY: z.string().optional(),
93
QWEN_MODEL_LIST: z.string().optional(),
95
ENABLED_STEPFUN: z.boolean(),
96
STEPFUN_API_KEY: z.string().optional(),
98
ENABLED_NOVITA: z.boolean(),
99
NOVITA_API_KEY: z.string().optional(),
100
NOVITA_MODEL_LIST: z.string().optional(),
102
ENABLED_BAICHUAN: z.boolean(),
103
BAICHUAN_API_KEY: z.string().optional(),
105
ENABLED_TAICHU: z.boolean(),
106
TAICHU_API_KEY: z.string().optional(),
108
ENABLED_AI360: z.boolean(),
109
AI360_API_KEY: z.string().optional(),
111
ENABLED_SILICONCLOUD: z.boolean(),
112
SILICONCLOUD_API_KEY: z.string().optional(),
113
SILICONCLOUD_MODEL_LIST: z.string().optional(),
114
SILICONCLOUD_PROXY_URL: z.string().optional(),
116
ENABLED_UPSTAGE: z.boolean(),
117
UPSTAGE_API_KEY: z.string().optional(),
119
ENABLED_SPARK: z.boolean(),
120
SPARK_API_KEY: z.string().optional(),
122
ENABLED_AI21: z.boolean(),
123
AI21_API_KEY: z.string().optional(),
125
ENABLED_HUNYUAN: z.boolean(),
126
HUNYUAN_API_KEY: z.string().optional(),
127
HUNYUAN_MODEL_LIST: z.string().optional(),
129
ENABLED_HUGGINGFACE: z.boolean(),
130
HUGGINGFACE_API_KEY: z.string().optional(),
131
HUGGINGFACE_PROXY_URL: z.string().optional(),
132
HUGGINGFACE_MODEL_LIST: z.string().optional(),
135
API_KEY_SELECT_MODE: process.env.API_KEY_SELECT_MODE,
137
ENABLED_OPENAI: process.env.ENABLED_OPENAI !== '0',
138
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
139
OPENAI_PROXY_URL: process.env.OPENAI_PROXY_URL,
140
OPENAI_MODEL_LIST: process.env.OPENAI_MODEL_LIST,
142
ENABLED_AZURE_OPENAI: !!process.env.AZURE_API_KEY,
143
AZURE_API_KEY: process.env.AZURE_API_KEY,
144
AZURE_API_VERSION: process.env.AZURE_API_VERSION,
145
AZURE_ENDPOINT: process.env.AZURE_ENDPOINT,
146
AZURE_MODEL_LIST: process.env.AZURE_MODEL_LIST,
148
ENABLED_ZHIPU: !!process.env.ZHIPU_API_KEY,
149
ZHIPU_API_KEY: process.env.ZHIPU_API_KEY,
150
ZHIPU_MODEL_LIST: process.env.ZHIPU_MODEL_LIST,
152
ENABLED_DEEPSEEK: !!process.env.DEEPSEEK_API_KEY,
153
DEEPSEEK_API_KEY: process.env.DEEPSEEK_API_KEY,
155
ENABLED_GOOGLE: !!process.env.GOOGLE_API_KEY,
156
GOOGLE_API_KEY: process.env.GOOGLE_API_KEY,
157
GOOGLE_PROXY_URL: process.env.GOOGLE_PROXY_URL,
158
GOOGLE_MODEL_LIST: process.env.GOOGLE_MODEL_LIST,
160
ENABLED_PERPLEXITY: !!process.env.PERPLEXITY_API_KEY,
161
PERPLEXITY_API_KEY: process.env.PERPLEXITY_API_KEY,
162
PERPLEXITY_PROXY_URL: process.env.PERPLEXITY_PROXY_URL,
164
ENABLED_ANTHROPIC: !!process.env.ANTHROPIC_API_KEY,
165
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
166
ANTHROPIC_PROXY_URL: process.env.ANTHROPIC_PROXY_URL,
168
ENABLED_MINIMAX: !!process.env.MINIMAX_API_KEY,
169
MINIMAX_API_KEY: process.env.MINIMAX_API_KEY,
171
ENABLED_MISTRAL: !!process.env.MISTRAL_API_KEY,
172
MISTRAL_API_KEY: process.env.MISTRAL_API_KEY,
174
ENABLED_OPENROUTER: !!process.env.OPENROUTER_API_KEY,
175
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
176
OPENROUTER_MODEL_LIST: process.env.OPENROUTER_MODEL_LIST,
178
ENABLED_TOGETHERAI: !!process.env.TOGETHERAI_API_KEY,
179
TOGETHERAI_API_KEY: process.env.TOGETHERAI_API_KEY,
180
TOGETHERAI_MODEL_LIST: process.env.TOGETHERAI_MODEL_LIST,
182
ENABLED_FIREWORKSAI: !!process.env.FIREWORKSAI_API_KEY,
183
FIREWORKSAI_API_KEY: process.env.FIREWORKSAI_API_KEY,
184
FIREWORKSAI_MODEL_LIST: process.env.FIREWORKSAI_MODEL_LIST,
186
ENABLED_MOONSHOT: !!process.env.MOONSHOT_API_KEY,
187
MOONSHOT_API_KEY: process.env.MOONSHOT_API_KEY,
188
MOONSHOT_PROXY_URL: process.env.MOONSHOT_PROXY_URL,
190
ENABLED_GROQ: !!process.env.GROQ_API_KEY,
191
GROQ_API_KEY: process.env.GROQ_API_KEY,
192
GROQ_MODEL_LIST: process.env.GROQ_MODEL_LIST,
193
GROQ_PROXY_URL: process.env.GROQ_PROXY_URL,
195
ENABLED_GITHUB: !!process.env.GITHUB_TOKEN,
196
GITHUB_TOKEN: process.env.GITHUB_TOKEN,
197
GITHUB_MODEL_LIST: process.env.GITHUB_MODEL_LIST,
199
ENABLED_ZEROONE: !!process.env.ZEROONE_API_KEY,
200
ZEROONE_API_KEY: process.env.ZEROONE_API_KEY,
201
ZEROONE_MODEL_LIST: process.env.ZEROONE_MODEL_LIST,
203
ENABLED_AWS_BEDROCK: process.env.ENABLED_AWS_BEDROCK === '1',
204
AWS_BEDROCK_MODEL_LIST: process.env.AWS_BEDROCK_MODEL_LIST,
205
AWS_REGION: process.env.AWS_REGION,
206
AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
207
AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
208
AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN,
210
ENABLED_WENXIN: !!process.env.WENXIN_ACCESS_KEY && !!process.env.WENXIN_SECRET_KEY,
211
WENXIN_ACCESS_KEY: process.env.WENXIN_ACCESS_KEY,
212
WENXIN_SECRET_KEY: process.env.WENXIN_SECRET_KEY,
214
ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
215
OLLAMA_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
216
OLLAMA_MODEL_LIST: process.env.OLLAMA_MODEL_LIST,
218
ENABLED_QWEN: !!process.env.QWEN_API_KEY,
219
QWEN_API_KEY: process.env.QWEN_API_KEY,
220
QWEN_MODEL_LIST: process.env.QWEN_MODEL_LIST,
222
ENABLED_STEPFUN: !!process.env.STEPFUN_API_KEY,
223
STEPFUN_API_KEY: process.env.STEPFUN_API_KEY,
225
ENABLED_NOVITA: !!process.env.NOVITA_API_KEY,
226
NOVITA_API_KEY: process.env.NOVITA_API_KEY,
227
NOVITA_MODEL_LIST: process.env.NOVITA_MODEL_LIST,
229
ENABLED_BAICHUAN: !!process.env.BAICHUAN_API_KEY,
230
BAICHUAN_API_KEY: process.env.BAICHUAN_API_KEY,
232
ENABLED_TAICHU: !!process.env.TAICHU_API_KEY,
233
TAICHU_API_KEY: process.env.TAICHU_API_KEY,
235
ENABLED_AI360: !!process.env.AI360_API_KEY,
236
AI360_API_KEY: process.env.AI360_API_KEY,
238
ENABLED_SILICONCLOUD: !!process.env.SILICONCLOUD_API_KEY,
239
SILICONCLOUD_API_KEY: process.env.SILICONCLOUD_API_KEY,
240
SILICONCLOUD_MODEL_LIST: process.env.SILICONCLOUD_MODEL_LIST,
241
SILICONCLOUD_PROXY_URL: process.env.SILICONCLOUD_PROXY_URL,
243
ENABLED_UPSTAGE: !!process.env.UPSTAGE_API_KEY,
244
UPSTAGE_API_KEY: process.env.UPSTAGE_API_KEY,
246
ENABLED_SPARK: !!process.env.SPARK_API_KEY,
247
SPARK_API_KEY: process.env.SPARK_API_KEY,
249
ENABLED_AI21: !!process.env.AI21_API_KEY,
250
AI21_API_KEY: process.env.AI21_API_KEY,
252
ENABLED_HUNYUAN: !!process.env.HUNYUAN_API_KEY,
253
HUNYUAN_API_KEY: process.env.HUNYUAN_API_KEY,
254
HUNYUAN_MODEL_LIST: process.env.HUNYUAN_MODEL_LIST,
256
ENABLED_HUGGINGFACE: !!process.env.HUGGINGFACE_API_KEY,
257
HUGGINGFACE_API_KEY: process.env.HUGGINGFACE_API_KEY,
258
HUGGINGFACE_PROXY_URL: process.env.HUGGINGFACE_PROXY_URL,
259
HUGGINGFACE_MODEL_LIST: process.env.HUGGINGFACE_MODEL_LIST,
264
export const llmEnv = getLLMConfig();