@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": "نقاشی هوش مصنوعی",
|
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": "نمونه استقرار فعلی در حالت پایگاه داده کلاینت است و امکان استفاده از قابلیت تولید تصویر هوش مصنوعی وجود ندارد. لطفاً به <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 و غیره، با انتخاب گسترده مدلها",
|
87
|
+
"title": "پشتیبانی چند ارائهدهنده"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "حالت استقرار فعلی از نقاشی هوش مصنوعی پشتیبانی نمیکند"
|
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": "نقاشی هوش مصنوعی"
|
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": "جدیدترین مدل چندوجهی هونیوان، پشتیبانی از ورودی تصویر + متن برای تولید محتوای متنی."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "مدل تولید تصویر با بالاترین کیفیت گوگل"
|
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": "هدرهای درخواست را وارد کنید",
|
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": "مدل نامگذاری موضوع نقاشی هوش مصنوعی",
|
489
|
+
"modelDesc": "مدلی که برای نامگذاری خودکار موضوع نقاشی هوش مصنوعی استفاده میشود",
|
490
|
+
"title": "نامگذاری خودکار موضوع نقاشی هوش مصنوعی"
|
491
|
+
},
|
487
492
|
"helpInfo": "هنگام ایجاد دستیار جدید، تنظیمات پیشفرض دستیار به عنوان مقادیر پیشفرض استفاده خواهد شد.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "مدل تاریخچه گفتگو",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Mode plein écran",
|
185
185
|
"historyRange": "Plage d'historique",
|
186
|
+
"import": "Importer",
|
186
187
|
"importData": "Importer des données",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "Peinture IA",
|
327
329
|
"chat": "Conversation",
|
328
330
|
"discover": "Découvrir",
|
329
331
|
"files": "Fichiers",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Retour"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Cliquez pour changer l'image"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Ajouter une image",
|
77
|
+
"secondary": "Cliquez pour télécharger"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Ajouter une ligne",
|
82
|
+
"deleteTooltip": "Supprimer",
|
83
|
+
"duplicateKeyError": "Le nom de la clé doit être unique",
|
84
|
+
"keyPlaceholder": "Clé",
|
85
|
+
"valuePlaceholder": "Valeur"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Illimité"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Fournisseur",
|
92
108
|
"title": "Modèle"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Cliquez pour télécharger plus"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Terminé",
|
116
|
+
"newFileIndicator": "Nouveau",
|
117
|
+
"selectImageToPreview": "Veuillez sélectionner une image à prévisualiser",
|
118
|
+
"title": "Gérer les images ({{count}})",
|
119
|
+
"upload": "Télécharger des images"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Cliquez pour télécharger des images",
|
123
|
+
"secondary": "Prise en charge de la sélection de plusieurs images"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} téléchargées"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Fermer l'invite",
|
package/locales/fr-FR/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Échec de la requête de service. Veuillez vérifier la configuration ou réessayer"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Échec du test de connexion : {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Échec de la requête de service. Veuillez vérifier la configuration ou réessayer"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Ajouter une adresse de proxy OpenAI (facultatif)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Enter your {{name}} API Key to start the session",
|
134
|
+
"imageGenerationDescription": "Saisissez votre clé API {{name}} pour commencer la génération",
|
133
135
|
"title": "Use custom {{name}} API Key"
|
134
136
|
},
|
135
137
|
"closeMessage": "Fermer le message",
|
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"config": {
|
3
|
+
"aspectRatio": {
|
4
|
+
"label": "Ratio",
|
5
|
+
"lock": "Verrouiller le rapport hauteur/largeur",
|
6
|
+
"unlock": "Déverrouiller le rapport hauteur/largeur"
|
7
|
+
},
|
8
|
+
"header": {
|
9
|
+
"desc": "Description simple, création immédiate",
|
10
|
+
"title": "Peinture"
|
11
|
+
},
|
12
|
+
"height": {
|
13
|
+
"label": "Hauteur"
|
14
|
+
},
|
15
|
+
"imageNum": {
|
16
|
+
"label": "Nombre d'images"
|
17
|
+
},
|
18
|
+
"imageUrl": {
|
19
|
+
"label": "Image de référence"
|
20
|
+
},
|
21
|
+
"imageUrls": {
|
22
|
+
"label": "Images de référence"
|
23
|
+
},
|
24
|
+
"model": {
|
25
|
+
"label": "Modèle"
|
26
|
+
},
|
27
|
+
"prompt": {
|
28
|
+
"placeholder": "Décrivez ce que vous souhaitez générer"
|
29
|
+
},
|
30
|
+
"seed": {
|
31
|
+
"label": "Graine",
|
32
|
+
"random": "Graine aléatoire"
|
33
|
+
},
|
34
|
+
"size": {
|
35
|
+
"label": "Taille"
|
36
|
+
},
|
37
|
+
"steps": {
|
38
|
+
"label": "Étapes"
|
39
|
+
},
|
40
|
+
"title": "Peinture IA",
|
41
|
+
"width": {
|
42
|
+
"label": "Largeur"
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"generation": {
|
46
|
+
"actions": {
|
47
|
+
"applySeed": "Appliquer la graine",
|
48
|
+
"copyError": "Copier l'erreur",
|
49
|
+
"copyPrompt": "Copier l'invite",
|
50
|
+
"copySeed": "Copier la graine",
|
51
|
+
"delete": "Supprimer",
|
52
|
+
"deleteBatch": "Supprimer le lot",
|
53
|
+
"download": "Télécharger",
|
54
|
+
"downloadFailed": "Échec du téléchargement de l'image",
|
55
|
+
"errorCopied": "Message d'erreur copié dans le presse-papiers",
|
56
|
+
"errorCopyFailed": "Échec de la copie du message d'erreur",
|
57
|
+
"generate": "Générer",
|
58
|
+
"promptCopied": "Invite copiée dans le presse-papiers",
|
59
|
+
"promptCopyFailed": "Échec de la copie de l'invite",
|
60
|
+
"reuseSettings": "Réutiliser les paramètres",
|
61
|
+
"seedApplied": "Graine appliquée à la configuration",
|
62
|
+
"seedApplyFailed": "Échec de l'application de la graine",
|
63
|
+
"seedCopied": "Graine copiée dans le presse-papiers",
|
64
|
+
"seedCopyFailed": "Échec de la copie de la graine"
|
65
|
+
},
|
66
|
+
"metadata": {
|
67
|
+
"count": "{{count}} image(s)"
|
68
|
+
},
|
69
|
+
"status": {
|
70
|
+
"failed": "Échec de la génération",
|
71
|
+
"generating": "Génération en cours..."
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"notSupportGuide": {
|
75
|
+
"desc": "L'instance déployée actuelle utilise un mode base de données client, la fonction de génération d'images IA n'est pas disponible. Veuillez passer au <1>mode de déploiement base de données serveur</1> ou utiliser directement <3>LobeChat Cloud</3>",
|
76
|
+
"features": {
|
77
|
+
"fileIntegration": {
|
78
|
+
"desc": "Intégration approfondie avec le système de gestion de fichiers, les images générées sont automatiquement sauvegardées dans le système de fichiers pour une gestion et organisation unifiées",
|
79
|
+
"title": "Interopérabilité avec le système de fichiers"
|
80
|
+
},
|
81
|
+
"llmAssisted": {
|
82
|
+
"desc": "Combinaison avec les capacités des grands modèles de langage pour optimiser et étendre intelligemment les invites, améliorant la qualité de génération d'images (Bientôt disponible)",
|
83
|
+
"title": "Assistance LLM pour la génération d'images"
|
84
|
+
},
|
85
|
+
"multiProviders": {
|
86
|
+
"desc": "Prise en charge de plusieurs fournisseurs de services de peinture IA, y compris OpenAI gpt-image-1, Google Imagen, FAL.ai, offrant un large choix de modèles",
|
87
|
+
"title": "Support multi-fournisseurs"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "Le mode de déploiement actuel ne prend pas en charge la peinture IA"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Créer un nouveau sujet",
|
94
|
+
"deleteConfirm": "Supprimer le sujet généré",
|
95
|
+
"deleteConfirmDesc": "Vous êtes sur le point de supprimer ce sujet généré. Cette action est irréversible, veuillez procéder avec prudence.",
|
96
|
+
"empty": "Aucun sujet généré",
|
97
|
+
"title": "Thème de peinture",
|
98
|
+
"untitled": "Sujet par défaut"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Recherche",
|
33
33
|
"title": "Découvrir"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} vous offre la meilleure expérience d'utilisation de GPT Image, Flux, Midjourney, Stable Diffusion",
|
37
|
+
"title": "Peinture IA"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Recherche, génération de graphiques, académique, génération d'images, génération de vidéos, génération de voix, flux de travail automatisés, personnalisez les capacités de plugins ToolCall pour ChatGPT / Claude",
|
37
41
|
"title": "Marché des plugins"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Région de service personnalisée",
|
67
67
|
"customSessionToken": "Jeton de session personnalisé",
|
68
68
|
"description": "Entrez votre ID de clé d'accès AWS / SecretAccessKey pour commencer la session. L'application ne stockera pas votre configuration d'authentification.",
|
69
|
+
"imageGenerationDescription": "Saisissez votre AWS AccessKeyId / SecretAccessKey pour commencer la génération. L'application ne conservera pas vos informations d'authentification.",
|
69
70
|
"title": "Utiliser des informations d'authentification Bedrock personnalisées"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "Par rapport à ERNIE-X1-32K, le modèle offre de meilleures performances et résultats."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Modèle d'édition d'image Frontier."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro] peut traiter du texte et des images de référence en entrée, réalisant de manière fluide des modifications locales ciblées ainsi que des transformations complexes de scènes globales."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell] est un modèle transformeur en flux avec 12 milliards de paramètres, capable de générer des images de haute qualité à partir de texte en 1 à 4 étapes, adapté à un usage personnel et commercial."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Ajustement) offre des performances stables et ajustables, ce qui en fait un choix idéal pour des solutions de tâches complexes."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe est un modèle de transcription audio en texte utilisant GPT-4o. Par rapport au modèle Whisper original, il améliore le taux d'erreur des mots ainsi que la reconnaissance et la précision linguistiques. Utilisez-le pour obtenir des transcriptions plus précises."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "Modèle natif multimodal de génération d'images de ChatGPT."
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Ce modèle a été amélioré en termes de précision, de respect des instructions et de capacités multilingues."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Dernier modèle multimodal Hunyuan, prenant en charge l'entrée d'images et de textes pour générer du contenu textuel."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Modèle de génération d'images de la plus haute qualité de Google."
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5 fournit des solutions de dialogue intelligent dans divers scénarios."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Paramètres avancés"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Liste des paramètres à passer à la commande d'exécution, généralement ici le nom du serveur MCP ou le chemin du script de démarrage",
|
62
65
|
"label": "Paramètres de commande",
|
63
66
|
"placeholder": "Par exemple : --port 8080 --debug",
|
64
67
|
"required": "Veuillez entrer les paramètres de démarrage"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "Clé API",
|
71
|
+
"desc": "Choisissez le mode d'authentification du serveur MCP",
|
72
|
+
"label": "Type d'authentification",
|
73
|
+
"none": "Aucune authentification requise",
|
74
|
+
"placeholder": "Veuillez sélectionner un type d'authentification",
|
75
|
+
"token": {
|
76
|
+
"desc": "Entrez votre clé API ou jeton Bearer",
|
77
|
+
"label": "Clé API",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Veuillez saisir le jeton d'authentification"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Icône du plugin"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "Variables d'environnement du serveur MCP",
|
91
107
|
"stringifyError": "Impossible de sérialiser les paramètres, veuillez vérifier le format des paramètres"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Ajouter une ligne",
|
111
|
+
"desc": "Entrez les en-têtes de la requête",
|
112
|
+
"label": "En-têtes HTTP"
|
113
|
+
},
|
93
114
|
"identifier": {
|
94
115
|
"desc": "Donnez un nom à votre plugin MCP, en utilisant des caractères anglais",
|
95
116
|
"invalid": "Vous ne pouvez entrer que des caractères anglais, des chiffres, - et _",
|
@@ -269,6 +290,7 @@
|
|
269
290
|
"showDetails": "Afficher les détails"
|
270
291
|
},
|
271
292
|
"errorTypes": {
|
293
|
+
"AUTHORIZATION_ERROR": "Erreur d'autorisation",
|
272
294
|
"CONNECTION_FAILED": "Échec de la connexion",
|
273
295
|
"INITIALIZATION_TIMEOUT": "Délai d'initialisation dépassé",
|
274
296
|
"PROCESS_SPAWN_ERROR": "Échec du démarrage du processus",
|
@@ -29,6 +29,9 @@
|
|
29
29
|
"deepseek": {
|
30
30
|
"description": "DeepSeek est une entreprise spécialisée dans la recherche et l'application des technologies d'intelligence artificielle, dont le dernier modèle, DeepSeek-V2.5, combine des capacités de dialogue général et de traitement de code, réalisant des améliorations significatives dans l'alignement des préférences humaines, les tâches d'écriture et le suivi des instructions."
|
31
31
|
},
|
32
|
+
"fal": {
|
33
|
+
"description": "Plateforme média générative destinée aux développeurs"
|
34
|
+
},
|
32
35
|
"fireworksai": {
|
33
36
|
"description": "Fireworks AI est un fournisseur de services de modèles linguistiques avancés, axé sur les appels de fonction et le traitement multimodal. Son dernier modèle, Firefunction V2, basé sur Llama-3, est optimisé pour les appels de fonction, les dialogues et le suivi des instructions. Le modèle de langage visuel FireLLaVA-13B prend en charge les entrées mixtes d'images et de texte. D'autres modèles notables incluent la série Llama et la série Mixtral, offrant un support efficace pour le suivi et la génération d'instructions multilingues."
|
34
37
|
},
|
@@ -484,6 +484,11 @@
|
|
484
484
|
"placeholder": "Veuillez entrer le mot-clé personnalisé",
|
485
485
|
"title": "Mot-clé personnalisé"
|
486
486
|
},
|
487
|
+
"generationTopic": {
|
488
|
+
"label": "Modèle de nomination de sujets pour peinture IA",
|
489
|
+
"modelDesc": "Modèle spécifiquement utilisé pour la nomination automatique des sujets de peinture IA",
|
490
|
+
"title": "Nomination automatique des sujets de peinture IA"
|
491
|
+
},
|
487
492
|
"helpInfo": "Lors de la création d'un nouvel assistant, les paramètres par défaut de l'assistant seront utilisés comme valeurs par défaut.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "Modèle d'historique de conversation",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Modalità a schermo intero",
|
185
185
|
"historyRange": "Intervallo cronologico",
|
186
|
+
"import": "Importa",
|
186
187
|
"importData": "Importa dati",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "Disegno AI",
|
327
329
|
"chat": "Chat",
|
328
330
|
"discover": "Scopri",
|
329
331
|
"files": "File",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Indietro"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Clicca per cambiare immagine"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Aggiungi immagine",
|
77
|
+
"secondary": "Clicca per caricare"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Aggiungi una riga",
|
82
|
+
"deleteTooltip": "Elimina",
|
83
|
+
"duplicateKeyError": "Il nome della chiave deve essere univoco",
|
84
|
+
"keyPlaceholder": "Chiave",
|
85
|
+
"valuePlaceholder": "Valore"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Illimitato"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Provider",
|
92
108
|
"title": "Modello"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Clicca per caricare altre"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Completa",
|
116
|
+
"newFileIndicator": "Nuovo",
|
117
|
+
"selectImageToPreview": "Seleziona un'immagine da visualizzare in anteprima",
|
118
|
+
"title": "Gestisci immagini ({{count}})",
|
119
|
+
"upload": "Carica immagine"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Clicca per caricare immagini",
|
123
|
+
"secondary": "Supporta la selezione di più immagini"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} caricati"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Chiudi avviso",
|
package/locales/it-IT/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Errore nella richiesta del servizio. Verifica la configurazione o riprova"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Connessione di prova fallita: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Errore nella richiesta del servizio. Verifica la configurazione o riprova"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Aggiungi URL del proxy OpenAI (opzionale)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Inserisci la tua Chiave API {{name}} per iniziare la sessione",
|
134
|
+
"imageGenerationDescription": "Inserisci la tua chiave API {{name}} per iniziare a generare",
|
133
135
|
"title": "Usa la tua Chiave API personalizzata {{name}}"
|
134
136
|
},
|
135
137
|
"closeMessage": "Chiudi messaggio",
|