@lobehub/chat 1.53.6 → 1.53.8
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/.github/workflows/lighthouse.yml +1 -1
- package/CHANGELOG.md +50 -0
- package/changelog/v1.json +18 -0
- package/locales/ar/modelProvider.json +5 -0
- package/locales/bg-BG/modelProvider.json +5 -0
- package/locales/de-DE/modelProvider.json +5 -0
- package/locales/en-US/modelProvider.json +5 -0
- package/locales/es-ES/modelProvider.json +5 -0
- package/locales/fa-IR/modelProvider.json +5 -0
- package/locales/fr-FR/modelProvider.json +5 -0
- package/locales/it-IT/modelProvider.json +5 -0
- package/locales/ja-JP/modelProvider.json +5 -0
- package/locales/ko-KR/modelProvider.json +5 -0
- package/locales/nl-NL/modelProvider.json +5 -0
- package/locales/pl-PL/modelProvider.json +5 -0
- package/locales/pt-BR/modelProvider.json +5 -0
- package/locales/ru-RU/modelProvider.json +5 -0
- package/locales/tr-TR/modelProvider.json +5 -0
- package/locales/vi-VN/modelProvider.json +5 -0
- package/locales/zh-CN/auth.json +1 -1
- package/locales/zh-CN/changelog.json +1 -1
- package/locales/zh-CN/chat.json +1 -1
- package/locales/zh-CN/clerk.json +1 -1
- package/locales/zh-CN/common.json +1 -1
- package/locales/zh-CN/components.json +1 -1
- package/locales/zh-CN/discover.json +1 -1
- package/locales/zh-CN/error.json +1 -1
- package/locales/zh-CN/file.json +1 -1
- package/locales/zh-CN/knowledgeBase.json +1 -1
- package/locales/zh-CN/metadata.json +1 -1
- package/locales/zh-CN/migration.json +1 -1
- package/locales/zh-CN/modelProvider.json +6 -1
- package/locales/zh-CN/models.json +1049 -1049
- package/locales/zh-CN/plugin.json +1 -1
- package/locales/zh-CN/portal.json +1 -1
- package/locales/zh-CN/providers.json +70 -70
- package/locales/zh-CN/ragEval.json +1 -1
- package/locales/zh-CN/setting.json +1 -1
- package/locales/zh-CN/thread.json +1 -1
- package/locales/zh-CN/tool.json +1 -1
- package/locales/zh-CN/topic.json +1 -1
- package/locales/zh-CN/welcome.json +1 -1
- package/locales/zh-TW/modelProvider.json +5 -0
- package/package.json +1 -1
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ModelItem.tsx +67 -61
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ModelTitle/index.tsx +37 -10
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ProviderSettingsContext.ts +9 -0
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/index.tsx +27 -17
- package/src/config/aiModels/cloudflare.ts +1 -1
- package/src/config/aiModels/huggingface.ts +10 -1
- package/src/config/modelProviders/cloudflare.ts +1 -1
- package/src/config/modelProviders/huggingface.ts +6 -1
- package/src/config/modelProviders/spark.ts +2 -0
- package/src/const/version.ts +1 -2
- package/src/database/server/models/aiModel.ts +6 -0
- package/src/locales/default/modelProvider.ts +5 -0
- package/src/server/routers/lambda/aiModel.ts +5 -0
- package/src/services/aiModel/client.ts +4 -0
- package/src/services/aiModel/server.ts +4 -0
- package/src/services/aiModel/type.ts +2 -0
- package/src/store/aiInfra/slices/aiModel/action.ts +5 -0
- package/src/types/aiProvider.ts +7 -1
@@ -57,9 +57,18 @@ const huggingfaceChatModels: AIChatModelCard[] = [
|
|
57
57
|
reasoning: true,
|
58
58
|
},
|
59
59
|
contextWindowTokens: 16_384,
|
60
|
+
displayName: 'DeepSeek R1 (Distill Qwen 32B)',
|
61
|
+
id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B',
|
62
|
+
type: 'chat',
|
63
|
+
},
|
64
|
+
{
|
65
|
+
abilities: {
|
66
|
+
reasoning: true,
|
67
|
+
},
|
68
|
+
contextWindowTokens: 128_000,
|
60
69
|
displayName: 'DeepSeek R1',
|
61
70
|
enabled: true,
|
62
|
-
id: 'deepseek-ai/DeepSeek-R1
|
71
|
+
id: 'deepseek-ai/DeepSeek-R1',
|
63
72
|
type: 'chat',
|
64
73
|
},
|
65
74
|
];
|
@@ -6,7 +6,7 @@ const Cloudflare: ModelProviderCard = {
|
|
6
6
|
chatModels: [
|
7
7
|
{
|
8
8
|
contextWindowTokens: 16_384,
|
9
|
-
displayName: 'DeepSeek R1 Distill Qwen 32B',
|
9
|
+
displayName: 'DeepSeek R1 (Distill Qwen 32B)',
|
10
10
|
enabled: true,
|
11
11
|
id: '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b',
|
12
12
|
},
|
@@ -45,9 +45,14 @@ const HuggingFace: ModelProviderCard = {
|
|
45
45
|
},
|
46
46
|
{
|
47
47
|
contextWindowTokens: 16_384,
|
48
|
+
displayName: 'DeepSeek R1 (Distill Qwen 32B)',
|
49
|
+
id: 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B',
|
50
|
+
},
|
51
|
+
{
|
52
|
+
contextWindowTokens: 128_000,
|
48
53
|
displayName: 'DeepSeek R1',
|
49
54
|
enabled: true,
|
50
|
-
id: 'deepseek-ai/DeepSeek-R1
|
55
|
+
id: 'deepseek-ai/DeepSeek-R1',
|
51
56
|
},
|
52
57
|
],
|
53
58
|
checkModel: 'mistralai/Mistral-7B-Instruct-v0.2',
|
package/src/const/version.ts
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
import pkg from '@/../package.json';
|
2
|
-
import { getServerDBConfig } from '@/config/db';
|
3
2
|
|
4
3
|
import { BRANDING_NAME, ORG_NAME } from './branding';
|
5
4
|
|
6
5
|
export const CURRENT_VERSION = pkg.version;
|
7
6
|
|
8
|
-
export const isServerMode =
|
7
|
+
export const isServerMode = process.env.NEXT_PUBLIC_SERVICE_MODE === 'server';
|
9
8
|
export const isUsePgliteDB = process.env.NEXT_PUBLIC_CLIENT_DB === 'pglite';
|
10
9
|
|
11
10
|
export const isDeprecatedEdition = !isServerMode && !isUsePgliteDB;
|
@@ -197,6 +197,12 @@ export class AiModelModel {
|
|
197
197
|
);
|
198
198
|
}
|
199
199
|
|
200
|
+
clearModelsByProvider(providerId: string) {
|
201
|
+
return this.db
|
202
|
+
.delete(aiModels)
|
203
|
+
.where(and(eq(aiModels.providerId, providerId), eq(aiModels.userId, this.userId)));
|
204
|
+
}
|
205
|
+
|
200
206
|
updateModelsOrder = async (providerId: string, sortMap: AiModelSortMap[]) => {
|
201
207
|
await this.db.transaction(async (tx) => {
|
202
208
|
const updates = sortMap.map(({ id, sort }) => {
|
@@ -278,6 +278,11 @@ export default {
|
|
278
278
|
latestTime: '上次更新时间:{{time}}',
|
279
279
|
noLatestTime: '暂未获取列表',
|
280
280
|
},
|
281
|
+
resetAll: {
|
282
|
+
conform: '确认重置当前模型的所有修改?重置后当前模型列表将会回到默认状态',
|
283
|
+
success: '重置成功',
|
284
|
+
title: '重置所有修改',
|
285
|
+
},
|
281
286
|
search: '搜索模型...',
|
282
287
|
searchResult: '搜索到 {{count}} 个模型',
|
283
288
|
title: '模型列表',
|
@@ -59,6 +59,11 @@ export const aiModelRouter = router({
|
|
59
59
|
return ctx.aiModelModel.batchUpdateAiModels(input.id, input.models);
|
60
60
|
}),
|
61
61
|
|
62
|
+
clearModelsByProvider: aiModelProcedure
|
63
|
+
.input(z.object({ providerId: z.string() }))
|
64
|
+
.mutation(async ({ input, ctx }) => {
|
65
|
+
return ctx.aiModelModel.clearModelsByProvider(input.providerId);
|
66
|
+
}),
|
62
67
|
clearRemoteModels: aiModelProcedure
|
63
68
|
.input(z.object({ providerId: z.string() }))
|
64
69
|
.mutation(async ({ input, ctx }) => {
|
@@ -47,6 +47,10 @@ export class ClientService extends BaseClientService implements IAiModelService
|
|
47
47
|
return this.aiModel.clearRemoteModels(providerId);
|
48
48
|
};
|
49
49
|
|
50
|
+
clearModelsByProvider: IAiModelService['clearModelsByProvider'] = async (providerId) => {
|
51
|
+
return this.aiModel.clearModelsByProvider(providerId);
|
52
|
+
};
|
53
|
+
|
50
54
|
updateAiModelOrder: IAiModelService['updateAiModelOrder'] = async (providerId, items) => {
|
51
55
|
return this.aiModel.updateModelsOrder(providerId, items);
|
52
56
|
};
|
@@ -30,6 +30,10 @@ export class ServerService implements IAiModelService {
|
|
30
30
|
return lambdaClient.aiModel.batchToggleAiModels.mutate({ enabled, id, models });
|
31
31
|
};
|
32
32
|
|
33
|
+
clearModelsByProvider: IAiModelService['clearModelsByProvider'] = async (providerId) => {
|
34
|
+
return lambdaClient.aiModel.clearModelsByProvider.mutate({ providerId });
|
35
|
+
};
|
36
|
+
|
33
37
|
clearRemoteModels: IAiModelService['clearRemoteModels'] = async (providerId) => {
|
34
38
|
return lambdaClient.aiModel.clearRemoteModels.mutate({ providerId });
|
35
39
|
};
|
@@ -24,6 +24,8 @@ export interface IAiModelService {
|
|
24
24
|
|
25
25
|
clearRemoteModels: (providerId: string) => Promise<any>;
|
26
26
|
|
27
|
+
clearModelsByProvider: (providerId: string) => Promise<any>;
|
28
|
+
|
27
29
|
updateAiModelOrder: (providerId: string, items: AiModelSortMap[]) => Promise<any>;
|
28
30
|
|
29
31
|
deleteAiModel: (params: { id: string; providerId: string }) => Promise<any>;
|
@@ -17,6 +17,7 @@ const FETCH_AI_PROVIDER_MODEL_LIST_KEY = 'FETCH_AI_PROVIDER_MODELS';
|
|
17
17
|
export interface AiModelAction {
|
18
18
|
batchToggleAiModels: (ids: string[], enabled: boolean) => Promise<void>;
|
19
19
|
batchUpdateAiModels: (models: AiProviderModelListItem[]) => Promise<void>;
|
20
|
+
clearModelsByProvider: (provider: string) => Promise<void>;
|
20
21
|
clearRemoteModels: (provider: string) => Promise<void>;
|
21
22
|
createNewAiModel: (params: CreateAiModelParams) => Promise<void>;
|
22
23
|
fetchRemoteModelList: (providerId: string) => Promise<void>;
|
@@ -55,6 +56,10 @@ export const createAiModelSlice: StateCreator<
|
|
55
56
|
await aiModelService.batchUpdateAiModels(id, models);
|
56
57
|
await get().refreshAiModelList();
|
57
58
|
},
|
59
|
+
clearModelsByProvider: async (provider) => {
|
60
|
+
await aiModelService.clearModelsByProvider(provider);
|
61
|
+
await get().refreshAiModelList();
|
62
|
+
},
|
58
63
|
clearRemoteModels: async (provider) => {
|
59
64
|
await aiModelService.clearRemoteModels(provider);
|
60
65
|
await get().refreshAiModelList();
|
package/src/types/aiProvider.ts
CHANGED
@@ -72,6 +72,13 @@ export interface AiProviderSettings {
|
|
72
72
|
* @default false
|
73
73
|
*/
|
74
74
|
disableBrowserRequest?: boolean;
|
75
|
+
/**
|
76
|
+
* whether provider support edit model
|
77
|
+
*
|
78
|
+
* @default true
|
79
|
+
*/
|
80
|
+
modelEditable?: boolean;
|
81
|
+
|
75
82
|
proxyUrl?:
|
76
83
|
| {
|
77
84
|
desc?: string;
|
@@ -84,7 +91,6 @@ export interface AiProviderSettings {
|
|
84
91
|
* default openai
|
85
92
|
*/
|
86
93
|
sdkType?: AiProviderSDKType;
|
87
|
-
|
88
94
|
showAddNewModel?: boolean;
|
89
95
|
/**
|
90
96
|
* whether show api key in the provider config
|