@lobehub/chat 1.96.20 → 1.97.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.
- package/CHANGELOG.md +50 -0
- package/README.md +90 -32
- package/README.zh-CN.md +90 -34
- package/apps/desktop/package.json +1 -1
- package/apps/desktop/src/main/core/Browser.ts +2 -1
- package/apps/desktop/src/main/utils/next-electron-rsc.ts +15 -8
- package/changelog/v1.json +18 -0
- package/docs/usage/features/desktop.mdx +53 -0
- package/docs/usage/features/desktop.zh-CN.mdx +49 -0
- package/docs/usage/features/mcp-market.mdx +26 -0
- package/docs/usage/features/mcp-market.zh-CN.mdx +22 -0
- package/docs/usage/features/mcp.mdx +58 -0
- package/docs/usage/features/mcp.zh-CN.mdx +54 -0
- package/docs/usage/features/search.mdx +56 -0
- package/docs/usage/features/search.zh-CN.mdx +52 -0
- package/locales/ar/discover.json +452 -12
- package/locales/ar/metadata.json +4 -0
- package/locales/ar/plugin.json +89 -2
- package/locales/ar/setting.json +1 -0
- package/locales/bg-BG/discover.json +452 -12
- package/locales/bg-BG/metadata.json +4 -0
- package/locales/bg-BG/plugin.json +89 -2
- package/locales/bg-BG/setting.json +1 -0
- package/locales/de-DE/discover.json +452 -12
- package/locales/de-DE/metadata.json +4 -0
- package/locales/de-DE/plugin.json +89 -2
- package/locales/de-DE/setting.json +1 -0
- package/locales/en-US/discover.json +452 -12
- package/locales/en-US/metadata.json +4 -0
- package/locales/en-US/plugin.json +89 -2
- package/locales/en-US/setting.json +1 -0
- package/locales/es-ES/discover.json +452 -12
- package/locales/es-ES/metadata.json +4 -0
- package/locales/es-ES/plugin.json +89 -2
- package/locales/es-ES/setting.json +1 -0
- package/locales/fa-IR/discover.json +452 -12
- package/locales/fa-IR/metadata.json +4 -0
- package/locales/fa-IR/plugin.json +89 -2
- package/locales/fa-IR/setting.json +1 -0
- package/locales/fr-FR/discover.json +452 -12
- package/locales/fr-FR/metadata.json +4 -0
- package/locales/fr-FR/plugin.json +89 -2
- package/locales/fr-FR/setting.json +1 -0
- package/locales/it-IT/discover.json +452 -12
- package/locales/it-IT/metadata.json +4 -0
- package/locales/it-IT/plugin.json +89 -2
- package/locales/it-IT/setting.json +1 -0
- package/locales/ja-JP/discover.json +452 -12
- package/locales/ja-JP/metadata.json +4 -0
- package/locales/ja-JP/plugin.json +89 -2
- package/locales/ja-JP/setting.json +1 -0
- package/locales/ko-KR/discover.json +452 -12
- package/locales/ko-KR/metadata.json +4 -0
- package/locales/ko-KR/plugin.json +89 -2
- package/locales/ko-KR/setting.json +1 -0
- package/locales/nl-NL/discover.json +452 -12
- package/locales/nl-NL/metadata.json +4 -0
- package/locales/nl-NL/plugin.json +89 -2
- package/locales/nl-NL/setting.json +1 -0
- package/locales/pl-PL/discover.json +452 -12
- package/locales/pl-PL/metadata.json +4 -0
- package/locales/pl-PL/plugin.json +89 -2
- package/locales/pl-PL/setting.json +1 -0
- package/locales/pt-BR/discover.json +452 -12
- package/locales/pt-BR/metadata.json +4 -0
- package/locales/pt-BR/plugin.json +89 -2
- package/locales/pt-BR/setting.json +1 -0
- package/locales/ru-RU/discover.json +452 -12
- package/locales/ru-RU/metadata.json +4 -0
- package/locales/ru-RU/plugin.json +89 -2
- package/locales/ru-RU/setting.json +1 -0
- package/locales/tr-TR/discover.json +452 -12
- package/locales/tr-TR/metadata.json +4 -0
- package/locales/tr-TR/plugin.json +89 -2
- package/locales/tr-TR/setting.json +1 -0
- package/locales/vi-VN/discover.json +452 -12
- package/locales/vi-VN/metadata.json +4 -0
- package/locales/vi-VN/plugin.json +89 -2
- package/locales/vi-VN/setting.json +1 -0
- package/locales/zh-CN/discover.json +452 -12
- package/locales/zh-CN/metadata.json +8 -4
- package/locales/zh-CN/plugin.json +89 -2
- package/locales/zh-CN/setting.json +1 -0
- package/locales/zh-TW/discover.json +452 -12
- package/locales/zh-TW/metadata.json +4 -0
- package/locales/zh-TW/plugin.json +89 -2
- package/locales/zh-TW/setting.json +1 -0
- package/next.config.ts +70 -19
- package/package.json +7 -3
- package/scripts/buildSitemapIndex/index.ts +9 -4
- package/src/app/(backend)/trpc/async/[trpc]/route.ts +4 -2
- package/src/app/(backend)/trpc/lambda/[trpc]/route.ts +5 -0
- package/src/app/[variants]/(main)/_layout/Mobile/index.tsx +5 -4
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatList/WelcomeChatItem/InboxWelcome/AgentsSuggest.tsx +31 -45
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Desktop.tsx +8 -6
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/Header.tsx +3 -2
- package/src/app/[variants]/(main)/discover/(detail)/_layout/Mobile/index.tsx +5 -1
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Block.tsx +27 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Knowledge.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/KnowledgeItem.tsx +58 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/PluginItem.tsx +68 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/Plugins.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Capabilities/index.tsx +37 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Nav.tsx +121 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/TagList.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Overview/index.tsx +96 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/Related/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/TagList.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/SystemRole/index.tsx +54 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Details/index.tsx +49 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Header.tsx +176 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/AddAgent.tsx +22 -21
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/ActionButton/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/Item.tsx +57 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/Summary/index.tsx +38 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/TocList/index.tsx +77 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/features/Sidebar/index.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[...slugs]/loading.tsx +48 -0
- package/src/app/[variants]/(main)/discover/(detail)/{plugin/[slug] → assistant/[...slugs]}/page.tsx +39 -42
- package/src/app/[variants]/(main)/discover/(detail)/features/Breadcrumb.tsx +56 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/DetailLayout.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(detail)/features/MakedownRender.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/ShareButton.tsx +4 -3
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/Heading.tsx +108 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/index.tsx +92 -0
- package/src/app/[variants]/(main)/discover/(detail)/features/Toc/useToc.tsx +66 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/Client.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Related/index.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/Versions/index.tsx +76 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Details/index.tsx +59 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ActionButton/index.tsx +84 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ConnectionTypeAlert.tsx +35 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/Item.tsx +57 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/Related/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/ServerConfig.tsx +36 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/TocList/index.tsx +98 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/features/Sidebar/index.tsx +58 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/mcp/[slug]/page.tsx +103 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Nav.tsx +90 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/ProviderList/index.tsx +179 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Overview/index.tsx +22 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/ParameterItem.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/{ParameterList → Details/Parameter}/index.tsx +11 -11
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/Related/index.tsx +31 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Details/index.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Header.tsx +84 -59
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/ChatWithModel.tsx +92 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/ActionButton/index.tsx +32 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/Related/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/RelatedProviders/index.tsx +34 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Sidebar/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/page.tsx +22 -45
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/Client.tsx +40 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/DetailProvider.tsx +19 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Guide/index.tsx +25 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Nav.tsx +99 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/ModelList/index.tsx +142 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Overview/index.tsx +23 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/Related/index.tsx +22 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Details/index.tsx +47 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Header.tsx +99 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features → [...slugs]/features/Sidebar/ActionButton}/ProviderConfig.tsx +9 -14
- package/src/app/[variants]/(main)/discover/(detail)/provider/{[slug]/features/Actions.tsx → [...slugs]/features/Sidebar/ActionButton/index.tsx} +14 -18
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/Related/index.tsx +34 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/Item.tsx +60 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/RelatedModels/index.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/features/Sidebar/index.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(detail)/provider/[...slugs]/page.tsx +103 -0
- package/src/app/[variants]/(main)/discover/(list)/(home)/Client.tsx +24 -21
- package/src/app/[variants]/(main)/discover/(list)/(home)/loading.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(list)/(home)/page.tsx +13 -38
- package/src/app/[variants]/(main)/discover/(list)/_layout/Desktop/Nav.tsx +15 -8
- package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Header.tsx +1 -1
- package/src/app/[variants]/(main)/discover/(list)/_layout/Mobile/Nav.tsx +2 -1
- package/src/app/[variants]/(main)/discover/(list)/assistant/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/index.tsx +84 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/Category/useCategory.tsx +112 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/Item.tsx +189 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/TokenTag.tsx +70 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/assistant/page.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +67 -0
- package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +184 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/Category/index.tsx +83 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/ConnectionTypeTag.tsx +51 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +225 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/MetaInfo.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/mcp/page.tsx +46 -0
- package/src/app/[variants]/(main)/discover/(list)/model/Client.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Desktop.tsx +1 -7
- package/src/app/[variants]/(main)/discover/(list)/model/features/Category/index.tsx +82 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/Category/useCategory.tsx +41 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +190 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/ModelTypeIcon.tsx +39 -0
- package/src/app/[variants]/(main)/discover/(list)/model/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/model/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(list)/model/page.tsx +44 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/Client.tsx +43 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +136 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/features/List/index.tsx +33 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/loading.tsx +1 -0
- package/src/app/[variants]/(main)/discover/(list)/provider/page.tsx +44 -0
- package/src/app/[variants]/(main)/discover/_layout/Desktop/Header.tsx +1 -1
- package/src/app/[variants]/(main)/discover/components/CategoryContainer.tsx +7 -5
- package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +28 -30
- package/src/app/[variants]/(main)/discover/components/ListLoading.tsx +56 -46
- package/src/app/[variants]/(main)/discover/components/Statistic.tsx +5 -6
- package/src/app/[variants]/(main)/discover/features/Search.tsx +62 -0
- package/src/app/[variants]/(main)/discover/features/Title.tsx +83 -0
- package/src/app/[variants]/(main)/discover/features/__tests__/calculateScore.test.ts +185 -0
- package/src/app/[variants]/(main)/discover/features/useNav.tsx +32 -12
- package/src/app/robots.tsx +7 -5
- package/src/app/sitemap.tsx +81 -13
- package/src/components/CopyableLabel/index.tsx +37 -0
- package/src/components/Descriptions/index.tsx +119 -0
- package/src/components/InlineTable/index.tsx +69 -0
- package/src/{features/PluginSettings/PluginSettingRender.tsx → components/JSONSchemaConfig/ItemRender.tsx} +3 -3
- package/src/components/MCPDepsIcon/Java.tsx +23 -0
- package/src/components/MCPDepsIcon/PowerShell.tsx +23 -0
- package/src/components/MCPDepsIcon/Terminal.tsx +23 -0
- package/src/components/MCPDepsIcon/UV.tsx +23 -0
- package/src/components/MCPDepsIcon/index.tsx +72 -0
- package/src/components/MCPStdioCommandInput/index.tsx +47 -0
- package/src/components/OfficialIcon.tsx +23 -0
- package/src/components/Plugins/MCPTag.tsx +18 -0
- package/src/components/Plugins/PluginTag.tsx +50 -0
- package/src/components/PublishedTime.tsx +71 -0
- package/src/config/__tests__/app.test.ts +6 -2
- package/src/const/discover.ts +8 -34
- package/src/database/models/message.ts +1 -0
- package/src/database/models/plugin.ts +13 -3
- package/src/database/schemas/relations.ts +44 -0
- package/src/envs/app.ts +1 -1
- package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
- package/src/features/ChatInput/ActionBar/Tools/ToolItem.tsx +1 -1
- package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +5 -5
- package/src/features/Conversation/Messages/Assistant/Tool/Inspector/index.tsx +25 -11
- package/src/features/MCP/MCPInstallProgress/InstallError/ErrorDetails.tsx +110 -0
- package/src/features/MCP/MCPInstallProgress/InstallError/index.tsx +51 -0
- package/src/features/MCP/MCPInstallProgress/MCPConfigForm.tsx +151 -0
- package/src/features/MCP/MCPInstallProgress/MCPDependenciesGuide.tsx +217 -0
- package/src/features/MCP/MCPInstallProgress/index.tsx +118 -0
- package/src/features/MCP/Scores.tsx +268 -0
- package/src/features/MCP/calculateScore.ts +324 -0
- package/src/features/MCP/useScoreList.ts +126 -0
- package/src/features/MCP/utils.ts +225 -0
- package/src/features/MCPPluginDetail/CollapseDesc.tsx +44 -0
- package/src/features/MCPPluginDetail/CollapseLayout.tsx +34 -0
- package/src/features/MCPPluginDetail/Deployment/Platform/index.tsx +47 -0
- package/src/features/MCPPluginDetail/Deployment/index.tsx +322 -0
- package/src/features/MCPPluginDetail/DetailProvider.tsx +19 -0
- package/src/features/MCPPluginDetail/Header.tsx +218 -0
- package/src/features/MCPPluginDetail/Nav.tsx +196 -0
- package/src/features/MCPPluginDetail/Overview/TagList.tsx +47 -0
- package/src/features/MCPPluginDetail/Overview/index.tsx +57 -0
- package/src/features/MCPPluginDetail/Schema/Block.tsx +50 -0
- package/src/features/MCPPluginDetail/Schema/Prompts.tsx +125 -0
- package/src/features/MCPPluginDetail/Schema/Resources.tsx +70 -0
- package/src/features/MCPPluginDetail/Schema/Tools.tsx +146 -0
- package/src/features/MCPPluginDetail/Schema/index.tsx +63 -0
- package/src/features/MCPPluginDetail/Schema/style.ts +9 -0
- package/src/features/MCPPluginDetail/Schema/types.ts +4 -0
- package/src/features/MCPPluginDetail/Score/GithubBadge/index.tsx +82 -0
- package/src/features/MCPPluginDetail/Score/ScoreItem.tsx +34 -0
- package/src/features/MCPPluginDetail/Score/ScoreList.tsx +24 -0
- package/src/features/MCPPluginDetail/Score/TotalScore.tsx +289 -0
- package/src/features/MCPPluginDetail/Score/index.tsx +88 -0
- package/src/features/PluginAvatar/index.tsx +1 -1
- package/src/features/PluginDetailModal/Meta.tsx +3 -4
- package/src/features/PluginDevModal/MCPManifestForm/MCPTypeSelect.tsx +3 -4
- package/src/features/PluginDevModal/MCPManifestForm/index.tsx +4 -41
- package/src/features/PluginDevModal/PluginPreview/EmptyState.tsx +5 -7
- package/src/features/PluginDevModal/PluginPreview/index.tsx +6 -6
- package/src/features/PluginSettings/index.tsx +2 -2
- package/src/features/PluginStore/AddPluginButton.tsx +1 -1
- package/src/features/PluginStore/Content.tsx +59 -0
- package/src/features/PluginStore/InstalledList/Detail/CustomPluginEmptyState.tsx +81 -0
- package/src/features/PluginStore/InstalledList/Detail/index.tsx +21 -0
- package/src/features/PluginStore/InstalledList/EditCustomPlugin.tsx +52 -0
- package/src/features/PluginStore/{PluginItem → InstalledList/List/Item}/Action.tsx +33 -13
- package/src/features/PluginStore/InstalledList/List/Item/index.tsx +62 -0
- package/src/features/PluginStore/InstalledList/List/index.tsx +77 -0
- package/src/features/PluginStore/InstalledList/index.tsx +85 -0
- package/src/features/PluginStore/Loading.tsx +2 -2
- package/src/features/PluginStore/McpList/Detail/Loading.tsx +44 -0
- package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +381 -0
- package/src/features/PluginStore/McpList/Detail/index.tsx +71 -0
- package/src/features/PluginStore/McpList/List/Action.tsx +94 -0
- package/src/features/PluginStore/McpList/List/Item.tsx +84 -0
- package/src/features/PluginStore/McpList/List/index.tsx +97 -0
- package/src/features/PluginStore/McpList/index.tsx +54 -0
- package/src/features/PluginStore/PluginList/Detail/DetailProvider.tsx +19 -0
- package/src/features/PluginStore/PluginList/Detail/EmptyState.tsx +58 -0
- package/src/features/PluginStore/PluginList/Detail/Header.tsx +132 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Nav.tsx +75 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Settings.tsx +19 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/Tools.tsx +109 -0
- package/src/features/PluginStore/PluginList/Detail/InstallDetail/index.tsx +24 -0
- package/src/features/PluginStore/PluginList/Detail/Loading.tsx +44 -0
- package/src/features/PluginStore/PluginList/Detail/TagList.tsx +37 -0
- package/src/features/PluginStore/PluginList/Detail/index.tsx +39 -0
- package/src/features/PluginStore/PluginList/Detail/useCategory.tsx +76 -0
- package/src/features/PluginStore/PluginList/List/Action.tsx +72 -0
- package/src/features/PluginStore/PluginList/List/Item.tsx +94 -0
- package/src/features/PluginStore/PluginList/List/index.tsx +91 -0
- package/src/features/PluginStore/PluginList/index.tsx +47 -0
- package/src/features/PluginStore/Search/index.tsx +29 -0
- package/src/features/PluginStore/VirtuosoLoading.tsx +16 -0
- package/src/features/PluginStore/index.tsx +7 -31
- package/src/features/PluginTag/index.tsx +6 -4
- package/src/hooks/useInterceptingRoutes.test.ts +6 -0
- package/src/hooks/useMCPCategory.tsx +133 -0
- package/src/hooks/useQuery.ts +8 -0
- package/src/hooks/useQueryRoute.test.ts +7 -0
- package/src/hooks/useQueryRoute.ts +5 -3
- package/src/layout/GlobalProvider/Locale.tsx +2 -1
- package/src/libs/mcp/client.ts +255 -11
- package/src/libs/mcp/types.ts +99 -0
- package/src/libs/trpc/client/desktop.ts +2 -3
- package/src/libs/trpc/lambda/context.ts +36 -5
- package/src/libs/trpc/lambda/index.ts +1 -1
- package/src/libs/trpc/lambda/init.ts +8 -1
- package/src/locales/create.ts +8 -3
- package/src/locales/default/discover.ts +457 -12
- package/src/locales/default/metadata.ts +9 -4
- package/src/locales/default/plugin.ts +89 -1
- package/src/locales/default/setting.ts +1 -0
- package/src/locales/resources.ts +1 -1
- package/src/middleware.ts +13 -3
- package/src/server/ld.ts +4 -3
- package/src/server/modules/AssistantStore/index.test.ts +10 -8
- package/src/server/modules/AssistantStore/index.ts +37 -17
- package/src/server/modules/PluginStore/index.test.ts +1 -1
- package/src/server/modules/PluginStore/index.ts +24 -1
- package/src/server/routers/async/caller.ts +2 -2
- package/src/server/routers/desktop/mcp.ts +36 -2
- package/src/server/routers/edge/index.ts +0 -6
- package/src/server/routers/{edge → lambda}/config/index.ts +1 -1
- package/src/server/routers/lambda/index.ts +4 -0
- package/src/server/routers/lambda/market/index.ts +621 -0
- package/src/server/routers/lambda/plugin.ts +2 -0
- package/src/server/routers/tools/mcp.ts +22 -0
- package/src/server/services/discover/index.test.ts +573 -250
- package/src/server/services/discover/index.ts +1096 -241
- package/src/server/services/mcp/deps/MCPSystemDepsCheckService.ts +238 -0
- package/src/server/services/mcp/deps/checkers/ManualInstallationChecker.ts +20 -0
- package/src/server/services/mcp/deps/checkers/NpmInstallationChecker.ts +51 -0
- package/src/server/services/mcp/deps/checkers/PythonInstallationChecker.ts +69 -0
- package/src/server/services/mcp/deps/index.ts +14 -0
- package/src/server/services/mcp/deps/types.ts +49 -0
- package/src/server/services/mcp/index.ts +251 -33
- package/src/server/sitemap.test.ts +203 -46
- package/src/server/sitemap.ts +159 -52
- package/src/services/__tests__/global.test.ts +4 -7
- package/src/services/__tests__/tool.test.ts +1 -29
- package/src/services/discover.ts +365 -0
- package/src/services/global.ts +3 -3
- package/src/services/mcp.ts +131 -10
- package/src/services/plugin/_deprecated.ts +1 -1
- package/src/services/plugin/type.ts +3 -1
- package/src/services/tool.ts +9 -6
- package/src/store/chat/slices/plugin/action.test.ts +2 -3
- package/src/store/chat/slices/plugin/action.ts +22 -4
- package/src/store/discover/index.ts +1 -0
- package/src/store/discover/slices/assistant/action.ts +73 -0
- package/src/store/discover/slices/assistant/index.ts +1 -0
- package/src/store/discover/slices/mcp/action.ts +70 -0
- package/src/store/discover/slices/mcp/index.ts +1 -0
- package/src/store/discover/slices/model/action.ts +70 -0
- package/src/store/discover/slices/model/index.ts +1 -0
- package/src/store/discover/slices/plugin/action.ts +76 -0
- package/src/store/discover/slices/plugin/index.ts +1 -0
- package/src/store/discover/slices/provider/action.ts +61 -0
- package/src/store/discover/slices/provider/index.ts +1 -0
- package/src/store/discover/store.ts +39 -0
- package/src/store/tool/initialState.ts +8 -2
- package/src/store/tool/selectors/index.ts +2 -1
- package/src/store/tool/selectors/tool.test.ts +3 -1
- package/src/store/tool/selectors/tool.ts +14 -2
- package/src/store/tool/slices/mcpStore/action.ts +496 -0
- package/src/store/tool/slices/mcpStore/initialState.ts +40 -0
- package/src/store/tool/slices/mcpStore/selectors.ts +62 -0
- package/src/store/tool/slices/{store → oldStore}/action.test.ts +24 -19
- package/src/store/tool/slices/oldStore/action.ts +269 -0
- package/src/store/tool/slices/oldStore/index.ts +3 -0
- package/src/store/tool/slices/oldStore/initialState.ts +54 -0
- package/src/store/tool/slices/{store → oldStore}/selectors.test.ts +6 -3
- package/src/store/tool/slices/{store → oldStore}/selectors.ts +18 -5
- package/src/store/tool/slices/plugin/action.test.ts +2 -1
- package/src/store/tool/slices/plugin/action.ts +22 -4
- package/src/store/tool/slices/plugin/selectors.test.ts +12 -4
- package/src/store/tool/slices/plugin/selectors.ts +20 -9
- package/src/store/tool/store.ts +5 -2
- package/src/types/discover/assistants.ts +72 -0
- package/src/types/discover/index.ts +41 -0
- package/src/types/discover/mcp.ts +59 -0
- package/src/types/discover/models.ts +51 -0
- package/src/types/discover/plugins.ts +52 -0
- package/src/types/discover/providers.ts +47 -0
- package/src/types/message/tools.ts +3 -0
- package/src/types/plugins/index.ts +53 -0
- package/src/types/plugins/mcp.ts +188 -0
- package/src/types/plugins/mcpDeps.ts +30 -0
- package/src/types/tool/index.ts +10 -0
- package/src/types/tool/plugin.ts +3 -2
- package/src/types/tool/tool.ts +4 -1
- package/src/utils/client/cookie.ts +5 -2
- package/src/utils/locale.ts +3 -3
- package/src/utils/object.ts +10 -0
- package/src/utils/server/pageProps.ts +9 -0
- package/src/utils/toolCall.ts +5 -1
- package/src/utils/toolManifest.ts +1 -2
- package/vercel.json +1 -1
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Actions.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/TopicList.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/ConversationExample/index.tsx +0 -105
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Header.tsx +0 -115
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -62
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/ToolItem.tsx +0 -19
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/InfoSidebar/index.tsx +0 -60
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/SystemRole.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/features/Temp.tsx +0 -44
- package/src/app/[variants]/(main)/discover/(detail)/assistant/[slug]/page.tsx +0 -124
- package/src/app/[variants]/(main)/discover/(detail)/loading.tsx +0 -38
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/Actions.tsx +0 -40
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ChatWithModel.tsx +0 -93
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/SuggestionItem.tsx +0 -74
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/ProviderItem.tsx +0 -139
- package/src/app/[variants]/(main)/discover/(detail)/model/[...slugs]/features/ProviderList/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Actions.tsx +0 -35
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Header.tsx +0 -119
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/InstallPlugin.tsx +0 -83
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/ParameterList.tsx +0 -95
- package/src/app/[variants]/(main)/discover/(detail)/plugin/[slug]/features/Schema.tsx +0 -23
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/Header.tsx +0 -73
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/SuggestionItem.tsx +0 -77
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/InfoSidebar/index.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/ModelItem.tsx +0 -152
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/features/ModelList/index.tsx +0 -60
- package/src/app/[variants]/(main)/discover/(detail)/provider/[slug]/page.tsx +0 -126
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/AssistantList.tsx +0 -33
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/ModelList.tsx +0 -19
- package/src/app/[variants]/(main)/discover/(list)/(home)/features/PluginList.tsx +0 -25
- package/src/app/[variants]/(main)/discover/(list)/assistants/[slug]/page.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/Card.tsx +0 -195
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/Category.tsx +0 -48
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/List.tsx +0 -98
- package/src/app/[variants]/(main)/discover/(list)/assistants/features/useCategory.tsx +0 -116
- package/src/app/[variants]/(main)/discover/(list)/assistants/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(list)/loading.tsx +0 -39
- package/src/app/[variants]/(main)/discover/(list)/models/[slug]/page.tsx +0 -78
- package/src/app/[variants]/(main)/discover/(list)/models/features/Card.tsx +0 -118
- package/src/app/[variants]/(main)/discover/(list)/models/features/Category.tsx +0 -67
- package/src/app/[variants]/(main)/discover/(list)/models/features/List.tsx +0 -71
- package/src/app/[variants]/(main)/discover/(list)/models/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(list)/models/page.tsx +0 -73
- package/src/app/[variants]/(main)/discover/(list)/plugins/[slug]/page.tsx +0 -75
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/Card.tsx +0 -161
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/Category.tsx +0 -45
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/List.tsx +0 -97
- package/src/app/[variants]/(main)/discover/(list)/plugins/features/useCategory.tsx +0 -80
- package/src/app/[variants]/(main)/discover/(list)/plugins/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/(list)/providers/features/Card.tsx +0 -119
- package/src/app/[variants]/(main)/discover/(list)/providers/features/List.tsx +0 -67
- package/src/app/[variants]/(main)/discover/(list)/providers/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/(list)/providers/page.tsx +0 -64
- package/src/app/[variants]/(main)/discover/features/StoreSearchBar.tsx +0 -87
- package/src/app/[variants]/(main)/discover/loading.tsx +0 -3
- package/src/app/[variants]/(main)/discover/search/_layout/Desktop.tsx +0 -42
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Header.tsx +0 -31
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/Nav.tsx +0 -56
- package/src/app/[variants]/(main)/discover/search/_layout/Mobile/index.tsx +0 -32
- package/src/app/[variants]/(main)/discover/search/features/AssistantsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/Category.tsx +0 -41
- package/src/app/[variants]/(main)/discover/search/features/ModelsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/PluginsResult.tsx +0 -27
- package/src/app/[variants]/(main)/discover/search/features/ProvidersResult.tsx +0 -26
- package/src/app/[variants]/(main)/discover/search/layout.tsx +0 -12
- package/src/app/[variants]/(main)/discover/search/loading.tsx +0 -1
- package/src/app/[variants]/(main)/discover/search/page.tsx +0 -82
- package/src/features/PluginStore/InstalledPluginList.tsx +0 -59
- package/src/features/PluginStore/OnlineList.tsx +0 -87
- package/src/features/PluginStore/PluginItem/EditCustomPlugin.tsx +0 -55
- package/src/features/PluginStore/PluginItem/PluginTag.tsx +0 -29
- package/src/features/PluginStore/PluginItem/index.tsx +0 -83
- package/src/server/routers/edge/market/index.ts +0 -108
- package/src/services/__tests__/assistant.test.ts +0 -87
- package/src/services/assistant.ts +0 -25
- package/src/store/tool/slices/store/action.ts +0 -113
- package/src/store/tool/slices/store/initialState.ts +0 -17
- package/src/types/discover.ts +0 -179
- package/src/types/requestCache.ts +0 -3
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Desktop.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/layout.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{assistants → assistant}/loading.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Desktop.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/layout.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{plugins → mcp}/loading.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/_layout/Mobile.tsx +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/features/const.ts +0 -0
- /package/src/app/[variants]/(main)/discover/(list)/{models → model}/layout.tsx +0 -0
- /package/src/{features/PluginStore/PluginItem → components/Plugins}/PluginAvatar.tsx +0 -0
- /package/src/server/routers/{edge → lambda}/config/__snapshots__/index.test.ts.snap +0 -0
- /package/src/server/routers/{edge → lambda}/config/index.test.ts +0 -0
- /package/src/store/tool/slices/{store → mcpStore}/index.ts +0 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,56 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
### [Version 1.97.1](https://github.com/lobehub/lobe-chat/compare/v1.97.0...v1.97.1)
|
6
|
+
|
7
|
+
<sup>Released on **2025-07-10**</sup>
|
8
|
+
|
9
|
+
#### 🐛 Bug Fixes
|
10
|
+
|
11
|
+
- **misc**: Fix locale hydration error in SSR.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### What's fixed
|
19
|
+
|
20
|
+
- **misc**: Fix locale hydration error in SSR, closes [#8365](https://github.com/lobehub/lobe-chat/issues/8365) ([63f482a](https://github.com/lobehub/lobe-chat/commit/63f482a))
|
21
|
+
|
22
|
+
</details>
|
23
|
+
|
24
|
+
<div align="right">
|
25
|
+
|
26
|
+
[](#readme-top)
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
30
|
+
## [Version 1.97.0](https://github.com/lobehub/lobe-chat/compare/v1.96.20...v1.97.0)
|
31
|
+
|
32
|
+
<sup>Released on **2025-07-08**</sup>
|
33
|
+
|
34
|
+
#### ✨ Features
|
35
|
+
|
36
|
+
- **misc**: Add MCP marketplace and mcp plugin one-click installation in desktop.
|
37
|
+
|
38
|
+
<br/>
|
39
|
+
|
40
|
+
<details>
|
41
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
42
|
+
|
43
|
+
#### What's improved
|
44
|
+
|
45
|
+
- **misc**: Add MCP marketplace and mcp plugin one-click installation in desktop, closes [#8334](https://github.com/lobehub/lobe-chat/issues/8334) ([416a4b1](https://github.com/lobehub/lobe-chat/commit/416a4b1))
|
46
|
+
|
47
|
+
</details>
|
48
|
+
|
49
|
+
<div align="right">
|
50
|
+
|
51
|
+
[](#readme-top)
|
52
|
+
|
53
|
+
</div>
|
54
|
+
|
5
55
|
### [Version 1.96.20](https://github.com/lobehub/lobe-chat/compare/v1.96.19...v1.96.20)
|
6
56
|
|
7
57
|
<sup>Released on **2025-07-08**</sup>
|
package/README.md
CHANGED
@@ -52,22 +52,26 @@ One-click **FREE** deployment of your private OpenAI ChatGPT/Claude/Gemini/Groq/
|
|
52
52
|
|
53
53
|
- [👋🏻 Getting Started & Join Our Community](#-getting-started--join-our-community)
|
54
54
|
- [✨ Features](#-features)
|
55
|
-
- [
|
56
|
-
- [
|
57
|
-
- [
|
58
|
-
- [
|
59
|
-
- [
|
60
|
-
- [
|
61
|
-
- [
|
62
|
-
- [
|
63
|
-
- [
|
64
|
-
- [
|
65
|
-
- [
|
66
|
-
- [
|
67
|
-
- [
|
68
|
-
- [
|
69
|
-
- [
|
70
|
-
- [
|
55
|
+
- [✨ MCP Plugin One-Click Installation](#-mcp-plugin-one-click-installation)
|
56
|
+
- [🏪 MCP Marketplace](#-mcp-marketplace)
|
57
|
+
- [🖥️ Desktop App](#️-desktop-app)
|
58
|
+
- [🌐 Smart Internet Search](#-smart-internet-search)
|
59
|
+
- [Chain of Thought](#chain-of-thought)
|
60
|
+
- [Branching Conversations](#branching-conversations)
|
61
|
+
- [Artifacts Support](#artifacts-support)
|
62
|
+
- [File Upload /Knowledge Base](#file-upload-knowledge-base)
|
63
|
+
- [Multi-Model Service Provider Support](#multi-model-service-provider-support)
|
64
|
+
- [Local Large Language Model (LLM) Support](#local-large-language-model-llm-support)
|
65
|
+
- [Model Visual Recognition](#model-visual-recognition)
|
66
|
+
- [TTS & STT Voice Conversation](#tts--stt-voice-conversation)
|
67
|
+
- [Text to Image Generation](#text-to-image-generation)
|
68
|
+
- [Plugin System (Function Calling)](#plugin-system-function-calling)
|
69
|
+
- [Agent Market (GPTs)](#agent-market-gpts)
|
70
|
+
- [Support Local / Remote Database](#support-local--remote-database)
|
71
|
+
- [Support Multi-User Management](#support-multi-user-management)
|
72
|
+
- [Progressive Web App (PWA)](#progressive-web-app-pwa)
|
73
|
+
- [Mobile Device Adaptation](#mobile-device-adaptation)
|
74
|
+
- [Custom Themes](#custom-themes)
|
71
75
|
- [`*` What's more](#-whats-more)
|
72
76
|
- [⚡️ Performance](#️-performance)
|
73
77
|
- [🛳 Self Hosting](#-self-hosting)
|
@@ -114,9 +118,59 @@ Whether for users or professional developers, LobeHub will be your AI Agent play
|
|
114
118
|
|
115
119
|
## ✨ Features
|
116
120
|
|
121
|
+
Transform your AI experience with LobeChat's powerful features designed for seamless connectivity, enhanced productivity, and unlimited creativity.
|
122
|
+
|
123
|
+
![][image-feat-mcp]
|
124
|
+
|
125
|
+
### ✨ MCP Plugin One-Click Installation
|
126
|
+
|
127
|
+
**Seamlessly Connect Your AI to the World**
|
128
|
+
|
129
|
+
Unlock the full potential of your AI by enabling smooth, secure, and dynamic interactions with external tools, data sources, and services. LobeChat's MCP (Model Context Protocol) plugin system breaks down the barriers between your AI and the digital ecosystem, allowing for unprecedented connectivity and functionality.
|
130
|
+
|
131
|
+
Transform your conversations into powerful workflows by connecting to databases, APIs, file systems, and more. Experience the freedom of AI that truly understands and interacts with your world.
|
132
|
+
|
133
|
+
[![][back-to-top]](#readme-top)
|
134
|
+
|
135
|
+
![][image-feat-mcp-market]
|
136
|
+
|
137
|
+
### 🏪 MCP Marketplace
|
138
|
+
|
139
|
+
**Discover, Connect, Extend**
|
140
|
+
|
141
|
+
Browse a growing library of MCP plugins to expand your AI's capabilities and streamline your workflows effortlessly. Visit [lobehub.com/mcp](https://lobehub.com/mcp) to explore the MCP Marketplace, which offers a curated collection of integrations that enhance your AI's ability to work with various tools and services.
|
142
|
+
|
143
|
+
From productivity tools to development environments, discover new ways to extend your AI's reach and effectiveness. Connect with the community and find the perfect plugins for your specific needs.
|
144
|
+
|
145
|
+
[![][back-to-top]](#readme-top)
|
146
|
+
|
147
|
+
![][image-feat-desktop]
|
148
|
+
|
149
|
+
### 🖥️ Desktop App
|
150
|
+
|
151
|
+
**Peak Performance, Zero Distractions**
|
152
|
+
|
153
|
+
Get the full LobeChat experience without browser limitations—lightweight, focused, and always ready to go. Our desktop application provides a dedicated environment for your AI interactions, ensuring optimal performance and minimal distractions.
|
154
|
+
|
155
|
+
Experience faster response times, better resource management, and a more stable connection to your AI assistant. The desktop app is designed for users who demand the best performance from their AI tools.
|
156
|
+
|
157
|
+
[![][back-to-top]](#readme-top)
|
158
|
+
|
159
|
+
![][image-feat-web-search]
|
160
|
+
|
161
|
+
### 🌐 Smart Internet Search
|
162
|
+
|
163
|
+
**Online Knowledge On Demand**
|
164
|
+
|
165
|
+
With real-time internet access, your AI keeps up with the world—news, data, trends, and more. Stay informed and get the most current information available, enabling your AI to provide accurate and up-to-date responses.
|
166
|
+
|
167
|
+
Access live information, verify facts, and explore current events without leaving your conversation. Your AI becomes a gateway to the world's knowledge, always current and comprehensive.
|
168
|
+
|
169
|
+
[![][back-to-top]](#readme-top)
|
170
|
+
|
117
171
|
[![][image-feat-cot]][docs-feat-cot]
|
118
172
|
|
119
|
-
###
|
173
|
+
### [Chain of Thought][docs-feat-cot]
|
120
174
|
|
121
175
|
Experience AI reasoning like never before. Watch as complex problems unfold step by step through our innovative Chain of Thought (CoT) visualization. This breakthrough feature provides unprecedented transparency into AI's decision-making process, allowing you to observe how conclusions are reached in real-time.
|
122
176
|
|
@@ -126,7 +180,7 @@ By breaking down complex reasoning into clear, logical steps, you can better und
|
|
126
180
|
|
127
181
|
[![][image-feat-branch]][docs-feat-branch]
|
128
182
|
|
129
|
-
###
|
183
|
+
### [Branching Conversations][docs-feat-branch]
|
130
184
|
|
131
185
|
Introducing a more natural and flexible way to chat with AI. With Branch Conversations, your discussions can flow in multiple directions, just like human conversations do. Create new conversation branches from any message, giving you the freedom to explore different paths while preserving the original context.
|
132
186
|
|
@@ -141,7 +195,7 @@ This groundbreaking feature transforms linear conversations into dynamic, tree-l
|
|
141
195
|
|
142
196
|
[![][image-feat-artifacts]][docs-feat-artifacts]
|
143
197
|
|
144
|
-
###
|
198
|
+
### [Artifacts Support][docs-feat-artifacts]
|
145
199
|
|
146
200
|
Experience the power of Claude Artifacts, now integrated into LobeChat. This revolutionary feature expands the boundaries of AI-human interaction, enabling real-time creation and visualization of diverse content formats.
|
147
201
|
|
@@ -155,7 +209,7 @@ Create and visualize with unprecedented flexibility:
|
|
155
209
|
|
156
210
|
[![][image-feat-knowledgebase]][docs-feat-knowledgebase]
|
157
211
|
|
158
|
-
###
|
212
|
+
### [File Upload /Knowledge Base][docs-feat-knowledgebase]
|
159
213
|
|
160
214
|
LobeChat supports file upload and knowledge base functionality. You can upload various types of files including documents, images, audio, and video, as well as create knowledge bases, making it convenient for users to manage and search for files. Additionally, you can utilize files and knowledge base features during conversations, enabling a richer dialogue experience.
|
161
215
|
|
@@ -173,7 +227,7 @@ LobeChat supports file upload and knowledge base functionality. You can upload v
|
|
173
227
|
|
174
228
|
[![][image-feat-privoder]][docs-feat-provider]
|
175
229
|
|
176
|
-
###
|
230
|
+
### [Multi-Model Service Provider Support][docs-feat-provider]
|
177
231
|
|
178
232
|
In the continuous development of LobeChat, we deeply understand the importance of diversity in model service providers for meeting the needs of the community when providing AI conversation services. Therefore, we have expanded our support to multiple model service providers, rather than being limited to a single one, in order to offer users a more diverse and rich selection of conversations.
|
179
233
|
|
@@ -246,7 +300,7 @@ At the same time, we are also planning to support more model service providers.
|
|
246
300
|
|
247
301
|
[![][image-feat-local]][docs-feat-local]
|
248
302
|
|
249
|
-
###
|
303
|
+
### [Local Large Language Model (LLM) Support][docs-feat-local]
|
250
304
|
|
251
305
|
To meet the specific needs of users, LobeChat also supports the use of local models based on [Ollama](https://ollama.ai), allowing users to flexibly use their own or third-party models.
|
252
306
|
|
@@ -262,7 +316,7 @@ To meet the specific needs of users, LobeChat also supports the use of local mod
|
|
262
316
|
|
263
317
|
[![][image-feat-vision]][docs-feat-vision]
|
264
318
|
|
265
|
-
###
|
319
|
+
### [Model Visual Recognition][docs-feat-vision]
|
266
320
|
|
267
321
|
LobeChat now supports OpenAI's latest [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) model with visual recognition capabilities,
|
268
322
|
a multimodal intelligence that can perceive visuals. Users can easily upload or drag and drop images into the dialogue box,
|
@@ -280,7 +334,7 @@ Whether it's sharing images in daily use or interpreting images within specific
|
|
280
334
|
|
281
335
|
[![][image-feat-tts]][docs-feat-tts]
|
282
336
|
|
283
|
-
###
|
337
|
+
### [TTS & STT Voice Conversation][docs-feat-tts]
|
284
338
|
|
285
339
|
LobeChat supports Text-to-Speech (TTS) and Speech-to-Text (STT) technologies, enabling our application to convert text messages into clear voice outputs,
|
286
340
|
allowing users to interact with our conversational agent as if they were talking to a real person. Users can choose from a variety of voices to pair with the agent.
|
@@ -297,7 +351,7 @@ Users can choose the voice that suits their personal preferences or specific sce
|
|
297
351
|
|
298
352
|
[![][image-feat-t2i]][docs-feat-t2i]
|
299
353
|
|
300
|
-
###
|
354
|
+
### [Text to Image Generation][docs-feat-t2i]
|
301
355
|
|
302
356
|
With support for the latest text-to-image generation technology, LobeChat now allows users to invoke image creation tools directly within conversations with the agent. By leveraging the capabilities of AI tools such as [`DALL-E 3`](https://openai.com/dall-e-3), [`MidJourney`](https://www.midjourney.com/), and [`Pollinations`](https://pollinations.ai/), the agents are now equipped to transform your ideas into images.
|
303
357
|
|
@@ -311,7 +365,7 @@ This enables a more private and immersive creative process, allowing for the sea
|
|
311
365
|
|
312
366
|
[![][image-feat-plugin]][docs-feat-plugin]
|
313
367
|
|
314
|
-
###
|
368
|
+
### [Plugin System (Function Calling)][docs-feat-plugin]
|
315
369
|
|
316
370
|
The plugin ecosystem of LobeChat is an important extension of its core functionality, greatly enhancing the practicality and flexibility of the LobeChat assistant.
|
317
371
|
|
@@ -346,7 +400,7 @@ In addition, these plugins are not limited to news aggregation, but can also ext
|
|
346
400
|
|
347
401
|
[![][image-feat-agent]][docs-feat-agent]
|
348
402
|
|
349
|
-
###
|
403
|
+
### [Agent Market (GPTs)][docs-feat-agent]
|
350
404
|
|
351
405
|
In LobeChat Agent Marketplace, creators can discover a vibrant and innovative community that brings together a multitude of well-designed agents,
|
352
406
|
which not only play an important role in work scenarios but also offer great convenience in learning processes.
|
@@ -385,7 +439,7 @@ Our marketplace is not just a showcase platform but also a collaborative space.
|
|
385
439
|
|
386
440
|
[![][image-feat-database]][docs-feat-database]
|
387
441
|
|
388
|
-
###
|
442
|
+
### [Support Local / Remote Database][docs-feat-database]
|
389
443
|
|
390
444
|
LobeChat supports the use of both server-side and local databases. Depending on your needs, you can choose the appropriate deployment solution:
|
391
445
|
|
@@ -402,7 +456,7 @@ Regardless of which database you choose, LobeChat can provide you with an excell
|
|
402
456
|
|
403
457
|
[![][image-feat-auth]][docs-feat-auth]
|
404
458
|
|
405
|
-
###
|
459
|
+
### [Support Multi-User Management][docs-feat-auth]
|
406
460
|
|
407
461
|
LobeChat supports multi-user management and provides two main user authentication and management solutions to meet different needs:
|
408
462
|
|
@@ -420,7 +474,7 @@ Regardless of which user management solution you choose, LobeChat can provide yo
|
|
420
474
|
|
421
475
|
[![][image-feat-pwa]][docs-feat-pwa]
|
422
476
|
|
423
|
-
###
|
477
|
+
### [Progressive Web App (PWA)][docs-feat-pwa]
|
424
478
|
|
425
479
|
We deeply understand the importance of providing a seamless experience for users in today's multi-device environment.
|
426
480
|
Therefore, we have adopted Progressive Web Application ([PWA](https://support.google.com/chrome/answer/9658361)) technology,
|
@@ -447,7 +501,7 @@ providing smooth animations, responsive layouts, and adapting to different devic
|
|
447
501
|
|
448
502
|
[![][image-feat-mobile]][docs-feat-mobile]
|
449
503
|
|
450
|
-
###
|
504
|
+
### [Mobile Device Adaptation][docs-feat-mobile]
|
451
505
|
|
452
506
|
We have carried out a series of optimization designs for mobile devices to enhance the user's mobile experience. Currently, we are iterating on the mobile user experience to achieve smoother and more intuitive interactions. If you have any suggestions or ideas, we welcome you to provide feedback through GitHub Issues or Pull Requests.
|
453
507
|
|
@@ -459,7 +513,7 @@ We have carried out a series of optimization designs for mobile devices to enhan
|
|
459
513
|
|
460
514
|
[![][image-feat-theme]][docs-feat-theme]
|
461
515
|
|
462
|
-
###
|
516
|
+
### [Custom Themes][docs-feat-theme]
|
463
517
|
|
464
518
|
As a design-engineering-oriented application, LobeChat places great emphasis on users' personalized experiences,
|
465
519
|
hence introducing flexible and diverse theme modes, including a light mode for daytime and a dark mode for nighttime.
|
@@ -858,8 +912,11 @@ This project is [Apache 2.0](./LICENSE) licensed.
|
|
858
912
|
[image-feat-branch]: https://github.com/user-attachments/assets/92f72082-02bd-4835-9c54-b089aad7fd41
|
859
913
|
[image-feat-cot]: https://github.com/user-attachments/assets/f74f1139-d115-4e9c-8c43-040a53797a5e
|
860
914
|
[image-feat-database]: https://github.com/user-attachments/assets/f1697c8b-d1fb-4dac-ba05-153c6295d91d
|
915
|
+
[image-feat-desktop]: https://github.com/user-attachments/assets/a7bac8d3-ea96-4000-bb39-fadc9b610f96
|
861
916
|
[image-feat-knowledgebase]: https://github.com/user-attachments/assets/7da7a3b2-92fd-4630-9f4e-8560c74955ae
|
862
917
|
[image-feat-local]: https://github.com/user-attachments/assets/1239da50-d832-4632-a7ef-bd754c0f3850
|
918
|
+
[image-feat-mcp]: https://github.com/user-attachments/assets/1be85d36-3975-4413-931f-27e05e440995
|
919
|
+
[image-feat-mcp-market]: https://github.com/user-attachments/assets/bb114f9f-24c5-4000-a984-c10d187da5a0
|
863
920
|
[image-feat-mobile]: https://github.com/user-attachments/assets/32cf43c4-96bd-4a4c-bfb6-59acde6fe380
|
864
921
|
[image-feat-plugin]: https://github.com/user-attachments/assets/66a891ac-01b6-4e3f-b978-2eb07b489b1b
|
865
922
|
[image-feat-privoder]: https://github.com/user-attachments/assets/e553e407-42de-4919-977d-7dbfcf44a821
|
@@ -868,6 +925,7 @@ This project is [Apache 2.0](./LICENSE) licensed.
|
|
868
925
|
[image-feat-theme]: https://github.com/user-attachments/assets/b47c39f1-806f-492b-8fcb-b0fa973937c1
|
869
926
|
[image-feat-tts]: https://github.com/user-attachments/assets/50189597-2cc3-4002-b4c8-756a52ad5c0a
|
870
927
|
[image-feat-vision]: https://github.com/user-attachments/assets/18574a1f-46c2-4cbc-af2c-35a86e128a07
|
928
|
+
[image-feat-web-search]: https://github.com/user-attachments/assets/cfdc48ac-b5f8-4a00-acee-db8f2eba09ad
|
871
929
|
[image-overview]: https://github.com/user-attachments/assets/dbfaa84a-2c82-4dd9-815c-5be616f264a4
|
872
930
|
[image-star]: https://github.com/user-attachments/assets/c3b482e7-cef5-4e94-bef9-226900ecfaab
|
873
931
|
[issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
|
package/README.zh-CN.md
CHANGED
@@ -52,22 +52,26 @@
|
|
52
52
|
|
53
53
|
- [👋🏻 开始使用 & 交流](#-开始使用--交流)
|
54
54
|
- [✨ 特性一览](#-特性一览)
|
55
|
-
- [
|
56
|
-
- [
|
57
|
-
- [
|
58
|
-
- [
|
59
|
-
- [
|
60
|
-
- [
|
61
|
-
- [
|
62
|
-
- [
|
63
|
-
- [
|
64
|
-
- [
|
65
|
-
- [
|
66
|
-
- [
|
67
|
-
- [
|
68
|
-
- [
|
69
|
-
- [
|
70
|
-
- [
|
55
|
+
- [✨ MCP 插件一键安装](#-mcp-插件一键安装)
|
56
|
+
- [🏪 MCP 市场](#-mcp-市场)
|
57
|
+
- [🖥️ 桌面应用](#️-桌面应用)
|
58
|
+
- [🌐 智能联网搜索](#-智能联网搜索)
|
59
|
+
- [思维链 (CoT)](#思维链-cot)
|
60
|
+
- [分支对话](#分支对话)
|
61
|
+
- [支持白板 (Artifacts)](#支持白板-artifacts)
|
62
|
+
- [文件上传 / 知识库](#文件上传--知识库)
|
63
|
+
- [多模型服务商支持](#多模型服务商支持)
|
64
|
+
- [支持本地大语言模型 (LLM)](#支持本地大语言模型-llm)
|
65
|
+
- [模型视觉识别 (Model Visual)](#模型视觉识别-model-visual)
|
66
|
+
- [TTS & STT 语音会话](#tts--stt-语音会话)
|
67
|
+
- [Text to Image 文生图](#text-to-image-文生图)
|
68
|
+
- [插件系统 (Tools Calling)](#插件系统-tools-calling)
|
69
|
+
- [助手市场 (GPTs)](#助手市场-gpts)
|
70
|
+
- [支持本地 / 远程数据库](#支持本地--远程数据库)
|
71
|
+
- [支持多用户管理](#支持多用户管理)
|
72
|
+
- [渐进式 Web 应用 (PWA)](#渐进式-web-应用-pwa)
|
73
|
+
- [移动设备适配](#移动设备适配)
|
74
|
+
- [自定义主题](#自定义主题)
|
71
75
|
- [`*` 更多特性](#-更多特性)
|
72
76
|
- [⚡️ 性能测试](#️-性能测试)
|
73
77
|
- [🛳 开箱即用](#-开箱即用)
|
@@ -114,9 +118,59 @@
|
|
114
118
|
|
115
119
|
## ✨ 特性一览
|
116
120
|
|
121
|
+
通过 LobeChat 的强大功能,体验为无缝连接、提升效率和无限创意而设计的全新 AI 体验。
|
122
|
+
|
123
|
+
### ✨ MCP 插件一键安装
|
124
|
+
|
125
|
+
[](https://lobehub.com/mcp)
|
126
|
+
|
127
|
+
**无缝连接你的 AI 与世界**
|
128
|
+
|
129
|
+
通过启用与外部工具、数据源和服务的平滑、安全和动态交互,释放你的 AI 的全部潜力。基于 MCP(模型上下文协议)的插件系统打破了 AI 与数字生态系统之间的壁垒,实现了前所未有的连接性和功能性。
|
130
|
+
|
131
|
+
将对话转化为强大的工作流程,连接数据库、API、文件系统等。体验真正理解并与你的世界互动的 AI Agent。
|
132
|
+
|
133
|
+
[![][back-to-top]](#readme-top)
|
134
|
+
|
135
|
+
### 🏪 MCP 市场
|
136
|
+
|
137
|
+
![][image-feat-mcp-market]
|
138
|
+
|
139
|
+
**发现、连接、扩展**
|
140
|
+
|
141
|
+
浏览不断增长的 MCP 插件库,轻松扩展你的 AI 能力并简化工作流程。访问 [lobehub.com/mcp](https://lobehub.com/mcp) 探索 MCP 市场,提供精选的集成集合,增强你的 AI 与各种工具和服务协作的能力。
|
142
|
+
|
143
|
+
从生产力工具到开发环境,发现扩展 AI 覆盖范围和效率的新方式。与社区连接,找到满足特定需求的完美插件。
|
144
|
+
|
145
|
+
[![][back-to-top]](#readme-top)
|
146
|
+
|
147
|
+
### 🖥️ 桌面应用
|
148
|
+
|
149
|
+
![][image-feat-desktop]
|
150
|
+
|
151
|
+
**巅峰性能,零干扰**
|
152
|
+
|
153
|
+
获得完整的 LobeChat 体验,摆脱浏览器限制 —— 轻量级、专注且随时就绪。我们的桌面应用程序为你的 AI 交互提供专用环境,确保最佳性能和最小干扰。
|
154
|
+
|
155
|
+
体验更快的响应时间、更好的资源管理和与 AI 助手的更稳定连接。桌面应用专为要求 AI 工具最佳性能的用户设计。
|
156
|
+
|
157
|
+
[![][back-to-top]](#readme-top)
|
158
|
+
|
159
|
+
### 🌐 智能联网搜索
|
160
|
+
|
161
|
+
![][image-feat-web-search]
|
162
|
+
|
163
|
+
**在线知识,按需获取**
|
164
|
+
|
165
|
+
通过实时联网访问,你的 AI 与世界保持同步 —— 新闻、数据、趋势等。保持信息更新,获取最新可用信息,使你的 AI 能够提供准确和最新的回复。
|
166
|
+
|
167
|
+
访问实时信息,验证事实,探索当前事件,无需离开对话。你的 AI 成为通向世界知识的门户,始终保持最新和全面。
|
168
|
+
|
169
|
+
[![][back-to-top]](#readme-top)
|
170
|
+
|
117
171
|
[![][image-feat-cot]][docs-feat-cot]
|
118
172
|
|
119
|
-
###
|
173
|
+
### [思维链 (CoT)][docs-feat-cot]
|
120
174
|
|
121
175
|
体验前所未有的 AI 推理过程。通过创新的思维链(CoT)可视化功能,您可以实时观察复杂问题是如何一步步被解析的。这项突破性的功能为 AI 的决策过程提供了前所未有的透明度,让您能够清晰地了解结论是如何得出的。
|
122
176
|
|
@@ -126,7 +180,7 @@
|
|
126
180
|
|
127
181
|
[![][image-feat-branch]][docs-feat-branch]
|
128
182
|
|
129
|
-
###
|
183
|
+
### [分支对话][docs-feat-branch]
|
130
184
|
|
131
185
|
为您带来更自然、更灵活的 AI 对话方式。通过分支对话功能,您的讨论可以像人类对话一样自然延伸。在任意消息处创建新的对话分支,让您在保留原有上下文的同时,自由探索不同的对话方向。
|
132
186
|
|
@@ -141,7 +195,7 @@
|
|
141
195
|
|
142
196
|
[![][image-feat-artifacts]][docs-feat-artifacts]
|
143
197
|
|
144
|
-
###
|
198
|
+
### [支持白板 (Artifacts)][docs-feat-artifacts]
|
145
199
|
|
146
200
|
体验集成于 LobeChat 的 Claude Artifacts 能力。这项革命性功能突破了 AI 人机交互的边界,让您能够实时创建和可视化各种格式的内容。
|
147
201
|
|
@@ -155,7 +209,7 @@
|
|
155
209
|
|
156
210
|
[![][image-feat-knowledgebase]][docs-feat-knowledgebase]
|
157
211
|
|
158
|
-
###
|
212
|
+
### [文件上传 / 知识库][docs-feat-knowledgebase]
|
159
213
|
|
160
214
|
LobeChat 支持文件上传与知识库功能,你可以上传文件、图片、音频、视频等多种类型的文件,以及创建知识库,方便用户管理和查找文件。同时在对话中使用文件和知识库功能,实现更加丰富的对话体验。
|
161
215
|
|
@@ -173,7 +227,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
|
173
227
|
|
174
228
|
[![][image-feat-privoder]][docs-feat-provider]
|
175
229
|
|
176
|
-
###
|
230
|
+
### [多模型服务商支持][docs-feat-provider]
|
177
231
|
|
178
232
|
在 LobeChat 的不断发展过程中,我们深刻理解到在提供 AI 会话服务时模型服务商的多样性对于满足社区需求的重要性。因此,我们不再局限于单一的模型服务商,而是拓展了对多种模型服务商的支持,以便为用户提供更为丰富和多样化的会话选择。
|
179
233
|
|
@@ -246,7 +300,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
|
246
300
|
|
247
301
|
[![][image-feat-local]][docs-feat-local]
|
248
302
|
|
249
|
-
###
|
303
|
+
### [支持本地大语言模型 (LLM)][docs-feat-local]
|
250
304
|
|
251
305
|
为了满足特定用户的需求,LobeChat 还基于 [Ollama](https://ollama.ai) 支持了本地模型的使用,让用户能够更灵活地使用自己的或第三方的模型。
|
252
306
|
|
@@ -262,7 +316,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
|
262
316
|
|
263
317
|
[![][image-feat-vision]][docs-feat-vision]
|
264
318
|
|
265
|
-
###
|
319
|
+
### [模型视觉识别 (Model Visual)][docs-feat-vision]
|
266
320
|
|
267
321
|
LobeChat 已经支持 OpenAI 最新的 [`gpt-4-vision`](https://platform.openai.com/docs/guides/vision) 支持视觉识别的模型,这是一个具备视觉识别能力的多模态应用。
|
268
322
|
用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
|
@@ -277,7 +331,7 @@ LobeChat 已经支持 OpenAI 最新的 [`gpt-4-vision`](https://platform.openai.
|
|
277
331
|
|
278
332
|
[![][image-feat-tts]][docs-feat-tts]
|
279
333
|
|
280
|
-
###
|
334
|
+
### [TTS & STT 语音会话][docs-feat-tts]
|
281
335
|
|
282
336
|
LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Speech-to-Text,STT)技术,这使得我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话助手进行交流。
|
283
337
|
用户可以从多种声音中选择,给助手搭配合适的音源。 同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
|
@@ -292,7 +346,7 @@ LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Spe
|
|
292
346
|
|
293
347
|
[![][image-feat-t2i]][docs-feat-t2i]
|
294
348
|
|
295
|
-
###
|
349
|
+
### [Text to Image 文生图][docs-feat-t2i]
|
296
350
|
|
297
351
|
支持最新的文本到图片生成技术,LobeChat 现在能够让用户在与助手对话中直接调用文生图工具进行创作。
|
298
352
|
通过利用 [`DALL-E 3`](https://openai.com/dall-e-3)、[`MidJourney`](https://www.midjourney.com/) 和 [`Pollinations`](https://pollinations.ai/) 等 AI 工具的能力, 助手们现在可以将你的想法转化为图像。
|
@@ -306,7 +360,7 @@ LobeChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Spe
|
|
306
360
|
|
307
361
|
[![][image-feat-plugin]][docs-feat-plugin]
|
308
362
|
|
309
|
-
###
|
363
|
+
### [插件系统 (Tools Calling)][docs-feat-plugin]
|
310
364
|
|
311
365
|
LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地增强了 ChatGPT 的实用性和灵活性。
|
312
366
|
|
@@ -339,7 +393,7 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
339
393
|
|
340
394
|
[![][image-feat-agent]][docs-feat-agent]
|
341
395
|
|
342
|
-
###
|
396
|
+
### [助手市场 (GPTs)][docs-feat-agent]
|
343
397
|
|
344
398
|
在 LobeChat 的助手市场中,创作者们可以发现一个充满活力和创新的社区,它汇聚了众多精心设计的助手,这些助手不仅在工作场景中发挥着重要作用,也在学习过程中提供了极大的便利。
|
345
399
|
我们的市场不仅是一个展示平台,更是一个协作的空间。在这里,每个人都可以贡献自己的智慧,分享个人开发的助手。
|
@@ -374,7 +428,7 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
374
428
|
|
375
429
|
[![][image-feat-database]][docs-feat-database]
|
376
430
|
|
377
|
-
###
|
431
|
+
### [支持本地 / 远程数据库][docs-feat-database]
|
378
432
|
|
379
433
|
LobeChat 支持同时使用服务端数据库和本地数据库。根据您的需求,您可以选择合适的部署方案:
|
380
434
|
|
@@ -391,7 +445,7 @@ LobeChat 支持同时使用服务端数据库和本地数据库。根据您的
|
|
391
445
|
|
392
446
|
[![][image-feat-auth]][docs-feat-auth]
|
393
447
|
|
394
|
-
###
|
448
|
+
### [支持多用户管理][docs-feat-auth]
|
395
449
|
|
396
450
|
LobeChat 支持多用户管理,提供了两种主要的用户认证和管理方案,以满足不同需求:
|
397
451
|
|
@@ -409,7 +463,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
|
|
409
463
|
|
410
464
|
[![][image-feat-pwa]][docs-feat-pwa]
|
411
465
|
|
412
|
-
###
|
466
|
+
### [渐进式 Web 应用 (PWA)][docs-feat-pwa]
|
413
467
|
|
414
468
|
我们深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 [PWA](https://support.google.com/chrome/answer/9658361) 技术,
|
415
469
|
这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。通过 PWA,LobeChat 能够在桌面和移动设备上提供高度优化的用户体验,同时保持轻量级和高性能的特点。
|
@@ -422,7 +476,6 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
|
|
422
476
|
> - 在电脑上运行 Chrome 或 Edge 浏览器 .
|
423
477
|
> - 访问 LobeChat 网页 .
|
424
478
|
> - 在地址栏的右上角,单击 <kbd>安装</kbd> 图标 .
|
425
|
-
> - 根据屏幕上的指示完成 PWA 的安装 .
|
426
479
|
|
427
480
|
<div align="right">
|
428
481
|
|
@@ -432,7 +485,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
|
|
432
485
|
|
433
486
|
[![][image-feat-mobile]][docs-feat-mobile]
|
434
487
|
|
435
|
-
###
|
488
|
+
### [移动设备适配][docs-feat-mobile]
|
436
489
|
|
437
490
|
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
|
438
491
|
|
@@ -444,7 +497,7 @@ LobeChat 支持多用户管理,提供了两种主要的用户认证和管理
|
|
444
497
|
|
445
498
|
[![][image-feat-theme]][docs-feat-theme]
|
446
499
|
|
447
|
-
###
|
500
|
+
### [自定义主题][docs-feat-theme]
|
448
501
|
|
449
502
|
作为设计工程师出身,LobeChat 在界面设计上充分考虑用户的个性化体验,因此引入了灵活多变的主题模式,其中包括日间的亮色模式和夜间的深色模式。
|
450
503
|
除了主题模式的切换,还提供了一系列的颜色定制选项,允许用户根据自己的喜好来调整应用的主题色彩。无论是想要沉稳的深蓝,还是希望活泼的桃粉,或者是专业的灰白,用户都能够在 LobeChat 中找到匹配自己风格的颜色选择。
|
@@ -531,7 +584,7 @@ LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 镜像][docker-release
|
|
531
584
|
|
532
585
|
#### 保持更新
|
533
586
|
|
534
|
-
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示
|
587
|
+
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 "有可用更新"。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
|
535
588
|
|
536
589
|
> \[!TIP]
|
537
590
|
>
|
@@ -880,8 +933,10 @@ This project is [Apache 2.0](./LICENSE) licensed.
|
|
880
933
|
[image-feat-branch]: https://github.com/user-attachments/assets/92f72082-02bd-4835-9c54-b089aad7fd41
|
881
934
|
[image-feat-cot]: https://github.com/user-attachments/assets/f74f1139-d115-4e9c-8c43-040a53797a5e
|
882
935
|
[image-feat-database]: https://github.com/user-attachments/assets/f1697c8b-d1fb-4dac-ba05-153c6295d91d
|
936
|
+
[image-feat-desktop]: https://github.com/user-attachments/assets/a7bac8d3-ea96-4000-bb39-fadc9b610f96
|
883
937
|
[image-feat-knowledgebase]: https://github.com/user-attachments/assets/7da7a3b2-92fd-4630-9f4e-8560c74955ae
|
884
938
|
[image-feat-local]: https://github.com/user-attachments/assets/1239da50-d832-4632-a7ef-bd754c0f3850
|
939
|
+
[image-feat-mcp-market]: https://github.com/user-attachments/assets/bb114f9f-24c5-4000-a984-c10d187da5a0
|
885
940
|
[image-feat-mobile]: https://github.com/user-attachments/assets/32cf43c4-96bd-4a4c-bfb6-59acde6fe380
|
886
941
|
[image-feat-plugin]: https://github.com/user-attachments/assets/66a891ac-01b6-4e3f-b978-2eb07b489b1b
|
887
942
|
[image-feat-privoder]: https://github.com/user-attachments/assets/e553e407-42de-4919-977d-7dbfcf44a821
|
@@ -890,6 +945,7 @@ This project is [Apache 2.0](./LICENSE) licensed.
|
|
890
945
|
[image-feat-theme]: https://github.com/user-attachments/assets/b47c39f1-806f-492b-8fcb-b0fa973937c1
|
891
946
|
[image-feat-tts]: https://github.com/user-attachments/assets/50189597-2cc3-4002-b4c8-756a52ad5c0a
|
892
947
|
[image-feat-vision]: https://github.com/user-attachments/assets/18574a1f-46c2-4cbc-af2c-35a86e128a07
|
948
|
+
[image-feat-web-search]: https://github.com/user-attachments/assets/cfdc48ac-b5f8-4a00-acee-db8f2eba09ad
|
893
949
|
[image-overview]: https://github.com/user-attachments/assets/dbfaa84a-2c82-4dd9-815c-5be616f264a4
|
894
950
|
[image-star]: https://github.com/user-attachments/assets/c3b482e7-cef5-4e94-bef9-226900ecfaab
|
895
951
|
[issues-link]: https://img.shields.io/github/issues/lobehub/lobe-chat.svg?style=flat
|
@@ -152,7 +152,8 @@ export default class Browser {
|
|
152
152
|
|
153
153
|
show() {
|
154
154
|
logger.debug(`Showing window: ${this.identifier}`);
|
155
|
-
this.determineWindowPosition();
|
155
|
+
if (!this._browserWindow.isDestroyed()) this.determineWindowPosition();
|
156
|
+
|
156
157
|
this.browserWindow.show();
|
157
158
|
}
|
158
159
|
|
@@ -58,7 +58,7 @@ export const createRequest = async ({
|
|
58
58
|
|
59
59
|
for (const cookie of cookies) {
|
60
60
|
const { name, value } = cookie;
|
61
|
-
cookiesHeader.push(serializeCookie(name, value));
|
61
|
+
cookiesHeader.push(serializeCookie(name, value));
|
62
62
|
}
|
63
63
|
|
64
64
|
req.headers.cookie = cookiesHeader.join('; ');
|
@@ -305,20 +305,27 @@ export function createHandler({
|
|
305
305
|
);
|
306
306
|
|
307
307
|
for (const cookie of cookies) {
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
308
|
+
let expirationDate: number | undefined;
|
309
|
+
|
310
|
+
if (cookie.expires) {
|
311
|
+
// expires 是 Date 对象,转换为秒级时间戳
|
312
|
+
expirationDate = Math.floor(cookie.expires.getTime() / 1000);
|
313
|
+
} else if (cookie.maxAge) {
|
314
|
+
// maxAge 是秒数,计算过期时间戳
|
315
|
+
expirationDate = Math.floor(Date.now() / 1000) + cookie.maxAge;
|
316
|
+
}
|
317
|
+
|
318
|
+
// 如果都没有,则为 session cookie,不设置 expirationDate
|
313
319
|
|
314
|
-
|
320
|
+
// 检查是否已过期
|
321
|
+
if (expirationDate && expirationDate < Math.floor(Date.now() / 1000)) {
|
315
322
|
await session.cookies.remove(request.url, cookie.name);
|
316
323
|
continue;
|
317
324
|
}
|
318
325
|
|
319
326
|
await session.cookies.set({
|
320
327
|
domain: cookie.domain,
|
321
|
-
expirationDate
|
328
|
+
expirationDate,
|
322
329
|
httpOnly: cookie.httpOnly,
|
323
330
|
name: cookie.name,
|
324
331
|
path: cookie.path,
|