@lobehub/chat 1.42.2 → 1.42.4
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/CHANGELOG.md +42 -0
- package/README.ja-JP.md +6 -6
- package/README.md +6 -6
- package/README.zh-CN.md +7 -7
- package/changelog/v1.json +14 -0
- package/locales/ar/components.json +3 -0
- package/locales/ar/modelProvider.json +0 -16
- package/locales/ar/models.json +12 -0
- package/locales/ar/setting.json +1 -2
- package/locales/bg-BG/components.json +3 -0
- package/locales/bg-BG/modelProvider.json +0 -16
- package/locales/bg-BG/models.json +12 -0
- package/locales/bg-BG/setting.json +1 -2
- package/locales/de-DE/components.json +3 -0
- package/locales/de-DE/modelProvider.json +0 -16
- package/locales/de-DE/models.json +12 -0
- package/locales/de-DE/setting.json +1 -2
- package/locales/en-US/components.json +3 -0
- package/locales/en-US/modelProvider.json +0 -16
- package/locales/en-US/models.json +12 -0
- package/locales/en-US/setting.json +1 -2
- package/locales/es-ES/components.json +3 -0
- package/locales/es-ES/modelProvider.json +0 -16
- package/locales/es-ES/models.json +12 -0
- package/locales/es-ES/setting.json +1 -2
- package/locales/fa-IR/components.json +3 -0
- package/locales/fa-IR/modelProvider.json +0 -16
- package/locales/fa-IR/models.json +12 -0
- package/locales/fa-IR/setting.json +1 -2
- package/locales/fr-FR/components.json +3 -0
- package/locales/fr-FR/modelProvider.json +0 -16
- package/locales/fr-FR/models.json +12 -0
- package/locales/fr-FR/setting.json +1 -2
- package/locales/it-IT/components.json +3 -0
- package/locales/it-IT/modelProvider.json +0 -16
- package/locales/it-IT/models.json +12 -0
- package/locales/it-IT/setting.json +1 -2
- package/locales/ja-JP/components.json +3 -0
- package/locales/ja-JP/modelProvider.json +0 -16
- package/locales/ja-JP/models.json +12 -0
- package/locales/ja-JP/setting.json +1 -2
- package/locales/ko-KR/components.json +3 -0
- package/locales/ko-KR/modelProvider.json +0 -16
- package/locales/ko-KR/models.json +12 -0
- package/locales/ko-KR/setting.json +1 -2
- package/locales/nl-NL/components.json +3 -0
- package/locales/nl-NL/modelProvider.json +0 -16
- package/locales/nl-NL/models.json +12 -0
- package/locales/nl-NL/setting.json +1 -2
- package/locales/pl-PL/components.json +3 -0
- package/locales/pl-PL/modelProvider.json +0 -16
- package/locales/pl-PL/models.json +12 -0
- package/locales/pl-PL/setting.json +1 -2
- package/locales/pt-BR/components.json +3 -0
- package/locales/pt-BR/modelProvider.json +0 -16
- package/locales/pt-BR/models.json +12 -0
- package/locales/pt-BR/setting.json +1 -2
- package/locales/ru-RU/components.json +3 -0
- package/locales/ru-RU/modelProvider.json +0 -16
- package/locales/ru-RU/models.json +12 -0
- package/locales/ru-RU/setting.json +1 -2
- package/locales/tr-TR/components.json +3 -0
- package/locales/tr-TR/modelProvider.json +0 -16
- package/locales/tr-TR/models.json +12 -0
- package/locales/tr-TR/setting.json +1 -2
- package/locales/vi-VN/components.json +3 -0
- package/locales/vi-VN/modelProvider.json +0 -16
- package/locales/vi-VN/models.json +12 -0
- package/locales/vi-VN/setting.json +1 -2
- package/locales/zh-CN/common.json +1 -1
- package/locales/zh-CN/components.json +3 -0
- package/locales/zh-CN/modelProvider.json +0 -16
- package/locales/zh-CN/models.json +12 -0
- package/locales/zh-CN/providers.json +1 -1
- package/locales/zh-CN/setting.json +1 -2
- package/locales/zh-TW/components.json +3 -0
- package/locales/zh-TW/modelProvider.json +0 -16
- package/locales/zh-TW/models.json +12 -0
- package/locales/zh-TW/setting.json +1 -2
- package/package.json +3 -3
- package/src/app/(main)/settings/_layout/Desktop/SideBar.tsx +5 -1
- package/src/config/modelProviders/ai21.ts +4 -0
- package/src/config/modelProviders/ai360.ts +5 -0
- package/src/config/modelProviders/anthropic.ts +11 -0
- package/src/config/modelProviders/azure.ts +4 -0
- package/src/config/modelProviders/baichuan.ts +8 -0
- package/src/config/modelProviders/bedrock.ts +1 -0
- package/src/config/modelProviders/cloudflare.ts +5 -0
- package/src/config/modelProviders/deepseek.ts +4 -0
- package/src/config/modelProviders/fireworksai.ts +4 -0
- package/src/config/modelProviders/giteeai.ts +5 -0
- package/src/config/modelProviders/github.ts +6 -1
- package/src/config/modelProviders/google.ts +10 -0
- package/src/config/modelProviders/groq.ts +7 -0
- package/src/config/modelProviders/higress.ts +9 -0
- package/src/config/modelProviders/huggingface.ts +5 -0
- package/src/config/modelProviders/hunyuan.ts +5 -0
- package/src/config/modelProviders/internlm.ts +5 -0
- package/src/config/modelProviders/minimax.ts +7 -0
- package/src/config/modelProviders/mistral.ts +3 -0
- package/src/config/modelProviders/moonshot.ts +10 -0
- package/src/config/modelProviders/novita.ts +5 -0
- package/src/config/modelProviders/ollama.ts +6 -8
- package/src/config/modelProviders/openai.ts +5 -2
- package/src/config/modelProviders/openrouter.ts +5 -1
- package/src/config/modelProviders/perplexity.ts +6 -0
- package/src/config/modelProviders/qwen.ts +12 -0
- package/src/config/modelProviders/sensenova.ts +5 -0
- package/src/config/modelProviders/siliconcloud.ts +7 -0
- package/src/config/modelProviders/spark.ts +8 -0
- package/src/config/modelProviders/stepfun.ts +9 -0
- package/src/config/modelProviders/taichu.ts +4 -0
- package/src/config/modelProviders/togetherai.ts +4 -0
- package/src/config/modelProviders/upstage.ts +4 -0
- package/src/config/modelProviders/wenxin.ts +8 -0
- package/src/config/modelProviders/xai.ts +7 -0
- package/src/config/modelProviders/zeroone.ts +1 -0
- package/src/config/modelProviders/zhipu.ts +1 -0
- package/src/features/ModelSelect/index.tsx +6 -8
- package/src/features/ModelSwitchPanel/index.tsx +6 -8
- package/src/hooks/useEnabledChatModels.ts +9 -0
- package/src/store/user/slices/modelList/selectors/modelProvider.ts +13 -2
- package/src/types/aiModel.ts +15 -0
- package/src/types/aiProvider.ts +70 -16
- package/src/types/llm.ts +18 -3
package/src/types/aiProvider.ts
CHANGED
@@ -1,7 +1,32 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { AiModelSourceType, AiModelType, ModelAbilities } from '@/types/aiModel';
|
3
4
|
import { SmoothingParams } from '@/types/llm';
|
4
5
|
|
6
|
+
export const AiProviderSourceEnum = {
|
7
|
+
Builtin: 'builtin',
|
8
|
+
Custom: 'custom',
|
9
|
+
} as const;
|
10
|
+
export type AiProviderSourceType = (typeof AiProviderSourceEnum)[keyof typeof AiProviderSourceEnum];
|
11
|
+
|
12
|
+
/**
|
13
|
+
* only when provider use different sdk
|
14
|
+
* we will add a type
|
15
|
+
*/
|
16
|
+
export const AiProviderSDKEnum = {
|
17
|
+
Anthropic: 'anthropic',
|
18
|
+
Azure: 'azure',
|
19
|
+
Bedrock: 'bedrock',
|
20
|
+
Cloudflare: 'cloudflare',
|
21
|
+
Google: 'google',
|
22
|
+
Huggingface: 'huggingface',
|
23
|
+
Ollama: 'ollama',
|
24
|
+
Openai: 'openai',
|
25
|
+
Wenxin: 'wenxin',
|
26
|
+
} as const;
|
27
|
+
|
28
|
+
export type AiProviderSDKType = (typeof AiProviderSDKEnum)[keyof typeof AiProviderSDKEnum];
|
29
|
+
|
5
30
|
// create
|
6
31
|
export const CreateAiProviderSchema = z.object({
|
7
32
|
config: z.object({}).passthrough().optional(),
|
@@ -11,6 +36,7 @@ export const CreateAiProviderSchema = z.object({
|
|
11
36
|
logo: z.string().optional(),
|
12
37
|
name: z.string(),
|
13
38
|
sdkType: z.enum(['openai', 'anthropic']).optional(),
|
39
|
+
source: z.enum(['builtin', 'custom']),
|
14
40
|
// checkModel: z.string().optional(),
|
15
41
|
// homeUrl: z.string().optional(),
|
16
42
|
// modelsUrl: z.string().optional(),
|
@@ -27,12 +53,12 @@ export interface AiProviderListItem {
|
|
27
53
|
logo?: string;
|
28
54
|
name?: string;
|
29
55
|
sort?: number;
|
30
|
-
source:
|
56
|
+
source: AiProviderSourceType;
|
31
57
|
}
|
32
58
|
|
33
59
|
// Detail Query
|
34
60
|
|
35
|
-
interface
|
61
|
+
export interface AiProviderSettings {
|
36
62
|
/**
|
37
63
|
* whether provider show browser request option by default
|
38
64
|
*
|
@@ -54,12 +80,16 @@ interface AiProviderConfig {
|
|
54
80
|
}
|
55
81
|
| false;
|
56
82
|
|
83
|
+
/**
|
84
|
+
* default openai
|
85
|
+
*/
|
86
|
+
sdkType?: AiProviderSDKType;
|
87
|
+
|
57
88
|
/**
|
58
89
|
* whether show api key in the provider config
|
59
90
|
* so provider like ollama don't need api key field
|
60
91
|
*/
|
61
92
|
showApiKey?: boolean;
|
62
|
-
|
63
93
|
/**
|
64
94
|
* whether show checker in the provider config
|
65
95
|
*/
|
@@ -72,12 +102,12 @@ interface AiProviderConfig {
|
|
72
102
|
smoothing?: SmoothingParams;
|
73
103
|
}
|
74
104
|
|
75
|
-
export interface
|
105
|
+
export interface AiProviderCard {
|
76
106
|
/**
|
77
107
|
* the default model that used for connection check
|
78
108
|
*/
|
79
109
|
checkModel?: string;
|
80
|
-
config:
|
110
|
+
config: AiProviderSettings;
|
81
111
|
description?: string;
|
82
112
|
enabled: boolean;
|
83
113
|
enabledChatModels: string[];
|
@@ -95,11 +125,6 @@ export interface AiProviderItem {
|
|
95
125
|
* the name show for end user
|
96
126
|
*/
|
97
127
|
name: string;
|
98
|
-
/**
|
99
|
-
* default openai
|
100
|
-
*/
|
101
|
-
sdkType?: 'openai' | 'anthropic';
|
102
|
-
source: 'builtin' | 'custom';
|
103
128
|
}
|
104
129
|
|
105
130
|
export interface AiProviderDetailItem {
|
@@ -107,7 +132,6 @@ export interface AiProviderDetailItem {
|
|
107
132
|
* the default model that used for connection check
|
108
133
|
*/
|
109
134
|
checkModel?: string;
|
110
|
-
config: AiProviderConfig;
|
111
135
|
description?: string;
|
112
136
|
enabled: boolean;
|
113
137
|
fetchOnClient?: boolean;
|
@@ -126,14 +150,21 @@ export interface AiProviderDetailItem {
|
|
126
150
|
* the name show for end user
|
127
151
|
*/
|
128
152
|
name: string;
|
129
|
-
|
130
|
-
|
131
|
-
*/
|
132
|
-
sdkType?: 'openai' | 'anthropic';
|
133
|
-
source: 'builtin' | 'custom';
|
153
|
+
settings: AiProviderSettings;
|
154
|
+
source: AiProviderSourceType;
|
134
155
|
}
|
135
156
|
|
136
157
|
// Update
|
158
|
+
export const UpdateAiProviderSchema = z.object({
|
159
|
+
config: z.object({}).passthrough().optional(),
|
160
|
+
description: z.string().optional(),
|
161
|
+
logo: z.string().optional(),
|
162
|
+
name: z.string(),
|
163
|
+
sdkType: z.enum(['openai', 'anthropic']).optional(),
|
164
|
+
});
|
165
|
+
|
166
|
+
export type UpdateAiProviderParams = z.infer<typeof UpdateAiProviderSchema>;
|
167
|
+
|
137
168
|
export const UpdateAiProviderConfigSchema = z.object({
|
138
169
|
checkModel: z.string().optional(),
|
139
170
|
fetchOnClient: z.boolean().optional(),
|
@@ -146,3 +177,26 @@ export interface AiProviderSortMap {
|
|
146
177
|
id: string;
|
147
178
|
sort: number;
|
148
179
|
}
|
180
|
+
|
181
|
+
// --------
|
182
|
+
|
183
|
+
export interface EnabledProvider {
|
184
|
+
id: string;
|
185
|
+
name?: string;
|
186
|
+
source: AiModelSourceType;
|
187
|
+
}
|
188
|
+
|
189
|
+
export interface EnabledAiModel {
|
190
|
+
abilities: ModelAbilities;
|
191
|
+
contextWindowTokens?: number;
|
192
|
+
displayName?: string;
|
193
|
+
id: string;
|
194
|
+
providerId: string;
|
195
|
+
type: AiModelType;
|
196
|
+
}
|
197
|
+
|
198
|
+
export interface AiProviderInitState {
|
199
|
+
enabledAiModels: EnabledAiModel[];
|
200
|
+
enabledAiProviders: EnabledProvider[];
|
201
|
+
keyVaults: Record<string, object>;
|
202
|
+
}
|
package/src/types/llm.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
|
3
3
|
import { ChatModelPricing } from '@/types/aiModel';
|
4
|
+
import { AiProviderSettings } from '@/types/aiProvider';
|
4
5
|
|
5
6
|
export type ModelPriceCurrency = 'CNY' | 'USD';
|
6
7
|
|
@@ -56,6 +57,9 @@ export interface SmoothingParams {
|
|
56
57
|
}
|
57
58
|
|
58
59
|
export interface ModelProviderCard {
|
60
|
+
/**
|
61
|
+
* @deprecated
|
62
|
+
*/
|
59
63
|
chatModels: ChatModelCard[];
|
60
64
|
/**
|
61
65
|
* the default model that used for connection check
|
@@ -63,7 +67,7 @@ export interface ModelProviderCard {
|
|
63
67
|
checkModel?: string;
|
64
68
|
/**
|
65
69
|
* whether provider show browser request option by default
|
66
|
-
*
|
70
|
+
* @deprecated
|
67
71
|
* @default false
|
68
72
|
*/
|
69
73
|
defaultShowBrowserRequest?: boolean;
|
@@ -71,7 +75,7 @@ export interface ModelProviderCard {
|
|
71
75
|
/**
|
72
76
|
* some provider server like stepfun and aliyun don't support browser request,
|
73
77
|
* So we should disable it
|
74
|
-
*
|
78
|
+
* @deprecated
|
75
79
|
* @default false
|
76
80
|
*/
|
77
81
|
disableBrowserRequest?: boolean;
|
@@ -80,6 +84,9 @@ export interface ModelProviderCard {
|
|
80
84
|
*/
|
81
85
|
enabled?: boolean;
|
82
86
|
id: string;
|
87
|
+
/**
|
88
|
+
* @deprecated
|
89
|
+
*/
|
83
90
|
modelList?: {
|
84
91
|
azureDeployName?: boolean;
|
85
92
|
notFoundContent?: ReactNode;
|
@@ -94,6 +101,9 @@ export interface ModelProviderCard {
|
|
94
101
|
* the name show for end user
|
95
102
|
*/
|
96
103
|
name: string;
|
104
|
+
/**
|
105
|
+
* @deprecated
|
106
|
+
*/
|
97
107
|
proxyUrl?:
|
98
108
|
| {
|
99
109
|
desc?: string;
|
@@ -102,20 +112,25 @@ export interface ModelProviderCard {
|
|
102
112
|
}
|
103
113
|
| false;
|
104
114
|
|
115
|
+
settings: AiProviderSettings;
|
105
116
|
/**
|
106
117
|
* whether show api key in the provider config
|
107
118
|
* so provider like ollama don't need api key field
|
119
|
+
* @deprecated
|
108
120
|
*/
|
109
121
|
showApiKey?: boolean;
|
122
|
+
|
110
123
|
/**
|
111
124
|
* whether show checker in the provider config
|
125
|
+
* @deprecated
|
112
126
|
*/
|
113
127
|
showChecker?: boolean;
|
128
|
+
|
114
129
|
/**
|
115
130
|
* whether to smoothing the output
|
131
|
+
* @deprecated
|
116
132
|
*/
|
117
133
|
smoothing?: SmoothingParams;
|
118
|
-
|
119
134
|
/**
|
120
135
|
* provider's website url
|
121
136
|
*/
|