diff --git a/CHANGELOG.md b/CHANGELOG.md index b2dfa36091280..1bd7f297f3817 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,64 @@ # Changelog +### [Version 1.47.17](https://github.com/lobehub/lobe-chat/compare/v1.47.16...v1.47.17) + +Released on **2025-01-22** + +#### 🐛 Bug Fixes + +- **misc**: Upgrade `react-i18next` to ^15. + +
+ +
+Improvements and Fixes + +#### What's fixed + +- **misc**: Upgrade `react-i18next` to ^15, closes [#5553](https://github.com/lobehub/lobe-chat/issues/5553) ([d0275fd](https://github.com/lobehub/lobe-chat/commit/d0275fd)) + +
+ +
+ +[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) + +
+ +### [Version 1.47.16](https://github.com/lobehub/lobe-chat/compare/v1.47.15...v1.47.16) + +Released on **2025-01-22** + +#### ♻ Code Refactoring + +- **misc**: Move hooks and component. + +#### 💄 Styles + +- **misc**: Add gemini new model. + +
+ +
+Improvements and Fixes + +#### Code refactoring + +- **misc**: Move hooks and component, closes [#5551](https://github.com/lobehub/lobe-chat/issues/5551) ([c5db091](https://github.com/lobehub/lobe-chat/commit/c5db091)) + +#### Styles + +- **misc**: Add gemini new model, closes [#5546](https://github.com/lobehub/lobe-chat/issues/5546) ([ebdd626](https://github.com/lobehub/lobe-chat/commit/ebdd626)) + +
+ +
+ +[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) + +
+ ### [Version 1.47.15](https://github.com/lobehub/lobe-chat/compare/v1.47.14...v1.47.15) Released on **2025-01-22** diff --git a/changelog/v1.json b/changelog/v1.json index 49775ce05df38..40b37fe95916e 100644 --- a/changelog/v1.json +++ b/changelog/v1.json @@ -1,4 +1,18 @@ [ + { + "children": { + "fixes": ["Upgrade react-i18next to ^15."] + }, + "date": "2025-01-22", + "version": "1.47.17" + }, + { + "children": { + "improvements": ["Add gemini new model."] + }, + "date": "2025-01-22", + "version": "1.47.16" + }, { "children": { "improvements": ["Improve discover model page."] diff --git a/package.json b/package.json index 4c643bd0a89ff..72f3ad8cbfb17 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lobehub/chat", - "version": "1.47.15", + "version": "1.47.17", "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.", "keywords": [ "framework", @@ -202,7 +202,7 @@ "react-dom": "^19.0.0", "react-fast-marquee": "^1.6.5", "react-hotkeys-hook": "^4.6.1", - "react-i18next": "14.0.2", + "react-i18next": "^15.4.0", "react-layout-kit": "^1.9.1", "react-lazy-load": "^4.0.1", "react-pdf": "^9.2.1", diff --git a/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx b/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx index 0bbeb17fa72a5..05de7c062cee6 100644 --- a/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx +++ b/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx @@ -4,11 +4,11 @@ import { memo } from 'react'; import { Flexbox } from 'react-layout-kit'; import ModelSwitchPanel from '@/features/ModelSwitchPanel'; +import PluginTag from '@/features/PluginTag'; import { useModelSupportToolUse } from '@/hooks/useModelSupportToolUse'; import { useAgentStore } from '@/store/agent'; import { agentSelectors } from '@/store/agent/selectors'; -import PluginTag from '../../../features/PluginTag'; import KnowledgeTag from './KnowledgeTag'; const TitleTags = memo(() => { diff --git a/src/app/(main)/chat/(workspace)/_layout/Mobile/TopicModal.tsx b/src/app/(main)/chat/(workspace)/_layout/Mobile/TopicModal.tsx index 65fcf5a708f93..fcbd8a3f1a186 100644 --- a/src/app/(main)/chat/(workspace)/_layout/Mobile/TopicModal.tsx +++ b/src/app/(main)/chat/(workspace)/_layout/Mobile/TopicModal.tsx @@ -5,11 +5,10 @@ import { PropsWithChildren, memo } from 'react'; import { useTranslation } from 'react-i18next'; import { useFetchTopics } from '@/hooks/useFetchTopics'; +import { useWorkspaceModal } from '@/hooks/useWorkspaceModal'; import { useGlobalStore } from '@/store/global'; import { systemStatusSelectors } from '@/store/global/selectors'; -import { useWorkspaceModal } from '../../features/useWorkspaceModal'; - const Topics = memo(({ children }: PropsWithChildren) => { const [showAgentSettings, toggleConfig] = useGlobalStore((s) => [ systemStatusSelectors.mobileShowTopic(s), diff --git a/src/app/(main)/chat/(workspace)/features/ShareButton/index.tsx b/src/app/(main)/chat/(workspace)/features/ShareButton/index.tsx index 5ee4dedffc25c..65b1b3d056b8c 100644 --- a/src/app/(main)/chat/(workspace)/features/ShareButton/index.tsx +++ b/src/app/(main)/chat/(workspace)/features/ShareButton/index.tsx @@ -7,10 +7,9 @@ import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { DESKTOP_HEADER_ICON_SIZE, MOBILE_HEADER_ICON_SIZE } from '@/const/layoutTokens'; +import { useWorkspaceModal } from '@/hooks/useWorkspaceModal'; import { useChatStore } from '@/store/chat'; -import { useWorkspaceModal } from '../useWorkspaceModal'; - const ShareModal = dynamic(() => import('@/features/ShareModal')); interface ShareButtonProps { diff --git a/src/config/aiModels/google.ts b/src/config/aiModels/google.ts index bf8b79b69abb0..39fc95746d5a3 100644 --- a/src/config/aiModels/google.ts +++ b/src/config/aiModels/google.ts @@ -1,6 +1,26 @@ import { AIChatModelCard } from '@/types/aiModel'; const googleChatModels: AIChatModelCard[] = [ + { + abilities: { + functionCall: true, + vision: true, + }, + contextWindowTokens: 1_048_576 + 65_536, + description: + 'Gemini 2.0 Flash Exp 是 Google 最新的实验性多模态AI模型,拥有下一代特性,卓越的速度,原生工具调用以及多模态生成。', + displayName: 'Gemini 2.0 Flash Thinking Experimental 01-21', + enabled: true, + id: 'gemini-2.0-flash-thinking-exp-01-21', + maxOutput: 65_536, + pricing: { + cachedInput: 0, + input: 0, + output: 0, + }, + releasedAt: '2025-01-21', + type: 'chat', + }, { abilities: { functionCall: true, @@ -10,7 +30,6 @@ const googleChatModels: AIChatModelCard[] = [ description: 'Gemini 2.0 Flash Exp 是 Google 最新的实验性多模态AI模型,拥有下一代特性,卓越的速度,原生工具调用以及多模态生成。', displayName: 'Gemini 2.0 Flash Thinking Experimental 1219', - enabled: true, id: 'gemini-2.0-flash-thinking-exp-1219', maxOutput: 8192, pricing: { diff --git a/src/config/modelProviders/google.ts b/src/config/modelProviders/google.ts index cc8673413a764..73452986b11fd 100644 --- a/src/config/modelProviders/google.ts +++ b/src/config/modelProviders/google.ts @@ -3,12 +3,28 @@ import { ModelProviderCard } from '@/types/llm'; // ref: https://ai.google.dev/gemini-api/docs/models/gemini const Google: ModelProviderCard = { chatModels: [ + { + contextWindowTokens: 1_048_576 + 65_536, + description: + 'Gemini 2.0 Flash Exp 是 Google 最新的实验性多模态AI模型,拥有下一代特性,卓越的速度,原生工具调用以及多模态生成。', + displayName: 'Gemini 2.0 Flash Thinking Experimental 01-21', + enabled: true, + functionCall: true, + id: 'gemini-2.0-flash-thinking-exp-01-21', + maxOutput: 65_536, + pricing: { + cachedInput: 0, + input: 0, + output: 0, + }, + releasedAt: '2025-01-21', + vision: true, + }, { contextWindowTokens: 32_767 + 8192, description: 'Gemini 2.0 Flash Exp 是 Google 最新的实验性多模态AI模型,拥有下一代特性,卓越的速度,原生工具调用以及多模态生成。', displayName: 'Gemini 2.0 Flash Thinking Experimental 1219', - enabled: true, functionCall: true, id: 'gemini-2.0-flash-thinking-exp-1219', maxOutput: 8192, diff --git a/src/features/ChatInput/ActionBar/Tools/Dropdown.tsx b/src/features/ChatInput/ActionBar/Tools/Dropdown.tsx index a40335248dce8..31971ed914ad5 100644 --- a/src/features/ChatInput/ActionBar/Tools/Dropdown.tsx +++ b/src/features/ChatInput/ActionBar/Tools/Dropdown.tsx @@ -8,10 +8,10 @@ import { PropsWithChildren, memo } from 'react'; import { useTranslation } from 'react-i18next'; import { Flexbox } from 'react-layout-kit'; -import { useWorkspaceModal } from '@/app/(main)/chat/(workspace)/features/useWorkspaceModal'; import PluginStore from '@/features/PluginStore'; import { useCheckPluginsIsInstalled } from '@/hooks/useCheckPluginsIsInstalled'; import { useFetchInstalledPlugins } from '@/hooks/useFetchInstalledPlugins'; +import { useWorkspaceModal } from '@/hooks/useWorkspaceModal'; import { useAgentStore } from '@/store/agent'; import { agentSelectors } from '@/store/agent/selectors'; import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig'; diff --git a/src/app/(main)/chat/(workspace)/features/PluginTag/PluginStatus.tsx b/src/features/PluginTag/PluginStatus.tsx similarity index 100% rename from src/app/(main)/chat/(workspace)/features/PluginTag/PluginStatus.tsx rename to src/features/PluginTag/PluginStatus.tsx diff --git a/src/app/(main)/chat/(workspace)/features/PluginTag/index.tsx b/src/features/PluginTag/index.tsx similarity index 100% rename from src/app/(main)/chat/(workspace)/features/PluginTag/index.tsx rename to src/features/PluginTag/index.tsx diff --git a/src/features/ShareModal/ShareImage/Preview.tsx b/src/features/ShareModal/ShareImage/Preview.tsx index 070b9f74af125..ac41c98d31ead 100644 --- a/src/features/ShareModal/ShareImage/Preview.tsx +++ b/src/features/ShareModal/ShareImage/Preview.tsx @@ -4,8 +4,8 @@ import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { Flexbox } from 'react-layout-kit'; -import PluginTag from '@/app/(main)/chat/(workspace)/features/PluginTag'; import { ProductLogo } from '@/components/Branding'; +import PluginTag from '@/features/PluginTag'; import { useAgentStore } from '@/store/agent'; import { agentSelectors } from '@/store/agent/selectors'; import { useSessionStore } from '@/store/session'; diff --git a/src/app/(main)/chat/(workspace)/features/useWorkspaceModal.tsx b/src/hooks/useWorkspaceModal.tsx similarity index 100% rename from src/app/(main)/chat/(workspace)/features/useWorkspaceModal.tsx rename to src/hooks/useWorkspaceModal.tsx