lobe-chat

Форк
0
264 строки · 9.5 Кб
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';
4

5
export const getLLMConfig = () => {
6
  return createEnv({
7
    server: {
8
      API_KEY_SELECT_MODE: z.string().optional(),
9

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(),
14

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(),
20

21
      ENABLED_ZHIPU: z.boolean(),
22
      ZHIPU_API_KEY: z.string().optional(),
23
      ZHIPU_MODEL_LIST: z.string().optional(),
24

25
      ENABLED_DEEPSEEK: z.boolean(),
26
      DEEPSEEK_API_KEY: z.string().optional(),
27

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(),
32

33
      ENABLED_MOONSHOT: z.boolean(),
34
      MOONSHOT_API_KEY: z.string().optional(),
35
      MOONSHOT_PROXY_URL: z.string().optional(),
36

37
      ENABLED_PERPLEXITY: z.boolean(),
38
      PERPLEXITY_API_KEY: z.string().optional(),
39
      PERPLEXITY_PROXY_URL: z.string().optional(),
40

41
      ENABLED_ANTHROPIC: z.boolean(),
42
      ANTHROPIC_API_KEY: z.string().optional(),
43
      ANTHROPIC_PROXY_URL: z.string().optional(),
44

45
      ENABLED_MINIMAX: z.boolean(),
46
      MINIMAX_API_KEY: z.string().optional(),
47

48
      ENABLED_MISTRAL: z.boolean(),
49
      MISTRAL_API_KEY: z.string().optional(),
50

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(),
55

56
      ENABLED_GITHUB: z.boolean(),
57
      GITHUB_TOKEN: z.string().optional(),
58
      GITHUB_MODEL_LIST: z.string().optional(),
59

60
      ENABLED_OPENROUTER: z.boolean(),
61
      OPENROUTER_API_KEY: z.string().optional(),
62
      OPENROUTER_MODEL_LIST: z.string().optional(),
63

64
      ENABLED_ZEROONE: z.boolean(),
65
      ZEROONE_API_KEY: z.string().optional(),
66
      ZEROONE_MODEL_LIST: z.string().optional(),
67

68
      ENABLED_TOGETHERAI: z.boolean(),
69
      TOGETHERAI_API_KEY: z.string().optional(),
70
      TOGETHERAI_MODEL_LIST: z.string().optional(),
71

72
      ENABLED_FIREWORKSAI: z.boolean(),
73
      FIREWORKSAI_API_KEY: z.string().optional(),
74
      FIREWORKSAI_MODEL_LIST: z.string().optional(),
75

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(),
82

83
      ENABLED_WENXIN: z.boolean(),
84
      WENXIN_ACCESS_KEY: z.string().optional(),
85
      WENXIN_SECRET_KEY: z.string().optional(),
86

87
      ENABLED_OLLAMA: z.boolean(),
88
      OLLAMA_PROXY_URL: z.string().optional(),
89
      OLLAMA_MODEL_LIST: z.string().optional(),
90

91
      ENABLED_QWEN: z.boolean(),
92
      QWEN_API_KEY: z.string().optional(),
93
      QWEN_MODEL_LIST: z.string().optional(),
94

95
      ENABLED_STEPFUN: z.boolean(),
96
      STEPFUN_API_KEY: z.string().optional(),
97

98
      ENABLED_NOVITA: z.boolean(),
99
      NOVITA_API_KEY: z.string().optional(),
100
      NOVITA_MODEL_LIST: z.string().optional(),
101

102
      ENABLED_BAICHUAN: z.boolean(),
103
      BAICHUAN_API_KEY: z.string().optional(),
104

105
      ENABLED_TAICHU: z.boolean(),
106
      TAICHU_API_KEY: z.string().optional(),
107

108
      ENABLED_AI360: z.boolean(),
109
      AI360_API_KEY: z.string().optional(),
110

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(),
115

116
      ENABLED_UPSTAGE: z.boolean(),
117
      UPSTAGE_API_KEY: z.string().optional(),
118

119
      ENABLED_SPARK: z.boolean(),
120
      SPARK_API_KEY: z.string().optional(),
121

122
      ENABLED_AI21: z.boolean(),
123
      AI21_API_KEY: z.string().optional(),
124

125
      ENABLED_HUNYUAN: z.boolean(),
126
      HUNYUAN_API_KEY: z.string().optional(),
127
      HUNYUAN_MODEL_LIST: z.string().optional(),
128

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(),
133
    },
134
    runtimeEnv: {
135
      API_KEY_SELECT_MODE: process.env.API_KEY_SELECT_MODE,
136

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,
141

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,
147

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,
151

152
      ENABLED_DEEPSEEK: !!process.env.DEEPSEEK_API_KEY,
153
      DEEPSEEK_API_KEY: process.env.DEEPSEEK_API_KEY,
154

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,
159

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,
163

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,
167

168
      ENABLED_MINIMAX: !!process.env.MINIMAX_API_KEY,
169
      MINIMAX_API_KEY: process.env.MINIMAX_API_KEY,
170

171
      ENABLED_MISTRAL: !!process.env.MISTRAL_API_KEY,
172
      MISTRAL_API_KEY: process.env.MISTRAL_API_KEY,
173

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,
177

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,
181

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,
185

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,
189

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,
194

195
      ENABLED_GITHUB: !!process.env.GITHUB_TOKEN,
196
      GITHUB_TOKEN: process.env.GITHUB_TOKEN,
197
      GITHUB_MODEL_LIST: process.env.GITHUB_MODEL_LIST,
198

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,
202

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,
209

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,
213

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,
217

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,
221

222
      ENABLED_STEPFUN: !!process.env.STEPFUN_API_KEY,
223
      STEPFUN_API_KEY: process.env.STEPFUN_API_KEY,
224

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,
228

229
      ENABLED_BAICHUAN: !!process.env.BAICHUAN_API_KEY,
230
      BAICHUAN_API_KEY: process.env.BAICHUAN_API_KEY,
231

232
      ENABLED_TAICHU: !!process.env.TAICHU_API_KEY,
233
      TAICHU_API_KEY: process.env.TAICHU_API_KEY,
234

235
      ENABLED_AI360: !!process.env.AI360_API_KEY,
236
      AI360_API_KEY: process.env.AI360_API_KEY,
237

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,
242

243
      ENABLED_UPSTAGE: !!process.env.UPSTAGE_API_KEY,
244
      UPSTAGE_API_KEY: process.env.UPSTAGE_API_KEY,
245

246
      ENABLED_SPARK: !!process.env.SPARK_API_KEY,
247
      SPARK_API_KEY: process.env.SPARK_API_KEY,
248

249
      ENABLED_AI21: !!process.env.AI21_API_KEY,
250
      AI21_API_KEY: process.env.AI21_API_KEY,
251

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,
255

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,
260
    },
261
  });
262
};
263

264
export const llmEnv = getLLMConfig();
265

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.