@lobehub/chat 1.98.2 → 1.99.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/.cursor/rules/backend-architecture.mdc +93 -17
- package/.cursor/rules/cursor-ux.mdc +45 -35
- package/.cursor/rules/project-introduce.mdc +72 -6
- package/.cursor/rules/rules-attach.mdc +16 -7
- package/.eslintrc.js +10 -0
- package/CHANGELOG.md +44 -0
- package/apps/desktop/README.md +7 -0
- package/apps/desktop/electron-builder.js +5 -0
- package/apps/desktop/package.json +2 -1
- package/apps/desktop/src/main/appBrowsers.ts +1 -1
- package/apps/desktop/src/main/const/dir.ts +3 -0
- package/apps/desktop/src/main/controllers/UploadFileCtr.ts +13 -8
- package/apps/desktop/src/main/core/App.ts +8 -0
- package/apps/desktop/src/main/core/BrowserManager.ts +5 -2
- package/apps/desktop/src/main/core/StaticFileServerManager.ts +221 -0
- package/apps/desktop/src/main/services/fileSrv.ts +231 -44
- package/apps/desktop/src/main/utils/next-electron-rsc.ts +36 -5
- package/changelog/v1.json +14 -0
- package/docs/development/database-schema.dbml +70 -0
- package/locales/ar/common.json +2 -0
- package/locales/ar/components.json +35 -0
- package/locales/ar/error.json +2 -0
- package/locales/ar/image.json +100 -0
- package/locales/ar/metadata.json +4 -0
- package/locales/ar/modelProvider.json +1 -0
- package/locales/ar/models.json +15 -0
- package/locales/ar/plugin.json +22 -0
- package/locales/ar/providers.json +3 -0
- package/locales/ar/setting.json +5 -0
- package/locales/bg-BG/common.json +2 -0
- package/locales/bg-BG/components.json +35 -0
- package/locales/bg-BG/error.json +2 -0
- package/locales/bg-BG/image.json +100 -0
- package/locales/bg-BG/metadata.json +4 -0
- package/locales/bg-BG/modelProvider.json +1 -0
- package/locales/bg-BG/models.json +15 -0
- package/locales/bg-BG/plugin.json +22 -0
- package/locales/bg-BG/providers.json +3 -0
- package/locales/bg-BG/setting.json +5 -0
- package/locales/de-DE/common.json +2 -0
- package/locales/de-DE/components.json +35 -0
- package/locales/de-DE/error.json +2 -0
- package/locales/de-DE/image.json +100 -0
- package/locales/de-DE/metadata.json +4 -0
- package/locales/de-DE/modelProvider.json +1 -0
- package/locales/de-DE/models.json +15 -0
- package/locales/de-DE/plugin.json +22 -0
- package/locales/de-DE/providers.json +3 -0
- package/locales/de-DE/setting.json +5 -0
- package/locales/en-US/common.json +2 -0
- package/locales/en-US/components.json +35 -0
- package/locales/en-US/error.json +2 -0
- package/locales/en-US/image.json +100 -0
- package/locales/en-US/metadata.json +4 -0
- package/locales/en-US/modelProvider.json +1 -0
- package/locales/en-US/models.json +15 -0
- package/locales/en-US/plugin.json +22 -0
- package/locales/en-US/providers.json +3 -0
- package/locales/en-US/setting.json +5 -0
- package/locales/es-ES/common.json +2 -0
- package/locales/es-ES/components.json +35 -0
- package/locales/es-ES/error.json +2 -0
- package/locales/es-ES/image.json +100 -0
- package/locales/es-ES/metadata.json +4 -0
- package/locales/es-ES/modelProvider.json +1 -0
- package/locales/es-ES/models.json +15 -0
- package/locales/es-ES/plugin.json +22 -0
- package/locales/es-ES/providers.json +3 -0
- package/locales/es-ES/setting.json +5 -0
- package/locales/fa-IR/common.json +2 -0
- package/locales/fa-IR/components.json +35 -0
- package/locales/fa-IR/error.json +2 -0
- package/locales/fa-IR/image.json +100 -0
- package/locales/fa-IR/metadata.json +4 -0
- package/locales/fa-IR/modelProvider.json +1 -0
- package/locales/fa-IR/models.json +15 -0
- package/locales/fa-IR/plugin.json +22 -0
- package/locales/fa-IR/providers.json +3 -0
- package/locales/fa-IR/setting.json +5 -0
- package/locales/fr-FR/common.json +2 -0
- package/locales/fr-FR/components.json +35 -0
- package/locales/fr-FR/error.json +2 -0
- package/locales/fr-FR/image.json +100 -0
- package/locales/fr-FR/metadata.json +4 -0
- package/locales/fr-FR/modelProvider.json +1 -0
- package/locales/fr-FR/models.json +15 -0
- package/locales/fr-FR/plugin.json +22 -0
- package/locales/fr-FR/providers.json +3 -0
- package/locales/fr-FR/setting.json +5 -0
- package/locales/it-IT/common.json +2 -0
- package/locales/it-IT/components.json +35 -0
- package/locales/it-IT/error.json +2 -0
- package/locales/it-IT/image.json +100 -0
- package/locales/it-IT/metadata.json +4 -0
- package/locales/it-IT/modelProvider.json +1 -0
- package/locales/it-IT/models.json +15 -0
- package/locales/it-IT/plugin.json +22 -0
- package/locales/it-IT/providers.json +3 -0
- package/locales/it-IT/setting.json +5 -0
- package/locales/ja-JP/common.json +2 -0
- package/locales/ja-JP/components.json +35 -0
- package/locales/ja-JP/error.json +2 -0
- package/locales/ja-JP/image.json +100 -0
- package/locales/ja-JP/metadata.json +4 -0
- package/locales/ja-JP/modelProvider.json +1 -0
- package/locales/ja-JP/models.json +15 -0
- package/locales/ja-JP/plugin.json +22 -0
- package/locales/ja-JP/providers.json +3 -0
- package/locales/ja-JP/setting.json +5 -0
- package/locales/ko-KR/common.json +2 -0
- package/locales/ko-KR/components.json +35 -0
- package/locales/ko-KR/error.json +2 -0
- package/locales/ko-KR/image.json +100 -0
- package/locales/ko-KR/metadata.json +4 -0
- package/locales/ko-KR/modelProvider.json +1 -0
- package/locales/ko-KR/models.json +15 -0
- package/locales/ko-KR/plugin.json +22 -0
- package/locales/ko-KR/providers.json +3 -0
- package/locales/ko-KR/setting.json +5 -0
- package/locales/nl-NL/common.json +2 -0
- package/locales/nl-NL/components.json +35 -0
- package/locales/nl-NL/error.json +2 -0
- package/locales/nl-NL/image.json +100 -0
- package/locales/nl-NL/metadata.json +4 -0
- package/locales/nl-NL/modelProvider.json +1 -0
- package/locales/nl-NL/models.json +15 -0
- package/locales/nl-NL/plugin.json +22 -0
- package/locales/nl-NL/providers.json +3 -0
- package/locales/nl-NL/setting.json +5 -0
- package/locales/pl-PL/common.json +2 -0
- package/locales/pl-PL/components.json +35 -0
- package/locales/pl-PL/error.json +2 -0
- package/locales/pl-PL/image.json +100 -0
- package/locales/pl-PL/metadata.json +4 -0
- package/locales/pl-PL/modelProvider.json +1 -0
- package/locales/pl-PL/models.json +15 -0
- package/locales/pl-PL/plugin.json +22 -0
- package/locales/pl-PL/providers.json +3 -0
- package/locales/pl-PL/setting.json +5 -0
- package/locales/pt-BR/common.json +2 -0
- package/locales/pt-BR/components.json +35 -0
- package/locales/pt-BR/error.json +2 -0
- package/locales/pt-BR/image.json +100 -0
- package/locales/pt-BR/metadata.json +4 -0
- package/locales/pt-BR/modelProvider.json +1 -0
- package/locales/pt-BR/models.json +15 -0
- package/locales/pt-BR/plugin.json +22 -0
- package/locales/pt-BR/providers.json +3 -0
- package/locales/pt-BR/setting.json +5 -0
- package/locales/ru-RU/common.json +2 -0
- package/locales/ru-RU/components.json +35 -0
- package/locales/ru-RU/error.json +2 -0
- package/locales/ru-RU/image.json +100 -0
- package/locales/ru-RU/metadata.json +4 -0
- package/locales/ru-RU/modelProvider.json +1 -0
- package/locales/ru-RU/models.json +15 -0
- package/locales/ru-RU/plugin.json +22 -0
- package/locales/ru-RU/providers.json +3 -0
- package/locales/ru-RU/setting.json +5 -0
- package/locales/tr-TR/common.json +2 -0
- package/locales/tr-TR/components.json +35 -0
- package/locales/tr-TR/error.json +2 -0
- package/locales/tr-TR/image.json +100 -0
- package/locales/tr-TR/metadata.json +4 -0
- package/locales/tr-TR/modelProvider.json +1 -0
- package/locales/tr-TR/models.json +15 -0
- package/locales/tr-TR/plugin.json +22 -0
- package/locales/tr-TR/providers.json +3 -0
- package/locales/tr-TR/setting.json +5 -0
- package/locales/vi-VN/common.json +2 -0
- package/locales/vi-VN/components.json +35 -0
- package/locales/vi-VN/error.json +2 -0
- package/locales/vi-VN/image.json +100 -0
- package/locales/vi-VN/metadata.json +4 -0
- package/locales/vi-VN/modelProvider.json +1 -0
- package/locales/vi-VN/models.json +15 -0
- package/locales/vi-VN/plugin.json +22 -0
- package/locales/vi-VN/providers.json +3 -0
- package/locales/vi-VN/setting.json +5 -0
- package/locales/zh-CN/common.json +2 -0
- package/locales/zh-CN/components.json +35 -0
- package/locales/zh-CN/error.json +2 -0
- package/locales/zh-CN/image.json +100 -0
- package/locales/zh-CN/metadata.json +4 -0
- package/locales/zh-CN/modelProvider.json +1 -0
- package/locales/zh-CN/models.json +15 -0
- package/locales/zh-CN/plugin.json +22 -0
- package/locales/zh-CN/providers.json +3 -0
- package/locales/zh-CN/setting.json +5 -0
- package/locales/zh-TW/common.json +2 -0
- package/locales/zh-TW/components.json +35 -0
- package/locales/zh-TW/error.json +2 -0
- package/locales/zh-TW/image.json +100 -0
- package/locales/zh-TW/metadata.json +4 -0
- package/locales/zh-TW/modelProvider.json +1 -0
- package/locales/zh-TW/models.json +15 -0
- package/locales/zh-TW/plugin.json +22 -0
- package/locales/zh-TW/providers.json +3 -0
- package/locales/zh-TW/setting.json +5 -0
- package/package.json +11 -4
- package/packages/electron-server-ipc/src/events/file.ts +3 -1
- package/packages/electron-server-ipc/src/types/file.ts +15 -0
- package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +11 -1
- package/src/app/[variants]/(main)/image/@menu/components/AspectRatioSelect/index.tsx +73 -0
- package/src/app/[variants]/(main)/image/@menu/components/SeedNumberInput/index.tsx +39 -0
- package/src/app/[variants]/(main)/image/@menu/components/SizeSelect/index.tsx +89 -0
- package/src/app/[variants]/(main)/image/@menu/default.tsx +11 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/AspectRatioSelect.tsx +24 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/DimensionControlGroup.tsx +107 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageNum.tsx +290 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUpload.tsx +504 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrl.tsx +18 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageUrlsUpload.tsx +19 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ModelSelect.tsx +155 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/ImageManageModal.tsx +415 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/MultiImagesUpload/index.tsx +732 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SeedNumberInput.tsx +24 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSelect.tsx +17 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/SizeSliderInput.tsx +15 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/StepsSliderInput.tsx +11 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/constants.ts +1 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/index.tsx +93 -0
- package/src/app/[variants]/(main)/image/@topic/default.tsx +17 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/NewTopicButton.tsx +64 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/SkeletonList.tsx +34 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItem.tsx +136 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicItemContainer.tsx +91 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +57 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicUrlSync.tsx +37 -0
- package/src/app/[variants]/(main)/image/@topic/features/Topics/index.tsx +19 -0
- package/src/app/[variants]/(main)/image/NotSupportClient.tsx +153 -0
- package/src/app/[variants]/(main)/image/_layout/Desktop/Container.tsx +35 -0
- package/src/app/[variants]/(main)/image/_layout/Desktop/RegisterHotkeys.tsx +10 -0
- package/src/app/[variants]/(main)/image/_layout/Desktop/index.tsx +30 -0
- package/src/app/[variants]/(main)/image/_layout/Mobile/index.tsx +14 -0
- package/src/app/[variants]/(main)/image/_layout/type.ts +7 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/BatchItem.tsx +196 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ActionButtons.tsx +60 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ElapsedTime.tsx +90 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/ErrorState.tsx +65 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/LoadingState.tsx +44 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/SuccessState.tsx +49 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/index.tsx +154 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/styles.ts +51 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/types.ts +39 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/GenerationItem/utils.ts +11 -0
- package/src/app/[variants]/(main)/image/features/GenerationFeed/index.tsx +97 -0
- package/src/app/[variants]/(main)/image/features/ImageWorkspace/Content.tsx +48 -0
- package/src/app/[variants]/(main)/image/features/ImageWorkspace/EmptyState.tsx +37 -0
- package/src/app/[variants]/(main)/image/features/ImageWorkspace/SkeletonList.tsx +50 -0
- package/src/app/[variants]/(main)/image/features/ImageWorkspace/index.tsx +23 -0
- package/src/app/[variants]/(main)/image/features/PromptInput/Title.tsx +38 -0
- package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +114 -0
- package/src/app/[variants]/(main)/image/layout.tsx +19 -0
- package/src/app/[variants]/(main)/image/loading.tsx +3 -0
- package/src/app/[variants]/(main)/image/page.tsx +47 -0
- package/src/app/[variants]/(main)/settings/system-agent/index.tsx +2 -1
- package/src/chains/summaryGenerationTitle.ts +25 -0
- package/src/components/ImageItem/index.tsx +9 -6
- package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/Bedrock.tsx +3 -4
- package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/ProviderApiKeyForm.tsx +5 -4
- package/src/components/InvalidAPIKey/APIKeyForm/index.tsx +108 -0
- package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/useApiKey.ts +2 -1
- package/src/components/InvalidAPIKey/index.tsx +30 -0
- package/src/components/KeyValueEditor/index.tsx +203 -0
- package/src/components/KeyValueEditor/utils.ts +42 -0
- package/src/config/aiModels/fal.ts +52 -0
- package/src/config/aiModels/index.ts +3 -0
- package/src/config/aiModels/openai.ts +20 -6
- package/src/config/llm.ts +6 -0
- package/src/config/modelProviders/fal.ts +21 -0
- package/src/config/modelProviders/index.ts +3 -0
- package/src/config/paramsSchemas/fal/flux-kontext-dev.ts +8 -0
- package/src/config/paramsSchemas/fal/flux-pro-kontext.ts +11 -0
- package/src/config/paramsSchemas/fal/flux-schnell.ts +9 -0
- package/src/config/paramsSchemas/fal/imagen4.ts +10 -0
- package/src/config/paramsSchemas/openai/gpt-image-1.ts +10 -0
- package/src/const/hotkeys.ts +2 -2
- package/src/const/image.ts +6 -0
- package/src/const/settings/systemAgent.ts +1 -0
- package/src/database/client/migrations.json +27 -0
- package/src/database/migrations/0026_add_autovacuum_tuning.sql +2 -0
- package/src/database/migrations/0027_ai_image.sql +47 -0
- package/src/database/migrations/meta/0027_snapshot.json +6003 -0
- package/src/database/migrations/meta/_journal.json +7 -0
- package/src/database/models/__tests__/asyncTask.test.ts +7 -5
- package/src/database/models/__tests__/file.test.ts +287 -0
- package/src/database/models/__tests__/generation.test.ts +786 -0
- package/src/database/models/__tests__/generationBatch.test.ts +614 -0
- package/src/database/models/__tests__/generationTopic.test.ts +411 -0
- package/src/database/models/aiModel.ts +2 -0
- package/src/database/models/asyncTask.ts +1 -1
- package/src/database/models/file.ts +28 -20
- package/src/database/models/generation.ts +197 -0
- package/src/database/models/generationBatch.ts +212 -0
- package/src/database/models/generationTopic.ts +131 -0
- package/src/database/repositories/aiInfra/index.test.ts +157 -1
- package/src/database/repositories/aiInfra/index.ts +37 -19
- package/src/database/repositories/tableViewer/index.test.ts +1 -1
- package/src/database/schemas/file.ts +8 -0
- package/src/database/schemas/generation.ts +127 -0
- package/src/database/schemas/index.ts +1 -0
- package/src/database/schemas/relations.ts +45 -1
- package/src/database/type.ts +2 -0
- package/src/database/utils/idGenerator.ts +3 -0
- package/src/features/Conversation/Error/ChatInvalidApiKey.tsx +39 -0
- package/src/features/Conversation/Error/InvalidAccessCode.tsx +2 -2
- package/src/features/Conversation/Error/index.tsx +3 -3
- package/src/features/ImageSidePanel/index.tsx +83 -0
- package/src/features/ImageTopicPanel/index.tsx +79 -0
- package/src/features/PluginDevModal/MCPManifestForm/CollapsibleSection.tsx +62 -0
- package/src/features/PluginDevModal/MCPManifestForm/QuickImportSection.tsx +158 -0
- package/src/features/PluginDevModal/MCPManifestForm/index.tsx +99 -155
- package/src/features/PluginStore/McpList/Detail/Settings/index.tsx +5 -2
- package/src/hooks/useDownloadImage.ts +31 -0
- package/src/hooks/useFetchGenerationTopics.ts +13 -0
- package/src/hooks/useHotkeys/imageScope.ts +48 -0
- package/src/libs/mcp/client.ts +55 -22
- package/src/libs/mcp/types.ts +42 -6
- package/src/libs/model-runtime/BaseAI.ts +3 -1
- package/src/libs/model-runtime/ModelRuntime.test.ts +80 -0
- package/src/libs/model-runtime/ModelRuntime.ts +15 -1
- package/src/libs/model-runtime/UniformRuntime/index.ts +4 -1
- package/src/libs/model-runtime/fal/index.test.ts +442 -0
- package/src/libs/model-runtime/fal/index.ts +88 -0
- package/src/libs/model-runtime/openai/index.test.ts +396 -2
- package/src/libs/model-runtime/openai/index.ts +129 -3
- package/src/libs/model-runtime/runtimeMap.ts +2 -0
- package/src/libs/model-runtime/types/image.ts +25 -0
- package/src/libs/model-runtime/types/type.ts +1 -0
- package/src/libs/model-runtime/utils/openaiCompatibleFactory/index.ts +10 -0
- package/src/libs/standard-parameters/index.ts +1 -0
- package/src/libs/standard-parameters/meta-schema.test.ts +214 -0
- package/src/libs/standard-parameters/meta-schema.ts +147 -0
- package/src/libs/swr/index.ts +1 -0
- package/src/libs/trpc/async/asyncAuth.ts +29 -8
- package/src/libs/trpc/async/context.ts +42 -4
- package/src/libs/trpc/async/index.ts +17 -4
- package/src/libs/trpc/async/init.ts +8 -0
- package/src/libs/trpc/client/lambda.ts +19 -2
- package/src/locales/default/common.ts +2 -0
- package/src/locales/default/components.ts +35 -0
- package/src/locales/default/error.ts +2 -0
- package/src/locales/default/image.ts +100 -0
- package/src/locales/default/index.ts +2 -0
- package/src/locales/default/metadata.ts +4 -0
- package/src/locales/default/modelProvider.ts +2 -0
- package/src/locales/default/plugin.ts +22 -0
- package/src/locales/default/setting.ts +5 -0
- package/src/middleware.ts +1 -0
- package/src/server/modules/ElectronIPCClient/index.ts +9 -1
- package/src/server/modules/S3/index.ts +15 -0
- package/src/server/routers/async/caller.ts +9 -1
- package/src/server/routers/async/image.ts +253 -0
- package/src/server/routers/async/index.ts +2 -0
- package/src/server/routers/lambda/aiProvider.test.ts +2 -0
- package/src/server/routers/lambda/generation.test.ts +267 -0
- package/src/server/routers/lambda/generation.ts +86 -0
- package/src/server/routers/lambda/generationBatch.test.ts +376 -0
- package/src/server/routers/lambda/generationBatch.ts +56 -0
- package/src/server/routers/lambda/generationTopic.test.ts +508 -0
- package/src/server/routers/lambda/generationTopic.ts +93 -0
- package/src/server/routers/lambda/image.ts +248 -0
- package/src/server/routers/lambda/index.ts +8 -0
- package/src/server/routers/tools/mcp.ts +15 -0
- package/src/server/services/file/__tests__/index.test.ts +135 -0
- package/src/server/services/file/impls/local.test.ts +153 -52
- package/src/server/services/file/impls/local.ts +70 -46
- package/src/server/services/file/impls/s3.test.ts +114 -0
- package/src/server/services/file/impls/s3.ts +40 -0
- package/src/server/services/file/impls/type.ts +10 -0
- package/src/server/services/file/index.ts +14 -0
- package/src/server/services/generation/index.ts +239 -0
- package/src/server/services/mcp/index.ts +20 -2
- package/src/services/__tests__/generation.test.ts +40 -0
- package/src/services/__tests__/generationBatch.test.ts +36 -0
- package/src/services/__tests__/generationTopic.test.ts +72 -0
- package/src/services/electron/file.ts +3 -1
- package/src/services/generation.ts +16 -0
- package/src/services/generationBatch.ts +25 -0
- package/src/services/generationTopic.ts +28 -0
- package/src/services/image.ts +33 -0
- package/src/services/mcp.ts +12 -7
- package/src/services/upload.ts +43 -9
- package/src/store/aiInfra/slices/aiProvider/action.ts +31 -6
- package/src/store/aiInfra/slices/aiProvider/initialState.ts +1 -0
- package/src/store/aiInfra/slices/aiProvider/selectors.ts +3 -0
- package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +5 -5
- package/src/store/chat/slices/message/action.ts +2 -2
- package/src/store/chat/slices/translate/action.ts +1 -1
- package/src/store/global/initialState.ts +9 -0
- package/src/store/global/selectors/systemStatus.ts +8 -0
- package/src/store/image/index.ts +2 -0
- package/src/store/image/initialState.ts +25 -0
- package/src/store/image/selectors.ts +4 -0
- package/src/store/image/slices/createImage/action.test.ts +330 -0
- package/src/store/image/slices/createImage/action.ts +134 -0
- package/src/store/image/slices/createImage/initialState.ts +9 -0
- package/src/store/image/slices/createImage/selectors.test.ts +114 -0
- package/src/store/image/slices/createImage/selectors.ts +9 -0
- package/src/store/image/slices/generationBatch/action.test.ts +495 -0
- package/src/store/image/slices/generationBatch/action.ts +303 -0
- package/src/store/image/slices/generationBatch/initialState.ts +13 -0
- package/src/store/image/slices/generationBatch/reducer.test.ts +568 -0
- package/src/store/image/slices/generationBatch/reducer.ts +101 -0
- package/src/store/image/slices/generationBatch/selectors.test.ts +307 -0
- package/src/store/image/slices/generationBatch/selectors.ts +36 -0
- package/src/store/image/slices/generationConfig/action.test.ts +351 -0
- package/src/store/image/slices/generationConfig/action.ts +295 -0
- package/src/store/image/slices/generationConfig/hooks.test.ts +304 -0
- package/src/store/image/slices/generationConfig/hooks.ts +118 -0
- package/src/store/image/slices/generationConfig/index.ts +1 -0
- package/src/store/image/slices/generationConfig/initialState.ts +37 -0
- package/src/store/image/slices/generationConfig/selectors.test.ts +204 -0
- package/src/store/image/slices/generationConfig/selectors.ts +25 -0
- package/src/store/image/slices/generationTopic/action.test.ts +687 -0
- package/src/store/image/slices/generationTopic/action.ts +319 -0
- package/src/store/image/slices/generationTopic/index.ts +2 -0
- package/src/store/image/slices/generationTopic/initialState.ts +14 -0
- package/src/store/image/slices/generationTopic/reducer.test.ts +198 -0
- package/src/store/image/slices/generationTopic/reducer.ts +66 -0
- package/src/store/image/slices/generationTopic/selectors.test.ts +103 -0
- package/src/store/image/slices/generationTopic/selectors.ts +15 -0
- package/src/store/image/store.ts +42 -0
- package/src/store/image/utils/size.ts +51 -0
- package/src/store/tool/slices/customPlugin/action.ts +10 -1
- package/src/store/tool/slices/mcpStore/action.ts +6 -4
- package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +4 -0
- package/src/store/user/slices/settings/selectors/systemAgent.ts +2 -0
- package/src/types/aiModel.ts +8 -3
- package/src/types/aiProvider.ts +2 -0
- package/src/types/asyncTask.ts +2 -0
- package/src/types/files/index.ts +5 -0
- package/src/types/generation/index.ts +80 -0
- package/src/types/hotkey.ts +2 -0
- package/src/types/plugins/mcp.ts +2 -6
- package/src/types/tool/plugin.ts +8 -0
- package/src/types/user/settings/keyVaults.ts +5 -0
- package/src/types/user/settings/systemAgent.ts +1 -0
- package/src/utils/client/downloadFile.ts +33 -4
- package/src/utils/number.test.ts +105 -0
- package/src/utils/number.ts +25 -0
- package/src/utils/server/__tests__/geo.test.ts +6 -3
- package/src/utils/storeDebug.test.ts +152 -0
- package/src/utils/storeDebug.ts +16 -7
- package/src/utils/time.test.ts +259 -0
- package/src/utils/time.ts +18 -0
- package/src/utils/units.ts +61 -0
- package/src/utils/url.test.ts +358 -9
- package/src/utils/url.ts +105 -3
- package/{vitest.server.config.ts → vitest.config.server.ts} +3 -0
- package/.cursor/rules/i18n/i18n-auto-attached.mdc +0 -6
- package/src/features/Conversation/Error/APIKeyForm/index.tsx +0 -105
- package/src/features/Conversation/Error/InvalidAPIKey.tsx +0 -16
- package/src/features/PluginDevModal/MCPManifestForm/EnvEditor.tsx +0 -227
- /package/.cursor/rules/{i18n/i18n.mdc → i18n.mdc} +0 -0
- /package/src/app/[variants]/(main)/settings/system-agent/features/{createForm.tsx → SystemAgentForm.tsx} +0 -0
- /package/src/{features/Conversation/Error → components/InvalidAPIKey}/APIKeyForm/LoadingContext.ts +0 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"config": {
|
3
|
+
"aspectRatio": {
|
4
|
+
"label": "Съотношение",
|
5
|
+
"lock": "Заключване на съотношението на страните",
|
6
|
+
"unlock": "Отключване на съотношението на страните"
|
7
|
+
},
|
8
|
+
"header": {
|
9
|
+
"desc": "Кратко описание, създавайте веднага",
|
10
|
+
"title": "Рисуване"
|
11
|
+
},
|
12
|
+
"height": {
|
13
|
+
"label": "Височина"
|
14
|
+
},
|
15
|
+
"imageNum": {
|
16
|
+
"label": "Брой изображения"
|
17
|
+
},
|
18
|
+
"imageUrl": {
|
19
|
+
"label": "Референтно изображение"
|
20
|
+
},
|
21
|
+
"imageUrls": {
|
22
|
+
"label": "Референтни изображения"
|
23
|
+
},
|
24
|
+
"model": {
|
25
|
+
"label": "Модел"
|
26
|
+
},
|
27
|
+
"prompt": {
|
28
|
+
"placeholder": "Опишете съдържанието, което искате да генерирате"
|
29
|
+
},
|
30
|
+
"seed": {
|
31
|
+
"label": "Семена",
|
32
|
+
"random": "Случаен семенен код"
|
33
|
+
},
|
34
|
+
"size": {
|
35
|
+
"label": "Размер"
|
36
|
+
},
|
37
|
+
"steps": {
|
38
|
+
"label": "Стъпки"
|
39
|
+
},
|
40
|
+
"title": "AI рисуване",
|
41
|
+
"width": {
|
42
|
+
"label": "Ширина"
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"generation": {
|
46
|
+
"actions": {
|
47
|
+
"applySeed": "Приложи семе",
|
48
|
+
"copyError": "Копиране на грешка",
|
49
|
+
"copyPrompt": "Копирай подсказката",
|
50
|
+
"copySeed": "Копиране на семето",
|
51
|
+
"delete": "Изтриване",
|
52
|
+
"deleteBatch": "Изтриване на партида",
|
53
|
+
"download": "Изтегляне",
|
54
|
+
"downloadFailed": "Неуспешно изтегляне на изображението",
|
55
|
+
"errorCopied": "Съобщението за грешка е копирано в клипборда",
|
56
|
+
"errorCopyFailed": "Неуспешно копиране на съобщението за грешка",
|
57
|
+
"generate": "Генерирай",
|
58
|
+
"promptCopied": "Подсказката е копирана в клипборда",
|
59
|
+
"promptCopyFailed": "Неуспешно копиране на подсказката",
|
60
|
+
"reuseSettings": "Използване на настройките отново",
|
61
|
+
"seedApplied": "Семето е приложено към конфигурацията",
|
62
|
+
"seedApplyFailed": "Неуспешно прилагане на семе",
|
63
|
+
"seedCopied": "Семето е копирано в клипборда",
|
64
|
+
"seedCopyFailed": "Неуспешно копиране на семето"
|
65
|
+
},
|
66
|
+
"metadata": {
|
67
|
+
"count": "{{count}} изображения"
|
68
|
+
},
|
69
|
+
"status": {
|
70
|
+
"failed": "Генерирането не бе успешно",
|
71
|
+
"generating": "Генериране..."
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"notSupportGuide": {
|
75
|
+
"desc": "Настоящият инсталиран екземпляр използва клиентски режим с база данни и не поддържа функцията за генериране на AI изображения. Моля, преминете към <1>режим на сървърна база данни</1> или използвайте директно <3>LobeChat Cloud</3>",
|
76
|
+
"features": {
|
77
|
+
"fileIntegration": {
|
78
|
+
"desc": "Дълбока интеграция с файловата система, генерираните изображения се запазват автоматично във файловата система, поддържайки централизирано управление и организация",
|
79
|
+
"title": "Интеграция с файловата система"
|
80
|
+
},
|
81
|
+
"llmAssisted": {
|
82
|
+
"desc": "Комбинира възможностите на големи езикови модели за интелигентна оптимизация и разширяване на подсказките, подобрявайки качеството на генерираните изображения (скоро)",
|
83
|
+
"title": "Подпомагане с LLM"
|
84
|
+
},
|
85
|
+
"multiProviders": {
|
86
|
+
"desc": "Поддържа множество AI доставчици за рисуване, включително OpenAI gpt-image-1, Google Imagen, FAL.ai и други, предоставяйки богат избор от модели",
|
87
|
+
"title": "Поддръжка на множество доставчици"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "Настоящият режим на инсталация не поддържа AI рисуване"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Създаване на нова тема",
|
94
|
+
"deleteConfirm": "Потвърждение за изтриване на тема",
|
95
|
+
"deleteConfirmDesc": "Ще изтриете тази генерирана тема. След изтриването тя не може да бъде възстановена. Моля, действайте внимателно.",
|
96
|
+
"empty": "Няма генерирани теми",
|
97
|
+
"title": "Тема на рисуване",
|
98
|
+
"untitled": "По подразбиране тема"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Търсене",
|
33
33
|
"title": "Открий"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} ви предоставя най-доброто изживяване с GPT Image, Flux, Midjourney, Stable Diffusion",
|
37
|
+
"title": "AI рисуване"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Търсене, генериране на графики, академични изследвания, генериране на изображения, генериране на видео, генериране на глас, автоматизирани работни потоци, персонализирайте ToolCall плъгините на ChatGPT / Claude",
|
37
41
|
"title": "Пазар на плъгини"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Персонализиран регион за услуги",
|
67
67
|
"customSessionToken": "Персонализиран токен за сесия",
|
68
68
|
"description": "Въведете вашия AWS AccessKeyId / SecretAccessKey, за да започнете сесия. Приложението няма да запази вашата удостоверителна конфигурация",
|
69
|
+
"imageGenerationDescription": "Въведете вашия AWS AccessKeyId / SecretAccessKey, за да започнете генерирането. Приложението няма да записва вашите данни за удостоверяване",
|
69
70
|
"title": "Използване на персонализирана информация за удостоверяване на Bedrock"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "В сравнение с ERNIE-X1-32K, моделът предлага по-добри резултати и производителност."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Модел за редактиране на изображения Frontier."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro] може да обработва текст и референтни изображения като вход, осигурявайки безпроблемно целенасочено локално редактиране и сложни трансформации на цялостната сцена."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell] е потоков трансформаторен модел с 12 милиарда параметри, способен да генерира висококачествени изображения от текст в 1 до 4 стъпки, подходящ за лична и търговска употреба."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Тунинг) предлага стабилна и настройваема производителност, идеален избор за решения на сложни задачи."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe е модел за преобразуване на реч в текст, използващ GPT-4o за транскрибиране на аудио. В сравнение с оригиналния модел Whisper, той намалява процента на грешки в думите и подобрява разпознаването на езика и точността. Използвайте го за по-точни транскрипции."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "Роден мултимодален модел за генериране на изображения ChatGPT."
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Този модел е подобрен по отношение на точност, спазване на инструкции и многоезични способности."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Най-новият мултимодален модел на HunYuan, поддържащ генериране на текстово съдържание от изображения и текстови входове."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Най-висококачественият модел за генериране на изображения на Google."
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5 предлага интелигентни решения за диалог в множество сценарии."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Разширени настройки"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Списък с параметри, предадени на командата за изпълнение, обикновено тук се въвежда името на MCP сървъра или пътя до стартиращия скрипт",
|
62
65
|
"label": "Командни параметри",
|
63
66
|
"placeholder": "Например: --port 8080 --debug",
|
64
67
|
"required": "Моля, въведете параметри за стартиране"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "API ключ",
|
71
|
+
"desc": "Изберете метод за удостоверяване на MCP сървъра",
|
72
|
+
"label": "Тип удостоверяване",
|
73
|
+
"none": "Без удостоверяване",
|
74
|
+
"placeholder": "Моля, изберете тип удостоверяване",
|
75
|
+
"token": {
|
76
|
+
"desc": "Въведете своя API ключ или Bearer токен",
|
77
|
+
"label": "API ключ",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Моля, въведете удостоверителния токен"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Икона на плъгин"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "Променливи на средата на MCP сървър",
|
91
107
|
"stringifyError": "Не може да се сериализира параметър, моля проверете формата на параметрите"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Добави ред",
|
111
|
+
"desc": "Въведете HTTP заглавки",
|
112
|
+
"label": "HTTP заглавки"
|
113
|
+
},
|
93
114
|
"identifier": {
|
94
115
|
"desc": "Определете име за вашия MCP плъгин, трябва да използвате английски символи",
|
95
116
|
"invalid": "Можете да въвеждате само английски символи, цифри, - и _",
|
@@ -269,6 +290,7 @@
|
|
269
290
|
"showDetails": "Покажи детайли"
|
270
291
|
},
|
271
292
|
"errorTypes": {
|
293
|
+
"AUTHORIZATION_ERROR": "Грешка при удостоверяване на разрешения",
|
272
294
|
"CONNECTION_FAILED": "Връзката не бе осъществена",
|
273
295
|
"INITIALIZATION_TIMEOUT": "Времето за инициализация изтече",
|
274
296
|
"PROCESS_SPAWN_ERROR": "Неуспешно стартиране на процеса",
|
@@ -29,6 +29,9 @@
|
|
29
29
|
"deepseek": {
|
30
30
|
"description": "DeepSeek е компания, специализирана в изследвания и приложения на технологии за изкуствен интелект, чийто най-нов модел DeepSeek-V2.5 комбинира способности за общи диалози и обработка на код, постигайки значителни подобрения в съответствието с човешките предпочитания, писателските задачи и следването на инструкции."
|
31
31
|
},
|
32
|
+
"fal": {
|
33
|
+
"description": "Генеративна медийна платформа за разработчици"
|
34
|
+
},
|
32
35
|
"fireworksai": {
|
33
36
|
"description": "Fireworks AI е водещ доставчик на напреднали езикови модели, фокусирайки се върху извикване на функции и мултимодална обработка. Най-новият им модел Firefunction V2, базиран на Llama-3, е оптимизиран за извикване на функции, диалози и следване на инструкции. Визуалният езиков модел FireLLaVA-13B поддържа смесени входове от изображения и текст. Други забележителни модели включват серията Llama и серията Mixtral, предлагащи ефективна поддръжка за многоезично следване на инструкции и генериране."
|
34
37
|
},
|
@@ -484,6 +484,11 @@
|
|
484
484
|
"placeholder": "Моля, въведете персонализирана подканва",
|
485
485
|
"title": "Персонализирана подканва"
|
486
486
|
},
|
487
|
+
"generationTopic": {
|
488
|
+
"label": "Модел за именуване на теми за AI рисуване",
|
489
|
+
"modelDesc": "Модел, предназначен за автоматично именуване на теми за AI рисуване",
|
490
|
+
"title": "Автоматично именуване на теми за AI рисуване"
|
491
|
+
},
|
487
492
|
"helpInfo": "Когато създавате нов асистент, настройките по подразбиране ще се използват като предварителни стойности.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "Модел на история на сесията",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Vollbildmodus",
|
185
185
|
"historyRange": "Verlaufsbereich",
|
186
|
+
"import": "Importieren",
|
186
187
|
"importData": "Daten importieren",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "KI-Gemälde",
|
327
329
|
"chat": "Chat",
|
328
330
|
"discover": "Entdecken",
|
329
331
|
"files": "Dateien",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Zurück"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Bild ändern"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Bild hinzufügen",
|
77
|
+
"secondary": "Zum Hochladen klicken"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Neue Zeile hinzufügen",
|
82
|
+
"deleteTooltip": "Löschen",
|
83
|
+
"duplicateKeyError": "Der Schlüsselname muss eindeutig sein",
|
84
|
+
"keyPlaceholder": "Schlüssel",
|
85
|
+
"valuePlaceholder": "Wert"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Unbegrenzt"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Anbieter",
|
92
108
|
"title": "Modell"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Klicken Sie, um weitere hochzuladen"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Fertig",
|
116
|
+
"newFileIndicator": "Neu",
|
117
|
+
"selectImageToPreview": "Bitte wählen Sie ein Bild zur Vorschau aus",
|
118
|
+
"title": "Bilder verwalten ({{count}})",
|
119
|
+
"upload": "Bild hochladen"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Klicken Sie, um Bilder hochzuladen",
|
123
|
+
"secondary": "Mehrere Bilder können ausgewählt werden"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} hochgeladen"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Hinweis schließen",
|
package/locales/de-DE/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Serviceanfrage fehlgeschlagen. Bitte überprüfen Sie die Konfiguration oder versuchen Sie es erneut"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Verbindungstest fehlgeschlagen: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Serviceanfrage fehlgeschlagen. Bitte überprüfen Sie die Konfiguration oder versuchen Sie es erneut"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Fügen Sie die OpenAI-Proxy-URL hinzu (optional)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Geben Sie Ihren {{name}} API-Schlüssel ein, um die Sitzung zu starten.",
|
134
|
+
"imageGenerationDescription": "Geben Sie Ihren {{name}} API-Schlüssel ein, um mit der Generierung zu beginnen",
|
133
135
|
"title": "Verwenden Sie Ihren benutzerdefinierten {{name}} API-Schlüssel"
|
134
136
|
},
|
135
137
|
"closeMessage": "Hinweis schließen",
|
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"config": {
|
3
|
+
"aspectRatio": {
|
4
|
+
"label": "Seitenverhältnis",
|
5
|
+
"lock": "Seitenverhältnis sperren",
|
6
|
+
"unlock": "Seitenverhältnis entsperren"
|
7
|
+
},
|
8
|
+
"header": {
|
9
|
+
"desc": "Einfache Beschreibung, sofortige Kreation",
|
10
|
+
"title": "Malerei"
|
11
|
+
},
|
12
|
+
"height": {
|
13
|
+
"label": "Höhe"
|
14
|
+
},
|
15
|
+
"imageNum": {
|
16
|
+
"label": "Anzahl der Bilder"
|
17
|
+
},
|
18
|
+
"imageUrl": {
|
19
|
+
"label": "Referenzbild"
|
20
|
+
},
|
21
|
+
"imageUrls": {
|
22
|
+
"label": "Referenzbilder"
|
23
|
+
},
|
24
|
+
"model": {
|
25
|
+
"label": "Modell"
|
26
|
+
},
|
27
|
+
"prompt": {
|
28
|
+
"placeholder": "Beschreiben Sie den Inhalt, den Sie generieren möchten"
|
29
|
+
},
|
30
|
+
"seed": {
|
31
|
+
"label": "Seed",
|
32
|
+
"random": "Zufälliger Seed"
|
33
|
+
},
|
34
|
+
"size": {
|
35
|
+
"label": "Größe"
|
36
|
+
},
|
37
|
+
"steps": {
|
38
|
+
"label": "Schritte"
|
39
|
+
},
|
40
|
+
"title": "KI-Malerei",
|
41
|
+
"width": {
|
42
|
+
"label": "Breite"
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"generation": {
|
46
|
+
"actions": {
|
47
|
+
"applySeed": "Saatgut anwenden",
|
48
|
+
"copyError": "Fehlermeldung kopieren",
|
49
|
+
"copyPrompt": "Prompt kopieren",
|
50
|
+
"copySeed": "Seed kopieren",
|
51
|
+
"delete": "Löschen",
|
52
|
+
"deleteBatch": "Batch löschen",
|
53
|
+
"download": "Herunterladen",
|
54
|
+
"downloadFailed": "Bild-Download fehlgeschlagen",
|
55
|
+
"errorCopied": "Fehlermeldung wurde in die Zwischenablage kopiert",
|
56
|
+
"errorCopyFailed": "Fehlermeldung kopieren fehlgeschlagen",
|
57
|
+
"generate": "Generieren",
|
58
|
+
"promptCopied": "Prompt wurde in die Zwischenablage kopiert",
|
59
|
+
"promptCopyFailed": "Prompt-Kopieren fehlgeschlagen",
|
60
|
+
"reuseSettings": "Einstellungen wiederverwenden",
|
61
|
+
"seedApplied": "Saatgut wurde auf die Konfiguration angewendet",
|
62
|
+
"seedApplyFailed": "Anwenden des Saatguts fehlgeschlagen",
|
63
|
+
"seedCopied": "Seed wurde in die Zwischenablage kopiert",
|
64
|
+
"seedCopyFailed": "Seed-Kopieren fehlgeschlagen"
|
65
|
+
},
|
66
|
+
"metadata": {
|
67
|
+
"count": "{{count}} Bilder"
|
68
|
+
},
|
69
|
+
"status": {
|
70
|
+
"failed": "Generierung fehlgeschlagen",
|
71
|
+
"generating": "Wird generiert..."
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"notSupportGuide": {
|
75
|
+
"desc": "Die aktuell eingesetzte Instanz verwendet den Client-Datenbankmodus und unterstützt die KI-Bilderzeugung nicht. Bitte wechseln Sie zum <1>Server-Datenbankmodus</1> oder nutzen Sie direkt <3>LobeChat Cloud</3>.",
|
76
|
+
"features": {
|
77
|
+
"fileIntegration": {
|
78
|
+
"desc": "Tiefgreifende Integration mit dem Dateimanagementsystem, generierte Bilder werden automatisch im Dateisystem gespeichert und können zentral verwaltet und organisiert werden.",
|
79
|
+
"title": "Dateisystem-Integration"
|
80
|
+
},
|
81
|
+
"llmAssisted": {
|
82
|
+
"desc": "Kombiniert die Fähigkeiten großer Sprachmodelle zur intelligenten Optimierung und Erweiterung von Prompts, um die Bildqualität zu verbessern (bald verfügbar).",
|
83
|
+
"title": "LLM-unterstützte Bildgenerierung"
|
84
|
+
},
|
85
|
+
"multiProviders": {
|
86
|
+
"desc": "Unterstützt verschiedene KI-Malservice-Anbieter, darunter OpenAI gpt-image-1, Google Imagen, FAL.ai und weitere, und bietet eine breite Modellauswahl.",
|
87
|
+
"title": "Unterstützung mehrerer Anbieter"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "Der aktuell eingesetzte Modus unterstützt keine KI-Malerei"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Neues Thema erstellen",
|
94
|
+
"deleteConfirm": "Generiertes Thema löschen",
|
95
|
+
"deleteConfirmDesc": "Das generierte Thema wird gelöscht und kann nicht wiederhergestellt werden. Bitte vorsichtig vorgehen.",
|
96
|
+
"empty": "Keine generierten Themen vorhanden",
|
97
|
+
"title": "Malthema",
|
98
|
+
"untitled": "Standardthema"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Suche",
|
33
33
|
"title": "Entdecken"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} bietet Ihnen das beste Nutzungserlebnis für GPT Image, Flux, Midjourney und Stable Diffusion",
|
37
|
+
"title": "KI-Grafik"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Suche, Diagrammerstellung, akademisch, Bilderzeugung, Videoerzeugung, Spracherzeugung, automatisierte Workflows, passe die ToolCall-Plugin-Funktionen von ChatGPT / Claude an",
|
37
41
|
"title": "Plugin-Markt"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Benutzerdefinierter Regionsservice",
|
67
67
|
"customSessionToken": "Benutzerdefiniertes Sitzungstoken",
|
68
68
|
"description": "Geben Sie Ihren AWS AccessKeyId / SecretAccessKey ein, um das Gespräch zu beginnen. Die App speichert Ihre Authentifizierungsinformationen nicht.",
|
69
|
+
"imageGenerationDescription": "Geben Sie Ihre AWS AccessKeyId / SecretAccessKey ein, um mit der Generierung zu beginnen. Die Anwendung speichert Ihre Authentifizierungsdaten nicht.",
|
69
70
|
"title": "Verwenden Sie benutzerdefinierte Bedrock-Authentifizierungsinformationen"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "Im Vergleich zu ERNIE-X1-32K bietet dieses Modell bessere Leistung und Effizienz."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Frontier Bildbearbeitungsmodell."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro] kann Text und Referenzbilder als Eingabe verarbeiten und ermöglicht nahtlose zielgerichtete lokale Bearbeitungen sowie komplexe umfassende Szenenveränderungen."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell] ist ein Streaming-Transformator-Modell mit 12 Milliarden Parametern, das in 1 bis 4 Schritten hochwertige Bilder aus Text generiert und sich für private und kommerzielle Nutzung eignet."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Tuning) bietet stabile und anpassbare Leistung und ist die ideale Wahl für Lösungen komplexer Aufgaben."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe ist ein Sprach-zu-Text-Modell, das GPT-4o zur Transkription von Audio verwendet. Im Vergleich zum ursprünglichen Whisper-Modell verbessert es die Wortfehlerrate sowie die Spracherkennung und Genauigkeit. Verwenden Sie es für genauere Transkriptionen."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "ChatGPT natives multimodales Bildgenerierungsmodell"
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Dieses Modell hat Verbesserungen in Bezug auf Genauigkeit, Befolgung von Anweisungen und Mehrsprachigkeit erfahren."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Das neueste multimodale Modell von Hunyuan unterstützt die Eingabe von Bildern und Text zur Generierung von Textinhalten."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Googles hochwertigstes Bildgenerierungsmodell"
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5 bietet intelligente Dialoglösungen in mehreren Szenarien."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Erweiterte Einstellungen"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Liste der Parameter, die an den auszuführenden Befehl übergeben werden, normalerweise hier den MCP-Servernamen oder den Pfad zum Startskript eingeben",
|
62
65
|
"label": "Befehlsparameter",
|
63
66
|
"placeholder": "Zum Beispiel: mcp-hello-world",
|
64
67
|
"required": "Bitte geben Sie die Startparameter ein"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "API-Schlüssel",
|
71
|
+
"desc": "Wählen Sie die Authentifizierungsmethode für den MCP-Server",
|
72
|
+
"label": "Authentifizierungstyp",
|
73
|
+
"none": "Keine Authentifizierung erforderlich",
|
74
|
+
"placeholder": "Bitte Authentifizierungstyp auswählen",
|
75
|
+
"token": {
|
76
|
+
"desc": "Geben Sie Ihren API-Schlüssel oder Bearer-Token ein",
|
77
|
+
"label": "API-Schlüssel",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Bitte Authentifizierungs-Token eingeben"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Plugin-Icon"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "MCP-Server-Umgebungsvariablen",
|
91
107
|
"stringifyError": "Parameter können nicht serialisiert werden, bitte überprüfen Sie das Parameterformat"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Neue Zeile hinzufügen",
|
111
|
+
"desc": "HTTP-Anforderungsheader eingeben",
|
112
|
+
"label": "HTTP-Header"
|
113
|
+
},
|
93
114
|
"identifier": {
|
94
115
|
"desc": "Geben Sie Ihrem MCP-Plugin einen Namen, der englische Zeichen verwenden muss",
|
95
116
|
"invalid": "Es dürfen nur englische Zeichen, Zahlen, - und _ verwendet werden",
|
@@ -269,6 +290,7 @@
|
|
269
290
|
"showDetails": "Details anzeigen"
|
270
291
|
},
|
271
292
|
"errorTypes": {
|
293
|
+
"AUTHORIZATION_ERROR": "Autorisierungsfehler",
|
272
294
|
"CONNECTION_FAILED": "Verbindung fehlgeschlagen",
|
273
295
|
"INITIALIZATION_TIMEOUT": "Initialisierung zeitüberschritten",
|
274
296
|
"PROCESS_SPAWN_ERROR": "Prozessstart fehlgeschlagen",
|
@@ -29,6 +29,9 @@
|
|
29
29
|
"deepseek": {
|
30
30
|
"description": "DeepSeek ist ein Unternehmen, das sich auf die Forschung und Anwendung von KI-Technologien spezialisiert hat. Ihr neuestes Modell, DeepSeek-V2.5, kombiniert allgemeine Dialog- und Codeverarbeitungsfähigkeiten und hat signifikante Fortschritte in den Bereichen menschliche Präferenzanpassung, Schreibaufgaben und Befehlsbefolgung erzielt."
|
31
31
|
},
|
32
|
+
"fal": {
|
33
|
+
"description": "Generative Medienplattform für Entwickler"
|
34
|
+
},
|
32
35
|
"fireworksai": {
|
33
36
|
"description": "Fireworks AI ist ein führender Anbieter von fortschrittlichen Sprachmodellen, der sich auf Funktionsaufrufe und multimodale Verarbeitung spezialisiert hat. Ihr neuestes Modell, Firefunction V2, basiert auf Llama-3 und ist für Funktionsaufrufe, Dialoge und Befehlsbefolgung optimiert. Das visuelle Sprachmodell FireLLaVA-13B unterstützt gemischte Eingaben von Bildern und Text. Weitere bemerkenswerte Modelle sind die Llama-Serie und die Mixtral-Serie, die effiziente mehrsprachige Befehlsbefolgung und Generierungsunterstützung bieten."
|
34
37
|
},
|
@@ -484,6 +484,11 @@
|
|
484
484
|
"placeholder": "Bitte benutzerdefinierte Eingabe eingeben",
|
485
485
|
"title": "Benutzerdefinierte Eingabe"
|
486
486
|
},
|
487
|
+
"generationTopic": {
|
488
|
+
"label": "Modell zur Benennung von KI-Malthemen",
|
489
|
+
"modelDesc": "Modell zur automatischen Benennung von Themen für KI-Malerei",
|
490
|
+
"title": "Automatische Benennung von KI-Malthemen"
|
491
|
+
},
|
487
492
|
"helpInfo": "Beim Erstellen eines neuen Assistenten werden die Standardassistenteneinstellungen als Voreinstellungen verwendet.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "Gesprächshistorienmodell",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Full Screen Mode",
|
185
185
|
"historyRange": "History Range",
|
186
|
+
"import": "Import",
|
186
187
|
"importData": "Import Data",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "AI Painting",
|
327
329
|
"chat": "Chat",
|
328
330
|
"discover": "Discover",
|
329
331
|
"files": "Files",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Back"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Click to Change Image"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Add Image",
|
77
|
+
"secondary": "Click to Upload"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Add a row",
|
82
|
+
"deleteTooltip": "Delete",
|
83
|
+
"duplicateKeyError": "Key must be unique",
|
84
|
+
"keyPlaceholder": "Key",
|
85
|
+
"valuePlaceholder": "Value"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Unlimited"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Provider",
|
92
108
|
"title": "Model"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Click to upload more"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Done",
|
116
|
+
"newFileIndicator": "New",
|
117
|
+
"selectImageToPreview": "Please select an image to preview",
|
118
|
+
"title": "Manage Images ({{count}})",
|
119
|
+
"upload": "Upload Images"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Click to upload images",
|
123
|
+
"secondary": "Supports multiple image selection"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} uploaded"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Close Prompt",
|
package/locales/en-US/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Service request failed, please check the configuration or try again"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Test connection failed: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Service request failed, please check the configuration or try again"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Add OpenAI proxy URL (optional)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Enter your {{name}} API Key to start the session",
|
134
|
+
"imageGenerationDescription": "Enter your {{name}} API Key to start generating",
|
133
135
|
"title": "Use custom {{name}} API Key"
|
134
136
|
},
|
135
137
|
"closeMessage": "Close message",
|