forked from lobehub/lobe-chat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathllm.ts
257 lines (179 loc) · 8.28 KB
/
llm.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
/* 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_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_ACCESS_KEY: z.string().optional(),
WENXIN_SECRET_KEY: z.string().optional(),
ENABLED_OLLAMA: z.boolean(),
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_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_DOUBAO: z.boolean(),
DOUBAO_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_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_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_ACCESS_KEY && !!process.env.WENXIN_SECRET_KEY,
WENXIN_ACCESS_KEY: process.env.WENXIN_ACCESS_KEY,
WENXIN_SECRET_KEY: process.env.WENXIN_SECRET_KEY,
ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
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_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_DOUBAO: !!process.env.DOUBAO_API_KEY,
DOUBAO_API_KEY: process.env.DOUBAO_API_KEY,
},
});
};
export const llmEnv = getLLMConfig();