@lobehub/chat 1.33.3 → 1.33.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.i18nrc.js +8 -2
- package/.releaserc.js +10 -1
- package/CHANGELOG.md +51 -16624
- package/changelog/CHANGELOG.v0.md +16621 -0
- package/changelog/v0.json +6064 -0
- package/changelog/v1.json +3347 -0
- package/docs/changelog/2024-11-25-november-providers.mdx +19 -0
- package/docs/changelog/2024-11-25-november-providers.zh-CN.mdx +17 -0
- package/docs/changelog/index.json +12 -0
- package/docs/changelog/schema.json +70 -0
- package/docs/self-hosting/advanced/auth/clerk.mdx +19 -23
- package/docs/self-hosting/advanced/auth/clerk.zh-CN.mdx +5 -4
- package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -4
- package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +3 -5
- package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
- package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +49 -44
- package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +42 -41
- package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +29 -21
- package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +2 -1
- package/docs/self-hosting/advanced/auth.mdx +10 -10
- package/docs/self-hosting/advanced/auth.zh-CN.mdx +10 -10
- package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +1 -1
- package/docs/self-hosting/advanced/model-list.mdx +1 -1
- package/docs/self-hosting/advanced/s3/cloudflare-r2.mdx +17 -12
- package/docs/self-hosting/advanced/s3/tencent-cloud.mdx +33 -20
- package/docs/self-hosting/advanced/s3.mdx +31 -28
- package/docs/self-hosting/advanced/s3.zh-CN.mdx +1 -0
- package/docs/self-hosting/advanced/webrtc.mdx +1 -0
- package/docs/self-hosting/environment-variables/s3.mdx +4 -3
- package/docs/self-hosting/environment-variables/s3.zh-CN.mdx +1 -0
- package/docs/self-hosting/environment-variables.mdx +6 -9
- package/docs/self-hosting/platform/alibaba-cloud.mdx +1 -2
- package/docs/self-hosting/platform/alibaba-cloud.zh-CN.mdx +1 -2
- package/docs/self-hosting/platform/btpanel.mdx +7 -13
- package/docs/self-hosting/platform/btpanel.zh-CN.mdx +8 -13
- package/docs/self-hosting/platform/docker.zh-CN.mdx +2 -1
- package/docs/self-hosting/platform/netlify.zh-CN.mdx +2 -1
- package/docs/self-hosting/server-database/docker.mdx +18 -5
- package/docs/self-hosting/server-database/docker.zh-CN.mdx +9 -6
- package/docs/self-hosting/server-database/netlify.mdx +0 -1
- package/docs/self-hosting/server-database/railway.mdx +0 -1
- package/docs/self-hosting/server-database/repocloud.mdx +5 -2
- package/docs/self-hosting/server-database/repocloud.zh-CN.mdx +23 -3
- package/docs/self-hosting/server-database/sealos.mdx +3 -0
- package/docs/self-hosting/server-database/vercel.mdx +35 -32
- package/docs/self-hosting/server-database/vercel.zh-CN.mdx +25 -25
- package/docs/self-hosting/server-database/zeabur.mdx +2 -2
- package/docs/self-hosting/server-database/zeabur.zh-CN.mdx +3 -4
- package/docs/self-hosting/server-database.mdx +23 -8
- package/docs/self-hosting/start.mdx +8 -2
- package/docs/usage/features/database.zh-CN.mdx +1 -1
- package/docs/usage/foundation/text2image.mdx +1 -2
- package/docs/usage/foundation/text2image.zh-CN.mdx +1 -3
- package/docs/usage/providers/ai21.mdx +14 -15
- package/docs/usage/providers/ai21.zh-CN.mdx +1 -3
- package/docs/usage/providers/ai360.mdx +14 -15
- package/docs/usage/providers/ai360.zh-CN.mdx +1 -3
- package/docs/usage/providers/cloudflare.mdx +1 -1
- package/docs/usage/providers/fireworksai.mdx +19 -19
- package/docs/usage/providers/fireworksai.zh-CN.mdx +1 -3
- package/docs/usage/providers/github.mdx +22 -21
- package/docs/usage/providers/github.zh-CN.mdx +6 -6
- package/docs/usage/providers/hunyuan.mdx +17 -18
- package/docs/usage/providers/hunyuan.zh-CN.mdx +1 -3
- package/docs/usage/providers/siliconcloud.mdx +14 -15
- package/docs/usage/providers/siliconcloud.zh-CN.mdx +3 -5
- package/docs/usage/providers/spark.mdx +17 -18
- package/docs/usage/providers/spark.zh-CN.mdx +1 -3
- package/docs/usage/providers/upstage.mdx +14 -15
- package/docs/usage/providers/upstage.zh-CN.mdx +1 -3
- package/docs/usage/providers/wenxin.mdx +17 -18
- package/docs/usage/providers/wenxin.zh-CN.mdx +1 -3
- package/docs/usage/providers/zeroone.mdx +2 -2
- package/locales/ar/providers.json +3 -0
- package/locales/bg-BG/providers.json +3 -0
- package/locales/de-DE/providers.json +3 -0
- package/locales/en-US/providers.json +3 -0
- package/locales/es-ES/providers.json +3 -0
- package/locales/fa-IR/providers.json +3 -0
- package/locales/fr-FR/providers.json +3 -0
- package/locales/it-IT/providers.json +3 -0
- package/locales/ja-JP/providers.json +3 -0
- package/locales/ko-KR/providers.json +3 -0
- package/locales/nl-NL/providers.json +3 -0
- package/locales/pl-PL/providers.json +3 -0
- package/locales/pt-BR/providers.json +3 -0
- package/locales/ru-RU/providers.json +3 -0
- package/locales/tr-TR/providers.json +3 -0
- package/locales/vi-VN/providers.json +3 -0
- package/locales/zh-CN/providers.json +3 -0
- package/locales/zh-TW/providers.json +3 -0
- package/package.json +6 -1
- package/scripts/changelogWorkflow/buildStaticChangelog.ts +135 -0
- package/scripts/changelogWorkflow/const.ts +11 -0
- package/scripts/changelogWorkflow/index.ts +10 -0
- package/src/server/modules/AgentRuntime/index.ts +21 -219
@@ -27,54 +27,32 @@ export interface AgentChatOptions {
|
|
27
27
|
* @returns The options object.
|
28
28
|
*/
|
29
29
|
const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {
|
30
|
+
const llmConfig = getLLMConfig() as Record<string, any>;
|
31
|
+
|
30
32
|
switch (provider) {
|
31
|
-
default:
|
32
|
-
|
33
|
-
|
33
|
+
default: {
|
34
|
+
let upperProvider = provider.toUpperCase();
|
35
|
+
|
36
|
+
if (!llmConfig[`${upperProvider}_API_KEY`]) {
|
37
|
+
upperProvider = ModelProvider.OpenAI.toUpperCase(); // Use OpenAI options as default
|
38
|
+
}
|
34
39
|
|
35
|
-
const
|
36
|
-
const baseURL = payload?.endpoint || process.env
|
37
|
-
const apiKey = apiKeyManager.pick(openaiApiKey);
|
40
|
+
const apiKey = apiKeyManager.pick(payload?.apiKey || llmConfig[`${upperProvider}_API_KEY`]);
|
41
|
+
const baseURL = payload?.endpoint || process.env[`${upperProvider}_PROXY_URL`];
|
38
42
|
|
39
43
|
return { apiKey, baseURL };
|
40
44
|
}
|
45
|
+
|
41
46
|
case ModelProvider.Azure: {
|
42
|
-
const { AZURE_API_KEY, AZURE_API_VERSION, AZURE_ENDPOINT } =
|
43
|
-
const
|
47
|
+
const { AZURE_API_KEY, AZURE_API_VERSION, AZURE_ENDPOINT } = llmConfig;
|
48
|
+
const apikey = apiKeyManager.pick(payload?.apiKey || AZURE_API_KEY);
|
44
49
|
const endpoint = payload?.endpoint || AZURE_ENDPOINT;
|
45
50
|
const apiVersion = payload?.azureApiVersion || AZURE_API_VERSION;
|
46
|
-
return {
|
47
|
-
apiVersion,
|
48
|
-
apikey: apiKey,
|
49
|
-
endpoint,
|
50
|
-
};
|
51
|
-
}
|
52
|
-
case ModelProvider.ZhiPu: {
|
53
|
-
const { ZHIPU_API_KEY } = getLLMConfig();
|
54
|
-
|
55
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || ZHIPU_API_KEY);
|
56
|
-
|
57
|
-
return { apiKey };
|
51
|
+
return { apiVersion, apikey, endpoint };
|
58
52
|
}
|
59
|
-
case ModelProvider.Google: {
|
60
|
-
const { GOOGLE_API_KEY } = getLLMConfig();
|
61
53
|
|
62
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || GOOGLE_API_KEY);
|
63
|
-
const baseURL = payload?.endpoint || process.env.GOOGLE_PROXY_URL;
|
64
|
-
|
65
|
-
return { apiKey, baseURL };
|
66
|
-
}
|
67
|
-
case ModelProvider.Moonshot: {
|
68
|
-
const { MOONSHOT_API_KEY } = getLLMConfig();
|
69
|
-
|
70
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || MOONSHOT_API_KEY);
|
71
|
-
const baseURL = payload?.endpoint || process.env.MOONSHOT_PROXY_URL;
|
72
|
-
|
73
|
-
return { apiKey, baseURL };
|
74
|
-
}
|
75
54
|
case ModelProvider.Bedrock: {
|
76
|
-
const { AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID, AWS_REGION, AWS_SESSION_TOKEN } =
|
77
|
-
getLLMConfig();
|
55
|
+
const { AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID, AWS_REGION, AWS_SESSION_TOKEN } = llmConfig;
|
78
56
|
let accessKeyId: string | undefined = AWS_ACCESS_KEY_ID;
|
79
57
|
let accessKeySecret: string | undefined = AWS_SECRET_ACCESS_KEY;
|
80
58
|
let region = AWS_REGION;
|
@@ -88,127 +66,9 @@ const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {
|
|
88
66
|
}
|
89
67
|
return { accessKeyId, accessKeySecret, region, sessionToken };
|
90
68
|
}
|
91
|
-
case ModelProvider.Ollama: {
|
92
|
-
const baseURL = payload?.endpoint || process.env.OLLAMA_PROXY_URL;
|
93
|
-
return { baseURL };
|
94
|
-
}
|
95
|
-
case ModelProvider.Perplexity: {
|
96
|
-
const { PERPLEXITY_API_KEY } = getLLMConfig();
|
97
|
-
|
98
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || PERPLEXITY_API_KEY);
|
99
|
-
const baseURL = payload?.endpoint || process.env.PERPLEXITY_PROXY_URL;
|
100
|
-
|
101
|
-
return { apiKey, baseURL };
|
102
|
-
}
|
103
|
-
case ModelProvider.Anthropic: {
|
104
|
-
const { ANTHROPIC_API_KEY } = getLLMConfig();
|
105
|
-
|
106
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || ANTHROPIC_API_KEY);
|
107
|
-
const baseURL = payload?.endpoint || process.env.ANTHROPIC_PROXY_URL;
|
108
|
-
|
109
|
-
return { apiKey, baseURL };
|
110
|
-
}
|
111
|
-
case ModelProvider.Minimax: {
|
112
|
-
const { MINIMAX_API_KEY } = getLLMConfig();
|
113
|
-
|
114
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || MINIMAX_API_KEY);
|
115
|
-
|
116
|
-
return { apiKey };
|
117
|
-
}
|
118
|
-
case ModelProvider.Mistral: {
|
119
|
-
const { MISTRAL_API_KEY } = getLLMConfig();
|
120
|
-
|
121
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || MISTRAL_API_KEY);
|
122
|
-
|
123
|
-
return { apiKey };
|
124
|
-
}
|
125
|
-
case ModelProvider.Groq: {
|
126
|
-
const { GROQ_API_KEY } = getLLMConfig();
|
127
|
-
|
128
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || GROQ_API_KEY);
|
129
|
-
const baseURL = payload?.endpoint || process.env.GROQ_PROXY_URL;
|
130
|
-
|
131
|
-
return { apiKey, baseURL };
|
132
|
-
}
|
133
|
-
case ModelProvider.Github: {
|
134
|
-
const { GITHUB_TOKEN } = getLLMConfig();
|
135
|
-
|
136
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || GITHUB_TOKEN);
|
137
|
-
|
138
|
-
return { apiKey };
|
139
|
-
}
|
140
|
-
case ModelProvider.OpenRouter: {
|
141
|
-
const { OPENROUTER_API_KEY } = getLLMConfig();
|
142
|
-
|
143
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || OPENROUTER_API_KEY);
|
144
|
-
|
145
|
-
return { apiKey };
|
146
|
-
}
|
147
|
-
case ModelProvider.DeepSeek: {
|
148
|
-
const { DEEPSEEK_API_KEY } = getLLMConfig();
|
149
|
-
|
150
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || DEEPSEEK_API_KEY);
|
151
|
-
|
152
|
-
return { apiKey };
|
153
|
-
}
|
154
|
-
case ModelProvider.TogetherAI: {
|
155
|
-
const { TOGETHERAI_API_KEY } = getLLMConfig();
|
156
|
-
|
157
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || TOGETHERAI_API_KEY);
|
158
|
-
|
159
|
-
return { apiKey };
|
160
|
-
}
|
161
|
-
case ModelProvider.FireworksAI: {
|
162
|
-
const { FIREWORKSAI_API_KEY } = getLLMConfig();
|
163
|
-
|
164
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || FIREWORKSAI_API_KEY);
|
165
|
-
|
166
|
-
return { apiKey };
|
167
|
-
}
|
168
|
-
case ModelProvider.ZeroOne: {
|
169
|
-
const { ZEROONE_API_KEY } = getLLMConfig();
|
170
|
-
|
171
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || ZEROONE_API_KEY);
|
172
|
-
|
173
|
-
return { apiKey };
|
174
|
-
}
|
175
|
-
case ModelProvider.Qwen: {
|
176
|
-
const { QWEN_API_KEY } = getLLMConfig();
|
177
|
-
|
178
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || QWEN_API_KEY);
|
179
69
|
|
180
|
-
return { apiKey };
|
181
|
-
}
|
182
|
-
case ModelProvider.Stepfun: {
|
183
|
-
const { STEPFUN_API_KEY } = getLLMConfig();
|
184
|
-
|
185
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || STEPFUN_API_KEY);
|
186
|
-
|
187
|
-
return { apiKey };
|
188
|
-
}
|
189
|
-
case ModelProvider.Novita: {
|
190
|
-
const { NOVITA_API_KEY } = getLLMConfig();
|
191
|
-
|
192
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || NOVITA_API_KEY);
|
193
|
-
|
194
|
-
return { apiKey };
|
195
|
-
}
|
196
|
-
case ModelProvider.Baichuan: {
|
197
|
-
const { BAICHUAN_API_KEY } = getLLMConfig();
|
198
|
-
|
199
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || BAICHUAN_API_KEY);
|
200
|
-
|
201
|
-
return { apiKey };
|
202
|
-
}
|
203
|
-
case ModelProvider.Taichu: {
|
204
|
-
const { TAICHU_API_KEY } = getLLMConfig();
|
205
|
-
|
206
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || TAICHU_API_KEY);
|
207
|
-
|
208
|
-
return { apiKey };
|
209
|
-
}
|
210
70
|
case ModelProvider.Cloudflare: {
|
211
|
-
const { CLOUDFLARE_API_KEY, CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID } =
|
71
|
+
const { CLOUDFLARE_API_KEY, CLOUDFLARE_BASE_URL_OR_ACCOUNT_ID } = llmConfig;
|
212
72
|
|
213
73
|
const apiKey = apiKeyManager.pick(payload?.apiKey || CLOUDFLARE_API_KEY);
|
214
74
|
const baseURLOrAccountID =
|
@@ -218,68 +78,25 @@ const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {
|
|
218
78
|
|
219
79
|
return { apiKey, baseURLOrAccountID };
|
220
80
|
}
|
221
|
-
case ModelProvider.Ai360: {
|
222
|
-
const { AI360_API_KEY } = getLLMConfig();
|
223
|
-
|
224
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || AI360_API_KEY);
|
225
|
-
|
226
|
-
return { apiKey };
|
227
|
-
}
|
228
|
-
case ModelProvider.SiliconCloud: {
|
229
|
-
const { SILICONCLOUD_API_KEY } = getLLMConfig();
|
230
|
-
|
231
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || SILICONCLOUD_API_KEY);
|
232
|
-
const baseURL = payload?.endpoint || process.env.SILICONCLOUD_PROXY_URL;
|
233
81
|
|
234
|
-
return { apiKey, baseURL };
|
235
|
-
}
|
236
82
|
case ModelProvider.GiteeAI: {
|
237
|
-
const { GITEE_AI_API_KEY } =
|
83
|
+
const { GITEE_AI_API_KEY } = llmConfig;
|
238
84
|
|
239
85
|
const apiKey = apiKeyManager.pick(payload?.apiKey || GITEE_AI_API_KEY);
|
240
86
|
|
241
87
|
return { apiKey };
|
242
88
|
}
|
243
89
|
|
244
|
-
case ModelProvider.
|
245
|
-
const {
|
246
|
-
|
247
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || HUGGINGFACE_API_KEY);
|
248
|
-
const baseURL = payload?.endpoint || process.env.HUGGINGFACE_PROXY_URL;
|
249
|
-
|
250
|
-
return { apiKey, baseURL };
|
251
|
-
}
|
252
|
-
|
253
|
-
case ModelProvider.Upstage: {
|
254
|
-
const { UPSTAGE_API_KEY } = getLLMConfig();
|
255
|
-
|
256
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || UPSTAGE_API_KEY);
|
257
|
-
|
258
|
-
return { apiKey };
|
259
|
-
}
|
260
|
-
case ModelProvider.Spark: {
|
261
|
-
const { SPARK_API_KEY } = getLLMConfig();
|
262
|
-
|
263
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || SPARK_API_KEY);
|
264
|
-
|
265
|
-
return { apiKey };
|
266
|
-
}
|
267
|
-
case ModelProvider.Ai21: {
|
268
|
-
const { AI21_API_KEY } = getLLMConfig();
|
90
|
+
case ModelProvider.Github: {
|
91
|
+
const { GITHUB_TOKEN } = llmConfig;
|
269
92
|
|
270
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey ||
|
93
|
+
const apiKey = apiKeyManager.pick(payload?.apiKey || GITHUB_TOKEN);
|
271
94
|
|
272
95
|
return { apiKey };
|
273
96
|
}
|
274
|
-
case ModelProvider.Hunyuan: {
|
275
|
-
const { HUNYUAN_API_KEY } = getLLMConfig();
|
276
|
-
|
277
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || HUNYUAN_API_KEY);
|
278
97
|
|
279
|
-
return { apiKey };
|
280
|
-
}
|
281
98
|
case ModelProvider.SenseNova: {
|
282
|
-
const { SENSENOVA_ACCESS_KEY_ID, SENSENOVA_ACCESS_KEY_SECRET } =
|
99
|
+
const { SENSENOVA_ACCESS_KEY_ID, SENSENOVA_ACCESS_KEY_SECRET } = llmConfig;
|
283
100
|
|
284
101
|
const sensenovaAccessKeyID = apiKeyManager.pick(
|
285
102
|
payload?.sensenovaAccessKeyID || SENSENOVA_ACCESS_KEY_ID,
|
@@ -290,21 +107,6 @@ const getLlmOptionsFromPayload = (provider: string, payload: JWTPayload) => {
|
|
290
107
|
|
291
108
|
const apiKey = sensenovaAccessKeyID + ':' + sensenovaAccessKeySecret;
|
292
109
|
|
293
|
-
return { apiKey };
|
294
|
-
}
|
295
|
-
case ModelProvider.XAI: {
|
296
|
-
const { XAI_API_KEY } = getLLMConfig();
|
297
|
-
|
298
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || XAI_API_KEY);
|
299
|
-
const baseURL = payload?.endpoint || process.env.XAI_PROXY_URL;
|
300
|
-
|
301
|
-
return { apiKey, baseURL };
|
302
|
-
}
|
303
|
-
case ModelProvider.InternLM: {
|
304
|
-
const { INTERNLM_API_KEY } = getLLMConfig();
|
305
|
-
|
306
|
-
const apiKey = apiKeyManager.pick(payload?.apiKey || INTERNLM_API_KEY);
|
307
|
-
|
308
110
|
return { apiKey };
|
309
111
|
}
|
310
112
|
}
|