@lobehub/chat 1.124.0 → 1.124.1

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.
Files changed (48) hide show
  1. package/.env.example +5 -0
  2. package/CHANGELOG.md +33 -0
  3. package/Dockerfile +2 -0
  4. package/Dockerfile.database +2 -0
  5. package/Dockerfile.pglite +2 -0
  6. package/changelog/v1.json +12 -0
  7. package/docs/self-hosting/environment-variables/model-provider.mdx +18 -0
  8. package/docs/self-hosting/environment-variables/model-provider.zh-CN.mdx +20 -0
  9. package/locales/ar/chat.json +2 -0
  10. package/locales/bg-BG/chat.json +2 -0
  11. package/locales/de-DE/chat.json +2 -0
  12. package/locales/en-US/chat.json +2 -0
  13. package/locales/es-ES/chat.json +2 -0
  14. package/locales/fa-IR/chat.json +2 -0
  15. package/locales/fr-FR/chat.json +2 -0
  16. package/locales/it-IT/chat.json +2 -0
  17. package/locales/ja-JP/chat.json +2 -0
  18. package/locales/ko-KR/chat.json +2 -0
  19. package/locales/nl-NL/chat.json +2 -0
  20. package/locales/pl-PL/chat.json +2 -0
  21. package/locales/pt-BR/chat.json +2 -0
  22. package/locales/ru-RU/chat.json +2 -0
  23. package/locales/tr-TR/chat.json +2 -0
  24. package/locales/vi-VN/chat.json +2 -0
  25. package/locales/zh-CN/chat.json +2 -0
  26. package/locales/zh-CN/modelProvider.json +1 -1
  27. package/locales/zh-TW/chat.json +2 -0
  28. package/package.json +1 -1
  29. package/packages/model-bank/src/aiModels/aihubmix.ts +38 -4
  30. package/packages/model-bank/src/aiModels/groq.ts +26 -8
  31. package/packages/model-bank/src/aiModels/hunyuan.ts +3 -3
  32. package/packages/model-bank/src/aiModels/modelscope.ts +13 -2
  33. package/packages/model-bank/src/aiModels/moonshot.ts +25 -5
  34. package/packages/model-bank/src/aiModels/novita.ts +40 -9
  35. package/packages/model-bank/src/aiModels/openrouter.ts +0 -13
  36. package/packages/model-bank/src/aiModels/qwen.ts +62 -1
  37. package/packages/model-bank/src/aiModels/siliconcloud.ts +20 -0
  38. package/packages/model-bank/src/aiModels/volcengine.ts +141 -15
  39. package/packages/model-runtime/src/newapi/index.test.ts +49 -42
  40. package/packages/model-runtime/src/newapi/index.ts +124 -143
  41. package/src/app/[variants]/(main)/settings/provider/(detail)/newapi/page.tsx +1 -1
  42. package/src/config/llm.ts +8 -0
  43. package/src/features/ChatInput/Desktop/index.tsx +16 -4
  44. package/src/locales/default/chat.ts +1 -0
  45. package/src/locales/default/modelProvider.ts +1 -1
  46. package/src/store/chat/slices/aiChat/actions/__tests__/cancel-functionality.test.ts +107 -0
  47. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +352 -7
  48. package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +2 -1
@@ -2,6 +2,24 @@ import { AIChatModelCard } from '../types/aiModel';
2
2
 
3
3
  // https://novita.ai/pricing
4
4
  const novitaChatModels: AIChatModelCard[] = [
5
+ {
6
+ abilities: {
7
+ functionCall: true,
8
+ },
9
+ contextWindowTokens: 262_144,
10
+ description:
11
+ 'kimi-k2-0905-preview 模型上下文长度为 256k,具备更强的 Agentic Coding 能力、更突出的前端代码的美观度和实用性、以及更好的上下文理解能力。',
12
+ displayName: 'Kimi K2 0905',
13
+ id: 'moonshotai/kimi-k2-0905',
14
+ pricing: {
15
+ units: [
16
+ { name: 'textInput', rate: 0.6, strategy: 'fixed', unit: 'millionTokens' },
17
+ { name: 'textOutput', rate: 2.5, strategy: 'fixed', unit: 'millionTokens' },
18
+ ],
19
+ },
20
+ releasedAt: '2025-09-05',
21
+ type: 'chat',
22
+ },
5
23
  {
6
24
  abilities: {
7
25
  functionCall: true,
@@ -9,11 +27,12 @@ const novitaChatModels: AIChatModelCard[] = [
9
27
  },
10
28
  contextWindowTokens: 163_840,
11
29
  displayName: 'DeepSeek V3.1',
30
+ enabled: true,
12
31
  id: 'deepseek/deepseek-v3.1',
13
32
  pricing: {
14
33
  units: [
15
- { name: 'textInput', rate: 0.55, strategy: 'fixed', unit: 'millionTokens' },
16
- { name: 'textOutput', rate: 1.66, strategy: 'fixed', unit: 'millionTokens' },
34
+ { name: 'textInput', rate: 0.27, strategy: 'fixed', unit: 'millionTokens' },
35
+ { name: 'textOutput', rate: 1, strategy: 'fixed', unit: 'millionTokens' },
17
36
  ],
18
37
  },
19
38
  type: 'chat',
@@ -128,10 +147,10 @@ const novitaChatModels: AIChatModelCard[] = [
128
147
  },
129
148
  {
130
149
  abilities: {
131
- reasoning: true,
150
+ functionCall: true,
132
151
  },
133
152
  contextWindowTokens: 131_072,
134
- displayName: 'Kimi K2 Instruct',
153
+ displayName: 'Kimi K2 0711',
135
154
  id: 'moonshotai/kimi-k2-instruct',
136
155
  pricing: {
137
156
  units: [
@@ -286,12 +305,12 @@ const novitaChatModels: AIChatModelCard[] = [
286
305
  abilities: {
287
306
  reasoning: true,
288
307
  },
289
- contextWindowTokens: 40_960,
308
+ contextWindowTokens: 32_768,
290
309
  displayName: 'Qwen3 30B A3B FP8',
291
310
  id: 'qwen/qwen3-30b-a3b-fp8',
292
311
  pricing: {
293
312
  units: [
294
- { name: 'textInput', rate: 0.1, strategy: 'fixed', unit: 'millionTokens' },
313
+ { name: 'textInput', rate: 0.09, strategy: 'fixed', unit: 'millionTokens' },
295
314
  { name: 'textOutput', rate: 0.45, strategy: 'fixed', unit: 'millionTokens' },
296
315
  ],
297
316
  },
@@ -413,7 +432,7 @@ const novitaChatModels: AIChatModelCard[] = [
413
432
  type: 'chat',
414
433
  },
415
434
  {
416
- contextWindowTokens: 32_000,
435
+ contextWindowTokens: 32_768,
417
436
  description: 'Gemma 3 27B 是谷歌的一款开源语言模型,以其在效率和性能方面设立了新的标准。',
418
437
  displayName: 'Gemma 3 27B',
419
438
  id: 'google/gemma-3-27b-it',
@@ -425,6 +444,20 @@ const novitaChatModels: AIChatModelCard[] = [
425
444
  },
426
445
  type: 'chat',
427
446
  },
447
+ {
448
+ contextWindowTokens: 131_072,
449
+ description: 'Gemma 3 12B 是谷歌的一款开源语言模型,以其在效率和性能方面设立了新的标准。',
450
+ displayName: 'Gemma 3 12B',
451
+ id: 'google/gemma-3-12b-it',
452
+ maxOutput: 8192,
453
+ pricing: {
454
+ units: [
455
+ { name: 'textInput', rate: 0.05, strategy: 'fixed', unit: 'millionTokens' },
456
+ { name: 'textOutput', rate: 0.1, strategy: 'fixed', unit: 'millionTokens' },
457
+ ],
458
+ },
459
+ type: 'chat',
460
+ },
428
461
  {
429
462
  contextWindowTokens: 32_768,
430
463
  description: 'Gemma 3 1B 是谷歌的一款开源语言模型,以其在效率和性能方面设立了新的标准。',
@@ -549,7 +582,6 @@ const novitaChatModels: AIChatModelCard[] = [
549
582
  },
550
583
  contextWindowTokens: 163_840,
551
584
  displayName: 'Deepseek V3 0324',
552
- enabled: true,
553
585
  id: 'deepseek/deepseek-v3-0324',
554
586
  pricing: {
555
587
  units: [
@@ -566,7 +598,6 @@ const novitaChatModels: AIChatModelCard[] = [
566
598
  },
567
599
  contextWindowTokens: 163_840,
568
600
  displayName: 'Deepseek R1 0528',
569
- enabled: true,
570
601
  id: 'deepseek/deepseek-r1-0528',
571
602
  pricing: {
572
603
  units: [
@@ -50,19 +50,6 @@ const openrouterChatModels: AIChatModelCard[] = [
50
50
  releasedAt: '2025-08-26',
51
51
  type: 'chat',
52
52
  },
53
- {
54
- abilities: {
55
- imageOutput: true,
56
- vision: true,
57
- },
58
- contextWindowTokens: 32_768 + 8192,
59
- description: 'Gemini 2.5 Flash 实验模型,支持图像生成',
60
- displayName: 'Nano Banana (free)',
61
- id: 'google/gemini-2.5-flash-image-preview:free',
62
- maxOutput: 8192,
63
- releasedAt: '2025-08-26',
64
- type: 'chat',
65
- },
66
53
  {
67
54
  abilities: {
68
55
  functionCall: true,
@@ -601,6 +601,68 @@ const qwenChatModels: AIChatModelCard[] = [
601
601
  },
602
602
  type: 'chat',
603
603
  },
604
+ {
605
+ abilities: {
606
+ functionCall: true,
607
+ },
608
+ config: {
609
+ deploymentName: 'qwen3-max-preview',
610
+ },
611
+ contextWindowTokens: 262_144,
612
+ description:
613
+ '通义千问3系列Max模型Preview版本,相较2.5系列整体通用能力有大幅度提升,中英文通用文本理解能力、复杂指令遵循能力、主观开放任务能力、多语言能力、工具调用能力均显著增强;模型知识幻觉更少。',
614
+ displayName: 'Qwen3 Max Preview',
615
+ enabled: true,
616
+ id: 'qwen3-max-preview',
617
+ maxOutput: 32_768,
618
+ organization: 'Qwen',
619
+ pricing: {
620
+ currency: 'CNY',
621
+ units: [
622
+ {
623
+ lookup: {
624
+ prices: {
625
+ '[0, 32_000]': 6 * 0.2,
626
+ '[32_000, 128_000]': 10 * 0.2,
627
+ '[128_000, infinity]': 15 * 0.2,
628
+ },
629
+ pricingParams: ['textInputRange'],
630
+ },
631
+ name: 'textInput_cacheRead',
632
+ strategy: 'lookup',
633
+ unit: 'millionTokens',
634
+ },
635
+ {
636
+ lookup: {
637
+ prices: {
638
+ '[0, 32_000]': 6,
639
+ '[32_000, 128_000]': 10,
640
+ '[128_000, infinity]': 15,
641
+ },
642
+ pricingParams: ['textInputRange'],
643
+ },
644
+ name: 'textInput',
645
+ strategy: 'lookup',
646
+ unit: 'millionTokens',
647
+ },
648
+ {
649
+ lookup: {
650
+ prices: {
651
+ '[0, 32_000]': 24,
652
+ '[32_000, 128_000]': 40,
653
+ '[128_000, infinity]': 60,
654
+ },
655
+ pricingParams: ['textInputRange'],
656
+ },
657
+ name: 'textOutput',
658
+ strategy: 'lookup',
659
+ unit: 'millionTokens',
660
+ },
661
+ ],
662
+ },
663
+ releasedAt: '2025-09-05',
664
+ type: 'chat',
665
+ },
604
666
  {
605
667
  abilities: {
606
668
  functionCall: true,
@@ -613,7 +675,6 @@ const qwenChatModels: AIChatModelCard[] = [
613
675
  description:
614
676
  '通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入,当前通义千问2.5产品版本背后的API模型。',
615
677
  displayName: 'Qwen Max',
616
- enabled: true,
617
678
  id: 'qwen-max',
618
679
  maxOutput: 8192,
619
680
  organization: 'Qwen',
@@ -47,6 +47,26 @@ const siliconcloudChatModels: AIChatModelCard[] = [
47
47
  },
48
48
  type: 'chat',
49
49
  },
50
+ {
51
+ abilities: {
52
+ functionCall: true,
53
+ reasoning: true,
54
+ },
55
+ contextWindowTokens: 256_000,
56
+ description:
57
+ 'Seed-OSS 是由字节跳动 Seed 团队开发的一系列开源大型语言模型,专为强大的长上下文处理、推理、智能体(agent)和通用能力而设计。该系列中的 Seed-OSS-36B-Instruct 是一个拥有 360 亿参数的指令微调模型,它原生支持超长上下文长度,使其能够一次性处理海量文档或复杂的代码库。该模型在推理、代码生成和智能体任务(如工具使用)方面进行了特别优化,同时保持了平衡且出色的通用能力。此模型的一大特色是“思考预算”(Thinking Budget)功能,允许用户根据需要灵活调整推理长度,从而在实际应用中有效提升推理效率。',
58
+ displayName: 'Seed OSS 36B Instruct',
59
+ id: 'ByteDance-Seed/Seed-OSS-36B-Instruct',
60
+ pricing: {
61
+ currency: 'CNY',
62
+ units: [
63
+ { name: 'textInput', rate: 1.5, strategy: 'fixed', unit: 'millionTokens' },
64
+ { name: 'textOutput', rate: 4, strategy: 'fixed', unit: 'millionTokens' },
65
+ ],
66
+ },
67
+ releasedAt: '2025-08-20',
68
+ type: 'chat',
69
+ },
50
70
  {
51
71
  abilities: {
52
72
  functionCall: true,
@@ -1,7 +1,6 @@
1
1
  import { AIChatModelCard, AIImageModelCard } from '../types/aiModel';
2
2
 
3
- // modelInfo https://www.volcengine.com/docs/82379/1330310
4
- // pricing https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement
3
+ // https://www.volcengine.com/docs/82379/1330310
5
4
 
6
5
  const doubaoChatModels: AIChatModelCard[] = [
7
6
  {
@@ -42,7 +41,6 @@ const doubaoChatModels: AIChatModelCard[] = [
42
41
  description:
43
42
  'Kimi-K2 是一款Moonshot AI推出的具备超强代码和 Agent 能力的 MoE 架构基础模型,总参数 1T,激活参数 32B。在通用知识推理、编程、数学、Agent 等主要类别的基准性能测试中,K2 模型的性能超过其他主流开源模型。',
44
43
  displayName: 'Kimi K2',
45
- enabled: true,
46
44
  id: 'kimi-k2',
47
45
  maxOutput: 16_384,
48
46
  pricing: {
@@ -61,7 +59,59 @@ const doubaoChatModels: AIChatModelCard[] = [
61
59
  vision: true,
62
60
  },
63
61
  config: {
64
- deploymentName: 'doubao-seed-1-6-thinking-250615',
62
+ deploymentName: 'doubao-seed-1-6-vision-250815',
63
+ },
64
+ contextWindowTokens: 256_000,
65
+ description:
66
+ 'Doubao-Seed-1.6-vision 视觉深度思考模型,在教育、图像审核、巡检与安防和AI 搜索问答等场景下展现出更强的通用多模态理解和推理能力。支持 256k 上下文窗口,输出长度支持最大 64k tokens。',
67
+ displayName: 'Doubao Seed 1.6 Vision',
68
+ id: 'doubao-seed-1.6-vision',
69
+ maxOutput: 32_000,
70
+ pricing: {
71
+ currency: 'CNY',
72
+ units: [
73
+ {
74
+ lookup: {
75
+ prices: {
76
+ '[0, 32_000]': 0.8,
77
+ '[32_000, 128_000]': 2.4,
78
+ '[128_000, infinity]': 4.8,
79
+ },
80
+ pricingParams: ['textInputRange'],
81
+ },
82
+ name: 'textInput',
83
+ strategy: 'lookup',
84
+ unit: 'millionTokens',
85
+ },
86
+ {
87
+ lookup: {
88
+ prices: {
89
+ '[0, 32_000]': 8,
90
+ '[32_000, 128_000]': 16,
91
+ '[128_000, infinity]': 24,
92
+ },
93
+ pricingParams: ['textInputRange'],
94
+ },
95
+ name: 'textOutput',
96
+ strategy: 'lookup',
97
+ unit: 'millionTokens',
98
+ },
99
+ { name: 'textInput_cacheRead', rate: 0.16, strategy: 'fixed', unit: 'millionTokens' },
100
+ ],
101
+ },
102
+ settings: {
103
+ extendParams: ['enableReasoning'],
104
+ },
105
+ type: 'chat',
106
+ },
107
+ {
108
+ abilities: {
109
+ functionCall: true,
110
+ reasoning: true,
111
+ vision: true,
112
+ },
113
+ config: {
114
+ deploymentName: 'doubao-seed-1-6-thinking-250715',
65
115
  },
66
116
  contextWindowTokens: 256_000,
67
117
  description:
@@ -69,12 +119,37 @@ const doubaoChatModels: AIChatModelCard[] = [
69
119
  displayName: 'Doubao Seed 1.6 Thinking',
70
120
  enabled: true,
71
121
  id: 'doubao-seed-1.6-thinking',
72
- maxOutput: 16_000,
122
+ maxOutput: 32_000,
73
123
  pricing: {
74
124
  currency: 'CNY',
75
125
  units: [
76
- { name: 'textInput', rate: 1.2, strategy: 'fixed', unit: 'millionTokens' },
77
- { name: 'textOutput', rate: 16, strategy: 'fixed', unit: 'millionTokens' },
126
+ {
127
+ lookup: {
128
+ prices: {
129
+ '[0, 32_000]': 0.8,
130
+ '[32_000, 128_000]': 1.2,
131
+ '[128_000, infinity]': 2.4,
132
+ },
133
+ pricingParams: ['textInputRange'],
134
+ },
135
+ name: 'textInput',
136
+ strategy: 'lookup',
137
+ unit: 'millionTokens',
138
+ },
139
+ {
140
+ lookup: {
141
+ prices: {
142
+ '[0, 32_000]': 8,
143
+ '[32_000, 128_000]': 16,
144
+ '[128_000, infinity]': 24,
145
+ },
146
+ pricingParams: ['textInputRange'],
147
+ },
148
+ name: 'textOutput',
149
+ strategy: 'lookup',
150
+ unit: 'millionTokens',
151
+ },
152
+ { name: 'textInput_cacheRead', rate: 0.16, strategy: 'fixed', unit: 'millionTokens' },
78
153
  ],
79
154
  },
80
155
  type: 'chat',
@@ -94,12 +169,38 @@ const doubaoChatModels: AIChatModelCard[] = [
94
169
  displayName: 'Doubao Seed 1.6',
95
170
  enabled: true,
96
171
  id: 'doubao-seed-1.6',
97
- maxOutput: 16_000,
172
+ maxOutput: 32_000,
98
173
  pricing: {
99
174
  currency: 'CNY',
100
175
  units: [
101
- { name: 'textInput', rate: 1.2, strategy: 'fixed', unit: 'millionTokens' },
102
- { name: 'textOutput', rate: 16, strategy: 'fixed', unit: 'millionTokens' },
176
+ {
177
+ lookup: {
178
+ prices: {
179
+ '[0, 32_000]': 0.8,
180
+ '[32_000, 128_000]': 1.2,
181
+ '[128_000, infinity]': 2.4,
182
+ },
183
+ pricingParams: ['textInputRange'],
184
+ },
185
+ name: 'textInput',
186
+ strategy: 'lookup',
187
+ unit: 'millionTokens',
188
+ },
189
+ {
190
+ lookup: {
191
+ prices: {
192
+ '[0, 32_000]_[0, 8192]': 2,
193
+ '[0, 32_000]_[8192, infinity]': 8,
194
+ '[32_000, 128_000]_[0, infinity]': 16,
195
+ '[128_000, infinity]_[0, infinity]': 24,
196
+ },
197
+ pricingParams: ['textInputRange', 'textOutputRange'],
198
+ },
199
+ name: 'textOutput',
200
+ strategy: 'lookup',
201
+ unit: 'millionTokens',
202
+ },
203
+ { name: 'textInput_cacheRead', rate: 0.16, strategy: 'fixed', unit: 'millionTokens' },
103
204
  ],
104
205
  },
105
206
  settings: {
@@ -114,7 +215,7 @@ const doubaoChatModels: AIChatModelCard[] = [
114
215
  vision: true,
115
216
  },
116
217
  config: {
117
- deploymentName: 'doubao-seed-1-6-flash-250615',
218
+ deploymentName: 'doubao-seed-1-6-flash-250828',
118
219
  },
119
220
  contextWindowTokens: 256_000,
120
221
  description:
@@ -122,12 +223,37 @@ const doubaoChatModels: AIChatModelCard[] = [
122
223
  displayName: 'Doubao Seed 1.6 Flash',
123
224
  enabled: true,
124
225
  id: 'doubao-seed-1.6-flash',
125
- maxOutput: 16_000,
226
+ maxOutput: 32_000,
126
227
  pricing: {
127
228
  currency: 'CNY',
128
229
  units: [
129
- { name: 'textInput', rate: 0.3, strategy: 'fixed', unit: 'millionTokens' },
130
- { name: 'textOutput', rate: 3, strategy: 'fixed', unit: 'millionTokens' },
230
+ {
231
+ lookup: {
232
+ prices: {
233
+ '[0, 32_000]': 0.15,
234
+ '[32_000, 128_000]': 0.3,
235
+ '[128_000, infinity]': 0.6,
236
+ },
237
+ pricingParams: ['textInputRange'],
238
+ },
239
+ name: 'textInput',
240
+ strategy: 'lookup',
241
+ unit: 'millionTokens',
242
+ },
243
+ {
244
+ lookup: {
245
+ prices: {
246
+ '[0, 32_000]': 1.5,
247
+ '[32_000, 128_000]': 3,
248
+ '[128_000, infinity]': 6,
249
+ },
250
+ pricingParams: ['textInputRange'],
251
+ },
252
+ name: 'textOutput',
253
+ strategy: 'lookup',
254
+ unit: 'millionTokens',
255
+ },
256
+ { name: 'textInput_cacheRead', rate: 0.03, strategy: 'fixed', unit: 'millionTokens' },
131
257
  ],
132
258
  },
133
259
  settings: {
@@ -235,7 +361,7 @@ const doubaoChatModels: AIChatModelCard[] = [
235
361
  ],
236
362
  },
237
363
  settings: {
238
- extendParams: ['enableReasoning'],
364
+ extendParams: ['thinking'],
239
365
  },
240
366
  type: 'chat',
241
367
  },