@lobehub/chat 1.87.1 → 1.87.3

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/.env.desktop CHANGED
@@ -6,3 +6,4 @@ DATABASE_URL=postgresql://postgres@localhost:5432/postgres
6
6
  SEARCH_PROVIDERS=search1api
7
7
  NEXT_PUBLIC_SERVICE_MODE='server'
8
8
  NEXT_PUBLIC_IS_DESKTOP_APP=1
9
+ NEXT_PUBLIC_ENABLE_NEXT_AUTH=0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.87.3](https://github.com/lobehub/lobe-chat/compare/v1.87.2...v1.87.3)
6
+
7
+ <sup>Released on **2025-05-17**</sup>
8
+
9
+ #### ♻ Code Refactoring
10
+
11
+ - **misc**: Clean code with new antd api.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### Code refactoring
19
+
20
+ - **misc**: Clean code with new antd api, closes [#7870](https://github.com/lobehub/lobe-chat/issues/7870) ([c543884](https://github.com/lobehub/lobe-chat/commit/c543884))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ### [Version 1.87.2](https://github.com/lobehub/lobe-chat/compare/v1.87.1...v1.87.2)
31
+
32
+ <sup>Released on **2025-05-16**</sup>
33
+
34
+ #### 💄 Styles
35
+
36
+ - **misc**: Support Doubao 1.5 Thinking Vision Pro model.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### Styles
44
+
45
+ - **misc**: Support Doubao 1.5 Thinking Vision Pro model, closes [#7784](https://github.com/lobehub/lobe-chat/issues/7784) ([9cf0d6f](https://github.com/lobehub/lobe-chat/commit/9cf0d6f))
46
+
47
+ </details>
48
+
49
+ <div align="right">
50
+
51
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
52
+
53
+ </div>
54
+
5
55
  ### [Version 1.87.1](https://github.com/lobehub/lobe-chat/compare/v1.87.0...v1.87.1)
6
56
 
7
57
  <sup>Released on **2025-05-16**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,22 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "improvements": [
5
+ "Clean code with new antd api."
6
+ ]
7
+ },
8
+ "date": "2025-05-17",
9
+ "version": "1.87.3"
10
+ },
11
+ {
12
+ "children": {
13
+ "improvements": [
14
+ "Support Doubao 1.5 Thinking Vision Pro model."
15
+ ]
16
+ },
17
+ "date": "2025-05-16",
18
+ "version": "1.87.2"
19
+ },
2
20
  {
3
21
  "children": {
4
22
  "improvements": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.87.1",
3
+ "version": "1.87.3",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -170,7 +170,7 @@
170
170
  "@xterm/xterm": "^5.5.0",
171
171
  "ahooks": "^3.8.4",
172
172
  "ai": "^3.4.33",
173
- "antd": "^5.24.6",
173
+ "antd": "^5.25.1",
174
174
  "antd-style": "^3.7.1",
175
175
  "brotli-wasm": "^3.0.1",
176
176
  "chroma-js": "^3.1.2",
@@ -28,7 +28,7 @@ const CreateGroupModal = memo<CreateGroupModalProps>(
28
28
  <div onClick={(e) => e.stopPropagation()}>
29
29
  <Modal
30
30
  allowFullscreen
31
- destroyOnClose
31
+ destroyOnHidden
32
32
  okButtonProps={{ loading }}
33
33
  onCancel={(e) => {
34
34
  setInput('');
@@ -29,7 +29,7 @@ const RenameGroupModal = memo<RenameGroupModalProps>(({ id, open, onCancel }) =>
29
29
  return (
30
30
  <Modal
31
31
  allowFullscreen
32
- destroyOnClose
32
+ destroyOnHidden
33
33
  okButtonProps={{ loading }}
34
34
  onCancel={(e) => {
35
35
  setInput(group?.name ?? '');
@@ -3,6 +3,7 @@
3
3
  import { memo } from 'react';
4
4
 
5
5
  import PageTitle from '@/components/PageTitle';
6
+ import { withSuspense } from '@/components/withSuspense';
6
7
  import { useChatStore } from '@/store/chat';
7
8
  import { topicSelectors } from '@/store/chat/selectors';
8
9
  import { useSessionStore } from '@/store/session';
@@ -15,4 +16,4 @@ const Title = memo(() => {
15
16
  return <PageTitle title={[topicTitle, agentTitle].filter(Boolean).join(' · ')} />;
16
17
  });
17
18
 
18
- export default Title;
19
+ export default withSuspense(Title);
@@ -39,7 +39,7 @@ const ModelConfigModal = memo<ModelConfigModalProps>(({ showAzureDeployName, pro
39
39
 
40
40
  return (
41
41
  <Modal
42
- destroyOnClose
42
+ destroyOnHidden
43
43
  footer={[
44
44
  <Button key="cancel" onClick={closeModal}>
45
45
  {tc('cancel')}
@@ -30,7 +30,7 @@ const ModelConfigModal = memo<ModelConfigModalProps>(({ open, setOpen }) => {
30
30
 
31
31
  return (
32
32
  <Modal
33
- destroyOnClose
33
+ destroyOnHidden
34
34
  footer={[
35
35
  <Button key="cancel" onClick={closeModal}>
36
36
  {t('cancel', { ns: 'common' })}
@@ -32,7 +32,7 @@ const ModelConfigModal = memo<ModelConfigModalProps>(({ id, open, setOpen }) =>
32
32
 
33
33
  return (
34
34
  <Modal
35
- destroyOnClose
35
+ destroyOnHidden
36
36
  footer={[
37
37
  <Button key="cancel" onClick={closeModal}>
38
38
  {t('cancel')}
@@ -4,6 +4,32 @@ import { AIChatModelCard } from '@/types/aiModel';
4
4
  // pricing https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement
5
5
 
6
6
  const doubaoChatModels: AIChatModelCard[] = [
7
+ {
8
+ abilities: {
9
+ functionCall: true,
10
+ reasoning: true,
11
+ vision: true,
12
+ },
13
+ config: {
14
+ deploymentName: 'doubao-1-5-thinking-vision-pro-250428',
15
+ },
16
+ contextWindowTokens: 131_072,
17
+ description:
18
+ '全新视觉深度思考模型,具备更强的通用多模态理解和推理能力,在 59 个公开评测基准中的 37 个上取得 SOTA 表现。',
19
+ displayName: 'Doubao 1.5 Thinking Vision Pro',
20
+ enabled: true,
21
+ id: 'Doubao-1.5-thinking-vision-pro',
22
+ maxOutput: 16_000,
23
+ pricing: {
24
+ currency: 'CNY',
25
+ input: 3,
26
+ output: 9,
27
+ },
28
+ settings: {
29
+ extendParams: ['enableReasoning'],
30
+ },
31
+ type: 'chat',
32
+ },
7
33
  {
8
34
  abilities: {
9
35
  functionCall: true,
@@ -39,7 +65,6 @@ const doubaoChatModels: AIChatModelCard[] = [
39
65
  description:
40
66
  'Doubao-1.5全新深度思考模型 (m 版本自带原生多模态深度推理能力),在数学、编程、科学推理等专业领域及创意写作等通用任务中表现突出,在AIME 2024、Codeforces、GPQA等多项权威基准上达到或接近业界第一梯队水平。支持128k上下文窗口,16k输出。',
41
67
  displayName: 'Doubao 1.5 Thinking Pro M',
42
- enabled: true,
43
68
  id: 'Doubao-1.5-thinking-pro-m',
44
69
  maxOutput: 16_000,
45
70
  pricing: {
@@ -50,7 +50,32 @@ const CommonSTT = memo<{
50
50
 
51
51
  return (
52
52
  <Dropdown
53
- dropdownRender={
53
+ menu={{
54
+ activeKey: 'time',
55
+ items: [
56
+ {
57
+ key: 'title',
58
+ label: (
59
+ <Flexbox>
60
+ <div style={{ fontWeight: 'bolder' }}>{t('stt.action')}</div>
61
+ </Flexbox>
62
+ ),
63
+ },
64
+ {
65
+ key: 'time',
66
+ label: (
67
+ <Flexbox align={'center'} gap={8} horizontal>
68
+ <div className={styles.recording} />
69
+ {time > 0 ? formattedTime : t(isRecording ? 'stt.loading' : 'stt.prettifying')}
70
+ </Flexbox>
71
+ ),
72
+ },
73
+ ],
74
+ }}
75
+ onOpenChange={handleDropdownVisibleChange}
76
+ open={dropdownOpen || !!error || isRecording || isLoading}
77
+ placement={mobile ? 'topRight' : 'top'}
78
+ popupRender={
54
79
  error
55
80
  ? () => (
56
81
  <Alert
@@ -79,31 +104,6 @@ const CommonSTT = memo<{
79
104
  )
80
105
  : undefined
81
106
  }
82
- menu={{
83
- activeKey: 'time',
84
- items: [
85
- {
86
- key: 'title',
87
- label: (
88
- <Flexbox>
89
- <div style={{ fontWeight: 'bolder' }}>{t('stt.action')}</div>
90
- </Flexbox>
91
- ),
92
- },
93
- {
94
- key: 'time',
95
- label: (
96
- <Flexbox align={'center'} gap={8} horizontal>
97
- <div className={styles.recording} />
98
- {time > 0 ? formattedTime : t(isRecording ? 'stt.loading' : 'stt.prettifying')}
99
- </Flexbox>
100
- ),
101
- },
102
- ],
103
- }}
104
- onOpenChange={handleDropdownVisibleChange}
105
- open={dropdownOpen || !!error || isRecording || isLoading}
106
- placement={mobile ? 'topRight' : 'top'}
107
107
  trigger={['click']}
108
108
  >
109
109
  <ActionIcon
@@ -110,7 +110,7 @@ const DevModal = memo<DevModalProps>(
110
110
  >
111
111
  <Drawer
112
112
  containerMaxWidth={'auto'}
113
- destroyOnClose
113
+ destroyOnHidden
114
114
  footer={footer}
115
115
  height={'100vh'}
116
116
  onClose={(e) => {
@@ -3,6 +3,24 @@ import { LobeOpenAICompatibleFactory } from '../utils/openaiCompatibleFactory';
3
3
 
4
4
  export const LobeVolcengineAI = LobeOpenAICompatibleFactory({
5
5
  baseURL: 'https://ark.cn-beijing.volces.com/api/v3',
6
+ chatCompletion: {
7
+ handlePayload: (payload) => {
8
+ const { model, thinking, ...rest } = payload;
9
+
10
+ return {
11
+ ...rest,
12
+ model,
13
+ ...(['thinking-vision-pro'].some((keyword) => model.toLowerCase().includes(keyword))
14
+ ? {
15
+ thinking:
16
+ thinking !== undefined && thinking.type === 'enabled'
17
+ ? { type: 'enabled' }
18
+ : { type: 'disabled' },
19
+ }
20
+ : {}),
21
+ } as any;
22
+ },
23
+ },
6
24
  debug: {
7
25
  chatCompletion: () => process.env.DEBUG_VOLCENGINE_CHAT_COMPLETION === '1',
8
26
  },