@lobehub/chat 1.62.11 → 1.63.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 (119) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/changelog/v1.json +24 -0
  3. package/locales/ar/chat.json +26 -0
  4. package/locales/ar/models.json +21 -0
  5. package/locales/bg-BG/chat.json +26 -0
  6. package/locales/bg-BG/models.json +21 -0
  7. package/locales/de-DE/chat.json +26 -0
  8. package/locales/de-DE/models.json +21 -0
  9. package/locales/en-US/chat.json +26 -0
  10. package/locales/en-US/models.json +21 -0
  11. package/locales/es-ES/chat.json +26 -0
  12. package/locales/es-ES/models.json +21 -0
  13. package/locales/fa-IR/chat.json +26 -0
  14. package/locales/fa-IR/models.json +21 -0
  15. package/locales/fr-FR/chat.json +26 -0
  16. package/locales/fr-FR/models.json +21 -0
  17. package/locales/it-IT/chat.json +26 -0
  18. package/locales/it-IT/models.json +21 -0
  19. package/locales/ja-JP/chat.json +26 -0
  20. package/locales/ja-JP/models.json +21 -0
  21. package/locales/ko-KR/chat.json +26 -0
  22. package/locales/ko-KR/models.json +21 -0
  23. package/locales/nl-NL/chat.json +26 -0
  24. package/locales/nl-NL/models.json +21 -0
  25. package/locales/pl-PL/chat.json +26 -0
  26. package/locales/pl-PL/models.json +21 -0
  27. package/locales/pt-BR/chat.json +26 -0
  28. package/locales/pt-BR/models.json +21 -0
  29. package/locales/ru-RU/chat.json +26 -0
  30. package/locales/ru-RU/models.json +21 -0
  31. package/locales/tr-TR/chat.json +26 -0
  32. package/locales/tr-TR/models.json +21 -0
  33. package/locales/vi-VN/chat.json +26 -0
  34. package/locales/vi-VN/models.json +21 -0
  35. package/locales/zh-CN/chat.json +27 -1
  36. package/locales/zh-CN/models.json +25 -4
  37. package/locales/zh-TW/chat.json +26 -0
  38. package/locales/zh-TW/models.json +21 -0
  39. package/package.json +2 -2
  40. package/src/app/(backend)/webapi/chat/groq/route.test.ts +29 -0
  41. package/src/app/(backend)/webapi/chat/groq/route.ts +21 -0
  42. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +1 -0
  43. package/src/config/aiModels/google.ts +8 -0
  44. package/src/config/aiModels/groq.ts +111 -95
  45. package/src/config/aiModels/hunyuan.ts +36 -4
  46. package/src/config/aiModels/internlm.ts +4 -5
  47. package/src/config/aiModels/jina.ts +3 -0
  48. package/src/config/aiModels/mistral.ts +35 -21
  49. package/src/config/aiModels/novita.ts +293 -32
  50. package/src/config/aiModels/perplexity.ts +14 -2
  51. package/src/config/aiModels/qwen.ts +91 -37
  52. package/src/config/aiModels/sensenova.ts +70 -17
  53. package/src/config/aiModels/siliconcloud.ts +5 -3
  54. package/src/config/aiModels/stepfun.ts +19 -0
  55. package/src/config/aiModels/taichu.ts +4 -2
  56. package/src/config/aiModels/upstage.ts +24 -11
  57. package/src/config/modelProviders/openrouter.ts +1 -0
  58. package/src/config/modelProviders/qwen.ts +2 -1
  59. package/src/const/settings/agent.ts +1 -0
  60. package/src/database/repositories/aiInfra/index.test.ts +2 -5
  61. package/src/database/repositories/aiInfra/index.ts +6 -2
  62. package/src/database/schemas/message.ts +2 -1
  63. package/src/database/server/models/aiModel.ts +1 -1
  64. package/src/database/server/models/aiProvider.ts +6 -1
  65. package/src/features/ChatInput/ActionBar/Model/ControlsForm.tsx +38 -0
  66. package/src/features/ChatInput/ActionBar/Model/ExtendControls.tsx +40 -0
  67. package/src/features/ChatInput/ActionBar/Model/index.tsx +132 -0
  68. package/src/features/ChatInput/ActionBar/Params/index.tsx +2 -2
  69. package/src/features/ChatInput/ActionBar/Search/ExaIcon.tsx +15 -0
  70. package/src/features/ChatInput/ActionBar/Search/ModelBuiltinSearch.tsx +68 -0
  71. package/src/features/ChatInput/ActionBar/Search/SwitchPanel.tsx +167 -0
  72. package/src/features/ChatInput/ActionBar/Search/index.tsx +74 -0
  73. package/src/features/ChatInput/ActionBar/config.ts +4 -2
  74. package/src/features/Conversation/Error/index.tsx +1 -6
  75. package/src/features/Conversation/Messages/Assistant/SearchGrounding.tsx +153 -0
  76. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/Debug.tsx +9 -6
  77. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/PluginResultJSON.tsx +14 -9
  78. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/Settings.tsx +1 -0
  79. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/index.tsx +2 -1
  80. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +4 -2
  81. package/src/features/Conversation/Messages/Assistant/Tool/Render/ErrorResponse.tsx +36 -0
  82. package/src/features/Conversation/{Error → Messages/Assistant/Tool/Render}/PluginSettings.tsx +1 -1
  83. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +7 -1
  84. package/src/features/Conversation/Messages/Assistant/index.tsx +7 -1
  85. package/src/features/ModelSelect/index.tsx +1 -1
  86. package/src/features/ModelSwitchPanel/index.tsx +2 -3
  87. package/src/hooks/useEnabledChatModels.ts +1 -1
  88. package/src/libs/agent-runtime/google/index.test.ts +142 -36
  89. package/src/libs/agent-runtime/google/index.ts +26 -51
  90. package/src/libs/agent-runtime/novita/__snapshots__/index.test.ts.snap +3 -3
  91. package/src/libs/agent-runtime/openrouter/__snapshots__/index.test.ts.snap +3 -3
  92. package/src/libs/agent-runtime/openrouter/index.ts +20 -20
  93. package/src/libs/agent-runtime/perplexity/index.test.ts +2 -2
  94. package/src/libs/agent-runtime/qwen/index.ts +38 -55
  95. package/src/libs/agent-runtime/types/chat.ts +6 -2
  96. package/src/libs/agent-runtime/utils/streams/google-ai.ts +29 -4
  97. package/src/libs/agent-runtime/utils/streams/openai.ts +1 -1
  98. package/src/libs/agent-runtime/utils/streams/protocol.ts +1 -1
  99. package/src/locales/default/chat.ts +28 -0
  100. package/src/services/chat.ts +10 -0
  101. package/src/services/session/_deprecated.ts +2 -1
  102. package/src/store/agent/slices/chat/__snapshots__/selectors.test.ts.snap +1 -0
  103. package/src/store/agent/slices/chat/selectors.ts +6 -0
  104. package/src/store/aiInfra/slices/aiModel/selectors.ts +36 -0
  105. package/src/store/aiInfra/slices/aiProvider/initialState.ts +2 -2
  106. package/src/store/aiInfra/slices/aiProvider/selectors.ts +14 -0
  107. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +15 -5
  108. package/src/store/chat/slices/message/action.ts +1 -1
  109. package/src/store/user/slices/modelList/selectors/modelProvider.ts +1 -1
  110. package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +1 -0
  111. package/src/types/agent/index.ts +4 -0
  112. package/src/types/aiModel.ts +35 -8
  113. package/src/types/aiProvider.ts +7 -10
  114. package/src/types/message/base.ts +2 -5
  115. package/src/types/message/chat.ts +5 -3
  116. package/src/types/openai/chat.ts +5 -0
  117. package/src/types/search.ts +29 -0
  118. package/src/utils/fetch/fetchSSE.ts +11 -11
  119. package/src/features/ChatInput/ActionBar/ModelSwitch.tsx +0 -20
@@ -6,11 +6,11 @@ import { ChatErrorType } from '@/types/fetch';
6
6
  import { SmoothingParams } from '@/types/llm';
7
7
  import {
8
8
  ChatMessageError,
9
- CitationItem,
10
9
  MessageToolCall,
11
10
  MessageToolCallChunk,
12
11
  MessageToolCallSchema,
13
12
  } from '@/types/message';
13
+ import { GroundingSearch } from '@/types/search';
14
14
 
15
15
  import { fetchEventSource } from './fetchEventSource';
16
16
  import { getMessageError } from './parseError';
@@ -21,7 +21,7 @@ type SSEFinishType = 'done' | 'error' | 'abort';
21
21
  export type OnFinishHandler = (
22
22
  text: string,
23
23
  context: {
24
- citations?: CitationItem[];
24
+ grounding?: GroundingSearch;
25
25
  observationId?: string | null;
26
26
  reasoning?: string;
27
27
  toolCalls?: MessageToolCall[];
@@ -40,9 +40,9 @@ export interface MessageReasoningChunk {
40
40
  type: 'reasoning';
41
41
  }
42
42
 
43
- export interface MessageCitationsChunk {
44
- citations: CitationItem[];
45
- type: 'citations';
43
+ export interface MessageGroundingChunk {
44
+ grounding: GroundingSearch;
45
+ type: 'grounding';
46
46
  }
47
47
 
48
48
  interface MessageToolCallsChunk {
@@ -57,7 +57,7 @@ export interface FetchSSEOptions {
57
57
  onErrorHandle?: (error: ChatMessageError) => void;
58
58
  onFinish?: OnFinishHandler;
59
59
  onMessageHandle?: (
60
- chunk: MessageTextChunk | MessageToolCallsChunk | MessageReasoningChunk | MessageCitationsChunk,
60
+ chunk: MessageTextChunk | MessageToolCallsChunk | MessageReasoningChunk | MessageGroundingChunk,
61
61
  ) => void;
62
62
  smoothing?: SmoothingParams | boolean;
63
63
  }
@@ -286,7 +286,7 @@ export const fetchSSE = async (url: string, options: RequestInit & FetchSSEOptio
286
286
  startSpeed: smoothingSpeed,
287
287
  });
288
288
 
289
- let citations: CitationItem[] | undefined = undefined;
289
+ let grounding: GroundingSearch | undefined = undefined;
290
290
  await fetchEventSource(url, {
291
291
  body: options.body,
292
292
  fetch: options?.fetcher,
@@ -359,9 +359,9 @@ export const fetchSSE = async (url: string, options: RequestInit & FetchSSEOptio
359
359
  break;
360
360
  }
361
361
 
362
- case 'citations': {
363
- citations = data;
364
- options.onMessageHandle?.({ citations: data, type: 'citations' });
362
+ case 'grounding': {
363
+ grounding = data;
364
+ options.onMessageHandle?.({ grounding: data, type: 'grounding' });
365
365
  break;
366
366
  }
367
367
 
@@ -434,7 +434,7 @@ export const fetchSSE = async (url: string, options: RequestInit & FetchSSEOptio
434
434
  }
435
435
 
436
436
  await options?.onFinish?.(output, {
437
- citations,
437
+ grounding,
438
438
  observationId,
439
439
  reasoning: !!thinking ? thinking : undefined,
440
440
  toolCalls,
@@ -1,20 +0,0 @@
1
- import { ActionIcon } from '@lobehub/ui';
2
- import { Brain } from 'lucide-react';
3
- import { memo } from 'react';
4
- import { useTranslation } from 'react-i18next';
5
-
6
- import ModelSwitchPanel from '@/features/ModelSwitchPanel';
7
-
8
- const ModelSwitch = memo(() => {
9
- const { t } = useTranslation('chat');
10
-
11
- return (
12
- <ModelSwitchPanel>
13
- <ActionIcon icon={Brain} placement={'bottom'} title={t('ModelSwitch.title')} />
14
- </ModelSwitchPanel>
15
- );
16
- });
17
-
18
- ModelSwitch.displayName = 'ModelSwitch';
19
-
20
- export default ModelSwitch;