@lobehub/chat 1.98.2 → 1.99.0
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 +27 -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/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/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 +9 -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 +43 -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 +156 -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 +151 -1
- package/src/database/repositories/aiInfra/index.ts +28 -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 +1 -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 +25 -5
- 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 +1 -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": "OpenAI gpt-image-1, Google Imagen, FAL.ai 등 다양한 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 이미지, Flux, Midjourney, Stable Diffusion 사용 경험을 제공합니다",
|
37
|
+
"title": "AI 그림"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "검색, 차트 생성, 학술, 이미지 생성, 비디오 생성, 음성 생성, 자동화 워크플로우, ChatGPT / Claude 전용 ToolCall 플러그인 기능을 맞춤 설정하세요",
|
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": "프론티어 이미지 편집 모델."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro]는 텍스트와 참조 이미지를 입력으로 처리하여 목표 지향적인 부분 편집과 복잡한 전체 장면 변환을 원활하게 수행할 수 있습니다."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell]은 120억 개의 매개변수를 가진 스트림 변환기 모델로, 1~4단계 내에 텍스트로부터 고품질 이미지를 생성하며 개인 및 상업적 용도에 적합합니다."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Tuning)은 안정적이고 조정 가능한 성능을 제공하며, 복잡한 작업 솔루션의 이상적인 선택입니다."
|
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": "혼원 최신 다중 모달 모델로, 이미지와 텍스트 입력을 지원하여 텍스트 콘텐츠를 생성합니다."
|
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": "예: mcp-hello-world",
|
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": "요청 헤더를 입력하세요",
|
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": "Volledig scherm",
|
185
185
|
"historyRange": "Geschiedenisbereik",
|
186
|
+
"import": "Importeren",
|
186
187
|
"importData": "Gegevens importeren",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "AI-afbeelding",
|
327
329
|
"chat": "Chat",
|
328
330
|
"discover": "Ontdekken",
|
329
331
|
"files": "Bestanden",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Terug"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Klik om afbeelding te wijzigen"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Afbeelding toevoegen",
|
77
|
+
"secondary": "Klik om te uploaden"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Voeg een regel toe",
|
82
|
+
"deleteTooltip": "Verwijderen",
|
83
|
+
"duplicateKeyError": "Sleutelnaam moet uniek zijn",
|
84
|
+
"keyPlaceholder": "Sleutel",
|
85
|
+
"valuePlaceholder": "Waarde"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Onbeperkt"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Provider",
|
92
108
|
"title": "Model"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Klik om meer te uploaden"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Voltooien",
|
116
|
+
"newFileIndicator": "Nieuw",
|
117
|
+
"selectImageToPreview": "Selecteer een afbeelding om te bekijken",
|
118
|
+
"title": "Beheer afbeeldingen ({{count}})",
|
119
|
+
"upload": "Afbeeldingen uploaden"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Klik om afbeeldingen te uploaden",
|
123
|
+
"secondary": "Meerdere afbeeldingen selecteren ondersteund"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} geüpload"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Sluit melding",
|
package/locales/nl-NL/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Serviceverzoek mislukt. Controleer de configuratie of probeer opnieuw"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Verbindingstest mislukt: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Serviceverzoek mislukt. Controleer de configuratie of probeer opnieuw"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Voeg een optionele OpenAI-proxy-URL toe",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Voer uw {{name}} API-sleutel in om de sessie te starten.",
|
134
|
+
"imageGenerationDescription": "Voer je {{name}} API-sleutel in om te beginnen met genereren",
|
133
135
|
"title": "Gebruik aangepaste {{name}} API-sleutel"
|
134
136
|
},
|
135
137
|
"closeMessage": "Sluit bericht",
|
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"config": {
|
3
|
+
"aspectRatio": {
|
4
|
+
"label": "Verhouding",
|
5
|
+
"lock": "Vergrendel beeldverhouding",
|
6
|
+
"unlock": "Ontgrendel beeldverhouding"
|
7
|
+
},
|
8
|
+
"header": {
|
9
|
+
"desc": "Eenvoudige beschrijving, direct creëren",
|
10
|
+
"title": "Schilderen"
|
11
|
+
},
|
12
|
+
"height": {
|
13
|
+
"label": "Hoogte"
|
14
|
+
},
|
15
|
+
"imageNum": {
|
16
|
+
"label": "Aantal afbeeldingen"
|
17
|
+
},
|
18
|
+
"imageUrl": {
|
19
|
+
"label": "Referentieafbeelding"
|
20
|
+
},
|
21
|
+
"imageUrls": {
|
22
|
+
"label": "Referentieafbeeldingen"
|
23
|
+
},
|
24
|
+
"model": {
|
25
|
+
"label": "Model"
|
26
|
+
},
|
27
|
+
"prompt": {
|
28
|
+
"placeholder": "Beschrijf wat je wilt genereren"
|
29
|
+
},
|
30
|
+
"seed": {
|
31
|
+
"label": "Zaad",
|
32
|
+
"random": "Willekeurige zaad"
|
33
|
+
},
|
34
|
+
"size": {
|
35
|
+
"label": "Afmeting"
|
36
|
+
},
|
37
|
+
"steps": {
|
38
|
+
"label": "Stappen"
|
39
|
+
},
|
40
|
+
"title": "AI Tekenen",
|
41
|
+
"width": {
|
42
|
+
"label": "Breedte"
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"generation": {
|
46
|
+
"actions": {
|
47
|
+
"applySeed": "Zaad toepassen",
|
48
|
+
"copyError": "Foutmelding kopiëren",
|
49
|
+
"copyPrompt": "Prompt kopiëren",
|
50
|
+
"copySeed": "Zaad kopiëren",
|
51
|
+
"delete": "Verwijderen",
|
52
|
+
"deleteBatch": "Batch verwijderen",
|
53
|
+
"download": "Downloaden",
|
54
|
+
"downloadFailed": "Afbeelding downloaden mislukt",
|
55
|
+
"errorCopied": "Foutmelding gekopieerd naar klembord",
|
56
|
+
"errorCopyFailed": "Foutmelding kopiëren mislukt",
|
57
|
+
"generate": "Genereren",
|
58
|
+
"promptCopied": "Prompt gekopieerd naar klembord",
|
59
|
+
"promptCopyFailed": "Prompt kopiëren mislukt",
|
60
|
+
"reuseSettings": "Instellingen hergebruiken",
|
61
|
+
"seedApplied": "Zaad is toegepast op de configuratie",
|
62
|
+
"seedApplyFailed": "Toepassen van zaad mislukt",
|
63
|
+
"seedCopied": "Zaad gekopieerd naar klembord",
|
64
|
+
"seedCopyFailed": "Zaad kopiëren mislukt"
|
65
|
+
},
|
66
|
+
"metadata": {
|
67
|
+
"count": "{{count}} afbeeldingen"
|
68
|
+
},
|
69
|
+
"status": {
|
70
|
+
"failed": "Generatie mislukt",
|
71
|
+
"generating": "Bezig met genereren..."
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"notSupportGuide": {
|
75
|
+
"desc": "De huidige implementatie gebruikt een client-database modus en ondersteunt geen AI-beeldgeneratie. Schakel over naar de <1>server-database modus</1> of gebruik direct <3>LobeChat Cloud</3>",
|
76
|
+
"features": {
|
77
|
+
"fileIntegration": {
|
78
|
+
"desc": "Diepe integratie met het bestandsbeheersysteem, gegenereerde afbeeldingen worden automatisch opgeslagen in het bestandssysteem voor gecentraliseerd beheer en organisatie",
|
79
|
+
"title": "Bestandssysteem integratie"
|
80
|
+
},
|
81
|
+
"llmAssisted": {
|
82
|
+
"desc": "Combineert de kracht van grote taalmodellen om prompts intelligent te optimaliseren en uit te breiden, wat de beeldgeneratiekwaliteit verbetert (Binnenkort beschikbaar)",
|
83
|
+
"title": "LLM-ondersteunde beeldgeneratie"
|
84
|
+
},
|
85
|
+
"multiProviders": {
|
86
|
+
"desc": "Ondersteunt meerdere AI-tekenproviders, waaronder OpenAI gpt-image-1, Google Imagen, FAL.ai, enz., met een breed scala aan modelkeuzes",
|
87
|
+
"title": "Ondersteuning voor meerdere providers"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "De huidige implementatiemodus ondersteunt geen AI-tekenen"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Nieuw onderwerp aanmaken",
|
94
|
+
"deleteConfirm": "Onderwerp verwijderen",
|
95
|
+
"deleteConfirmDesc": "U staat op het punt dit gegenereerde onderwerp te verwijderen. Verwijdering is onomkeerbaar, wees voorzichtig.",
|
96
|
+
"empty": "Geen gegenereerde onderwerpen",
|
97
|
+
"title": "Schilderthema",
|
98
|
+
"untitled": "Standaard onderwerp"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Zoeken",
|
33
33
|
"title": "Ontdekken"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} biedt je de beste ervaring met GPT Image, Flux, Midjourney en Stable Diffusion",
|
37
|
+
"title": "AI Schilderen"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Zoeken, grafiekgeneratie, academisch, beeldgeneratie, video-generatie, spraakgeneratie, geautomatiseerde workflows, pas de ToolCall-pluginmogelijkheden van ChatGPT / Claude aan",
|
37
41
|
"title": "Pluginmarkt"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Aangepaste regio",
|
67
67
|
"customSessionToken": "Aangepaste sessietoken",
|
68
68
|
"description": "Voer uw AWS AccessKeyId / SecretAccessKey in om een sessie te starten. De app zal uw verificatiegegevens niet opslaan",
|
69
|
+
"imageGenerationDescription": "Voer je AWS AccessKeyId / SecretAccessKey in om te beginnen met genereren. De applicatie slaat je authenticatiegegevens niet op",
|
69
70
|
"title": "Gebruik aangepaste Bedrock-verificatiegegevens"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "In vergelijking met ERNIE-X1-32K biedt dit model betere prestaties en effectiviteit."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Frontier beeldbewerkingsmodel."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro] kan tekst en referentieafbeeldingen als invoer verwerken, waardoor doelgerichte lokale bewerkingen en complexe algehele scèneveranderingen naadloos mogelijk zijn."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell] is een streaming transformer-model met 12 miljard parameters, dat binnen 1 tot 4 stappen hoogwaardige afbeeldingen uit tekst kan genereren, geschikt voor persoonlijk en commercieel gebruik."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Tuning) biedt stabiele en afstelbare prestaties, ideaal voor oplossingen voor complexe taken."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe is een spraak-naar-tekstmodel dat GPT-4o gebruikt voor audiotranscriptie. Vergeleken met het originele Whisper-model verbetert het de woordfoutpercentage en verhoogt het de taalherkenning en nauwkeurigheid. Gebruik het voor nauwkeurigere transcripties."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "ChatGPT native multimodaal afbeeldingsgeneratiemodel"
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Dit model heeft verbeteringen aangebracht in nauwkeurigheid, instructievolging en meertalige capaciteiten."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Het nieuwste multimodale model van Hunyuan, ondersteunt het genereren van tekstinhoud op basis van afbeelding + tekstinvoer."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Google's hoogste kwaliteit afbeeldingsgeneratiemodel"
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5 biedt intelligente gespreksoplossingen voor meerdere scenario's."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Geavanceerde instellingen"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Een lijst met parameters die aan het uitvoeringscommando worden doorgegeven, meestal hier de naam van de MCP-server of het pad naar het opstartscript invoeren.",
|
62
65
|
"label": "Commando-parameters",
|
63
66
|
"placeholder": "Bijvoorbeeld: --port 8080 --debug",
|
64
67
|
"required": "Voer de opstartparameters in"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "API-sleutel",
|
71
|
+
"desc": "Kies de authenticatiemethode voor de MCP-server",
|
72
|
+
"label": "Authenticatietype",
|
73
|
+
"none": "Geen authenticatie vereist",
|
74
|
+
"placeholder": "Selecteer een authenticatietype",
|
75
|
+
"token": {
|
76
|
+
"desc": "Voer je API-sleutel of Bearer-token in",
|
77
|
+
"label": "API-sleutel",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Voer het authenticatietoken in"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Plugin-icoon"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "Omgevingsvariabelen voor MCP-server",
|
91
107
|
"stringifyError": "Kan parameters niet serialiseren, controleer het parameterformaat"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Voeg een regel toe",
|
111
|
+
"desc": "Voer de verzoekheaders in",
|
112
|
+
"label": "HTTP-headers"
|
113
|
+
},
|
93
114
|
"identifier": {
|
94
115
|
"desc": "Geef je MCP-plugin een naam, gebruik Engelse karakters",
|
95
116
|
"invalid": "Alleen Engelse karakters, cijfers, - en _ zijn toegestaan",
|
@@ -269,6 +290,7 @@
|
|
269
290
|
"showDetails": "Details weergeven"
|
270
291
|
},
|
271
292
|
"errorTypes": {
|
293
|
+
"AUTHORIZATION_ERROR": "Autorisatiefout",
|
272
294
|
"CONNECTION_FAILED": "Verbinding mislukt",
|
273
295
|
"INITIALIZATION_TIMEOUT": "Initialisatie time-out",
|
274
296
|
"PROCESS_SPAWN_ERROR": "Proces starten mislukt",
|
@@ -29,6 +29,9 @@
|
|
29
29
|
"deepseek": {
|
30
30
|
"description": "DeepSeek is een bedrijf dat zich richt op onderzoek en toepassing van kunstmatige intelligentietechnologie, en hun nieuwste model DeepSeek-V2.5 combineert algemene dialoog- en codeverwerkingscapaciteiten, met significante verbeteringen in het afstemmen op menselijke voorkeuren, schrijfopdrachten en het volgen van instructies."
|
31
31
|
},
|
32
|
+
"fal": {
|
33
|
+
"description": "Generatief mediaplatform voor ontwikkelaars"
|
34
|
+
},
|
32
35
|
"fireworksai": {
|
33
36
|
"description": "Fireworks AI is een toonaangevende aanbieder van geavanceerde taalmodellen, met een focus op functionele aanroepen en multimodale verwerking. Hun nieuwste model Firefunction V2 is gebaseerd op Llama-3 en geoptimaliseerd voor functieaanroepen, dialogen en het volgen van instructies. Het visuele taalmodel FireLLaVA-13B ondersteunt gemengde invoer van afbeeldingen en tekst. Andere opmerkelijke modellen zijn de Llama-serie en de Mixtral-serie, die efficiënte ondersteuning bieden voor meertalig volgen van instructies en genereren."
|
34
37
|
},
|
@@ -484,6 +484,11 @@
|
|
484
484
|
"placeholder": "Voer aangepaste prompt in",
|
485
485
|
"title": "Aangepaste prompt"
|
486
486
|
},
|
487
|
+
"generationTopic": {
|
488
|
+
"label": "AI-schilderij onderwerp naamgevingsmodel",
|
489
|
+
"modelDesc": "Model aangewezen voor het automatisch benoemen van onderwerpen in AI-schilderijen",
|
490
|
+
"title": "Automatisch onderwerp naamgeven voor AI-schilderijen"
|
491
|
+
},
|
487
492
|
"helpInfo": "Wanneer je een nieuwe assistent maakt, worden de standaard assistentinstellingen als standaardwaarden gebruikt.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "Gespreksgeschiedenismodel",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Tryb pełnoekranowy",
|
185
185
|
"historyRange": "Zakres historii",
|
186
|
+
"import": "Importuj",
|
186
187
|
"importData": "Importuj dane",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "AI Rysowanie",
|
327
329
|
"chat": "Czat",
|
328
330
|
"discover": "Odkryj",
|
329
331
|
"files": "Pliki",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Wróć"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Kliknij, aby zmienić obraz"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Dodaj obraz",
|
77
|
+
"secondary": "Kliknij, aby przesłać"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Dodaj nowy wiersz",
|
82
|
+
"deleteTooltip": "Usuń",
|
83
|
+
"duplicateKeyError": "Nazwa klucza musi być unikalna",
|
84
|
+
"keyPlaceholder": "Klucz",
|
85
|
+
"valuePlaceholder": "Wartość"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Bez ograniczeń"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Dostawca",
|
92
108
|
"title": "Model"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Kliknij, aby przesłać więcej"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Zakończ",
|
116
|
+
"newFileIndicator": "Nowy",
|
117
|
+
"selectImageToPreview": "Wybierz obraz do podglądu",
|
118
|
+
"title": "Zarządzaj obrazami ({{count}})",
|
119
|
+
"upload": "Prześlij obraz"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Kliknij, aby przesłać obraz",
|
123
|
+
"secondary": "Obsługuje wybór wielu obrazów"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} przesłano"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Zamknij powiadomienie",
|
package/locales/pl-PL/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Błąd żądania usługi. Proszę sprawdź konfigurację i spróbuj ponownie"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Test połączenia nie powiódł się: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Błąd żądania usługi. Proszę sprawdź konfigurację i spróbuj ponownie"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Dodaj adres proxy OpenAI (opcjonalnie)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Wprowadź swój Klucz API {{name}}, aby rozpocząć sesję.",
|
134
|
+
"imageGenerationDescription": "Wprowadź swój klucz API {{name}}, aby rozpocząć generowanie",
|
133
135
|
"title": "Użyj niestandardowego Klucza API {{name}}"
|
134
136
|
},
|
135
137
|
"closeMessage": "Zamknij komunikat",
|