@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": "Поддержка множества AI-сервисов для рисования, включая OpenAI gpt-image-1, Google Imagen, FAL.ai и другие, предлагая широкий выбор моделей",
|
87
|
+
"title": "Поддержка нескольких провайдеров"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "Текущий режим развертывания не поддерживает AI Рисование"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Создать новую тему",
|
94
|
+
"deleteConfirm": "Удалить тему генерации",
|
95
|
+
"deleteConfirmDesc": "Вы собираетесь удалить эту тему генерации. После удаления восстановить её будет невозможно, пожалуйста, действуйте осторожно.",
|
96
|
+
"empty": "Темы для генерации отсутствуют",
|
97
|
+
"title": "Тема рисунка",
|
98
|
+
"untitled": "Тема по умолчанию"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Поиск",
|
33
33
|
"title": "Открыть"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} предлагает вам лучший опыт использования GPT Image, Flux, Midjourney, Stable Diffusion",
|
37
|
+
"title": "ИИ Рисование"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Поиск, генерация графиков, академические исследования, генерация изображений, генерация видео, генерация речи, автоматизация рабочих процессов, настройте возможности ToolCall для ChatGPT / Claude",
|
37
41
|
"title": "Рынок плагинов"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Пользовательский регион обслуживания",
|
67
67
|
"customSessionToken": "Пользовательский токен сессии",
|
68
68
|
"description": "Введите свой ключ доступа AWS AccessKeyId / SecretAccessKey, чтобы начать сеанс. Приложение не будет сохранять вашу конфигурацию аутентификации",
|
69
|
+
"imageGenerationDescription": "Введите ваш AWS AccessKeyId / SecretAccessKey, чтобы начать генерацию. Приложение не будет сохранять ваши данные аутентификации",
|
69
70
|
"title": "Использовать пользовательскую информацию аутентификации Bedrock"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "Модель имеет лучшие результаты и производительность по сравнению с ERNIE-X1-32K."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Модель редактирования изображений Frontier."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro] способен обрабатывать текст и эталонные изображения в качестве входных данных, обеспечивая бесшовное целенаправленное локальное редактирование и сложные преобразования всей сцены."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell] — это потоковая трансформерная модель с 12 миллиардами параметров, способная генерировать высококачественные изображения из текста за 1–4 шага, подходит для личного и коммерческого использования."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Тюнинг) предлагает стабильную и настраиваемую производительность, что делает её идеальным выбором для решения сложных задач."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe — модель преобразования речи в текст, использующая GPT-4o для транскрибирования аудио. По сравнению с оригинальной моделью Whisper, она снижает количество ошибок в словах и повышает точность распознавания языка. Используйте её для более точной транскрипции."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "Родная мультимодальная модель генерации изображений ChatGPT."
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Модель улучшена в точности, соблюдении инструкций и многоязычных возможностях."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Последняя многомодальная модель Hunyuan, поддерживающая ввод изображений и текста для генерации текстового контента."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Модель генерации изображений высочайшего качества от Google."
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5 предлагает интеллектуальные решения для диалогов в различных сценариях."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Расширенные настройки"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Список параметров, передаваемых в команду выполнения, обычно здесь указывается имя сервера MCP или путь к скрипту запуска",
|
62
65
|
"label": "Параметры команды",
|
63
66
|
"placeholder": "Например: --port 8080 --debug",
|
64
67
|
"required": "Пожалуйста, введите параметры запуска"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "API ключ",
|
71
|
+
"desc": "Выберите способ аутентификации сервера MCP",
|
72
|
+
"label": "Тип аутентификации",
|
73
|
+
"none": "Аутентификация не требуется",
|
74
|
+
"placeholder": "Пожалуйста, выберите тип аутентификации",
|
75
|
+
"token": {
|
76
|
+
"desc": "Введите ваш API ключ или токен Bearer",
|
77
|
+
"label": "API ключ",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Пожалуйста, введите токен аутентификации"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Иконка плагина"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "Переменные окружения сервера MCP",
|
91
107
|
"stringifyError": "Не удалось сериализовать параметры, проверьте формат параметров"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Добавить строку",
|
111
|
+
"desc": "Введите заголовки запроса",
|
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": "Tam Ekran Modu",
|
185
185
|
"historyRange": "Geçmiş Aralığı",
|
186
|
+
"import": "İçe aktar",
|
186
187
|
"importData": "Veri İçe Aktar",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "Yapay Zeka Resim",
|
327
329
|
"chat": "Chat",
|
328
330
|
"discover": "Keşfet",
|
329
331
|
"files": "Dosyalar",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Geri dön"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Resmi değiştirmek için tıklayın"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Resim ekle",
|
77
|
+
"secondary": "Yüklemek için tıklayın"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Yeni bir satır ekle",
|
82
|
+
"deleteTooltip": "Sil",
|
83
|
+
"duplicateKeyError": "Anahtar adı benzersiz olmalıdır",
|
84
|
+
"keyPlaceholder": "Anahtar",
|
85
|
+
"valuePlaceholder": "Değer"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Sınırsız"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Sağlayıcı",
|
92
108
|
"title": "Model"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Daha fazla yüklemek için tıklayın"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Tamamla",
|
116
|
+
"newFileIndicator": "Yeni",
|
117
|
+
"selectImageToPreview": "Önizlemek için resim seçin",
|
118
|
+
"title": "Resimleri Yönet ({{count}})",
|
119
|
+
"upload": "Resim Yükle"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Resim yüklemek için tıklayın",
|
123
|
+
"secondary": "Birden fazla resim seçimi desteklenir"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "{{completed}}/{{total}} yüklendi"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Uyarıyı Kapat",
|
package/locales/tr-TR/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Hizmet isteği başarısız oldu, lütfen yapılandırmayı kontrol edin veya tekrar deneyin"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Bağlantı testi başarısız: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Hizmet isteği başarısız oldu, lütfen yapılandırmayı kontrol edin veya tekrar deneyin"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "OpenAI vekil adresi ekle (isteğe bağlı)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "{{name}} API Anahtarınızı girerek oturumu başlatabilirsiniz",
|
134
|
+
"imageGenerationDescription": "{{name}} API Anahtarınızı girerek oluşturma işlemine başlayabilirsiniz",
|
133
135
|
"title": "Özel {{name}} API Anahtarını kullan"
|
134
136
|
},
|
135
137
|
"closeMessage": "Mesajı kapat",
|
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"config": {
|
3
|
+
"aspectRatio": {
|
4
|
+
"label": "Oran",
|
5
|
+
"lock": "En boy oranını kilitle",
|
6
|
+
"unlock": "En boy oranının kilidini aç"
|
7
|
+
},
|
8
|
+
"header": {
|
9
|
+
"desc": "Basit açıklama, hemen yarat",
|
10
|
+
"title": "Resim"
|
11
|
+
},
|
12
|
+
"height": {
|
13
|
+
"label": "Yükseklik"
|
14
|
+
},
|
15
|
+
"imageNum": {
|
16
|
+
"label": "Resim Sayısı"
|
17
|
+
},
|
18
|
+
"imageUrl": {
|
19
|
+
"label": "Referans Görsel"
|
20
|
+
},
|
21
|
+
"imageUrls": {
|
22
|
+
"label": "Referans Görseller"
|
23
|
+
},
|
24
|
+
"model": {
|
25
|
+
"label": "Model"
|
26
|
+
},
|
27
|
+
"prompt": {
|
28
|
+
"placeholder": "Oluşturmak istediğiniz içeriği tanımlayın"
|
29
|
+
},
|
30
|
+
"seed": {
|
31
|
+
"label": "Tohum",
|
32
|
+
"random": "Rastgele Tohum"
|
33
|
+
},
|
34
|
+
"size": {
|
35
|
+
"label": "Boyut"
|
36
|
+
},
|
37
|
+
"steps": {
|
38
|
+
"label": "Adım Sayısı"
|
39
|
+
},
|
40
|
+
"title": "Yapay Zeka Resim",
|
41
|
+
"width": {
|
42
|
+
"label": "Genişlik"
|
43
|
+
}
|
44
|
+
},
|
45
|
+
"generation": {
|
46
|
+
"actions": {
|
47
|
+
"applySeed": "Tohum Uygula",
|
48
|
+
"copyError": "Hata Mesajını Kopyala",
|
49
|
+
"copyPrompt": "İpucunu Kopyala",
|
50
|
+
"copySeed": "Tohumu Kopyala",
|
51
|
+
"delete": "Sil",
|
52
|
+
"deleteBatch": "Toplu Silme",
|
53
|
+
"download": "İndir",
|
54
|
+
"downloadFailed": "Resim indirilemedi",
|
55
|
+
"errorCopied": "Hata mesajı panoya kopyalandı",
|
56
|
+
"errorCopyFailed": "Hata mesajı kopyalanamadı",
|
57
|
+
"generate": "Oluştur",
|
58
|
+
"promptCopied": "İpucu panoya kopyalandı",
|
59
|
+
"promptCopyFailed": "İpucu kopyalanamadı",
|
60
|
+
"reuseSettings": "Ayarları Yeniden Kullan",
|
61
|
+
"seedApplied": "Tohum yapılandırmaya uygulandı",
|
62
|
+
"seedApplyFailed": "Tohum uygulama başarısız oldu",
|
63
|
+
"seedCopied": "Tohum panoya kopyalandı",
|
64
|
+
"seedCopyFailed": "Tohum kopyalanamadı"
|
65
|
+
},
|
66
|
+
"metadata": {
|
67
|
+
"count": "{{count}} resim"
|
68
|
+
},
|
69
|
+
"status": {
|
70
|
+
"failed": "Oluşturma başarısız",
|
71
|
+
"generating": "Oluşturuluyor..."
|
72
|
+
}
|
73
|
+
},
|
74
|
+
"notSupportGuide": {
|
75
|
+
"desc": "Mevcut dağıtım örneği istemci veritabanı modundadır, AI resim oluşturma özelliği kullanılamaz. Lütfen <1>sunucu veritabanı dağıtım moduna</1> geçin veya doğrudan <3>LobeChat Cloud</3> kullanın",
|
76
|
+
"features": {
|
77
|
+
"fileIntegration": {
|
78
|
+
"desc": "Dosya yönetim sistemi ile derin entegrasyon, oluşturulan resimler otomatik olarak dosya sistemine kaydedilir, merkezi yönetim ve organizasyon desteklenir",
|
79
|
+
"title": "Dosya Sistemi Entegrasyonu"
|
80
|
+
},
|
81
|
+
"llmAssisted": {
|
82
|
+
"desc": "Büyük dil modeli yetenekleriyle birleşerek ipuçlarını akıllıca optimize eder ve genişletir, resim oluşturma kalitesini artırır (Yakında)",
|
83
|
+
"title": "LLM Destekli Resim Oluşturma"
|
84
|
+
},
|
85
|
+
"multiProviders": {
|
86
|
+
"desc": "OpenAI gpt-image-1, Google Imagen, FAL.ai gibi çeşitli AI resim hizmet sağlayıcılarını destekler, zengin model seçenekleri sunar",
|
87
|
+
"title": "Çoklu Sağlayıcı Desteği"
|
88
|
+
}
|
89
|
+
},
|
90
|
+
"title": "Mevcut Dağıtım Modu AI Resim Oluşturmayı Desteklemiyor"
|
91
|
+
},
|
92
|
+
"topic": {
|
93
|
+
"createNew": "Yeni Konu Oluştur",
|
94
|
+
"deleteConfirm": "Oluşturulan Konuyu Sil",
|
95
|
+
"deleteConfirmDesc": "Bu oluşturulan konu silinecek, silme işlemi geri alınamaz, lütfen dikkatli olun.",
|
96
|
+
"empty": "Oluşturulmuş konu yok",
|
97
|
+
"title": "Resim Konusu",
|
98
|
+
"untitled": "Varsayılan Konu"
|
99
|
+
}
|
100
|
+
}
|
@@ -32,6 +32,10 @@
|
|
32
32
|
"search": "Ara",
|
33
33
|
"title": "Keşfet"
|
34
34
|
},
|
35
|
+
"image": {
|
36
|
+
"description": "{{appName}} size en iyi GPT Image, Flux, Midjourney, Stable Diffusion deneyimini sunar",
|
37
|
+
"title": "Yapay Zeka Resim"
|
38
|
+
},
|
35
39
|
"plugins": {
|
36
40
|
"description": "Arama, grafik oluşturma, akademik, görsel oluşturma, video oluşturma, ses oluşturma, otomatik iş akışları, ChatGPT / Claude için özel ToolCall eklenti yeteneklerini özelleştirin",
|
37
41
|
"title": "Eklenti Pazarı"
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"customRegion": "Özel Bölge",
|
67
67
|
"customSessionToken": "Özel Oturum Tokeni",
|
68
68
|
"description": "AWS AccessKeyId / SecretAccessKey bilgilerinizi girerek oturumu başlatabilirsiniz. Uygulama kimlik doğrulama bilgilerinizi kaydetmez.",
|
69
|
+
"imageGenerationDescription": "AWS AccessKeyId / SecretAccessKey bilgilerinizi girerek üretime başlayabilirsiniz. Uygulama kimlik doğrulama yapılandırmanızı kaydetmez",
|
69
70
|
"title": "Özel Bedrock Kimlik Bilgilerini Kullan"
|
70
71
|
}
|
71
72
|
},
|
@@ -1019,6 +1019,15 @@
|
|
1019
1019
|
"ernie-x1-turbo-32k": {
|
1020
1020
|
"description": "ERNIE-X1-32K ile karşılaştırıldığında, modelin etkisi ve performansı daha iyidir."
|
1021
1021
|
},
|
1022
|
+
"flux-kontext/dev": {
|
1023
|
+
"description": "Frontier görüntü düzenleme modeli."
|
1024
|
+
},
|
1025
|
+
"flux-pro/kontext": {
|
1026
|
+
"description": "FLUX.1 Kontext [pro], metin ve referans görüntüleri girdi olarak işleyebilir, hedefe yönelik yerel düzenlemeler ve karmaşık genel sahne dönüşümlerini sorunsuz bir şekilde gerçekleştirebilir."
|
1027
|
+
},
|
1028
|
+
"flux/schnell": {
|
1029
|
+
"description": "FLUX.1 [schnell], 12 milyar parametreye sahip bir akış dönüştürücü modelidir ve metinden 1 ila 4 adımda yüksek kaliteli görüntüler üretebilir; kişisel ve ticari kullanım için uygundur."
|
1030
|
+
},
|
1022
1031
|
"gemini-1.0-pro-001": {
|
1023
1032
|
"description": "Gemini 1.0 Pro 001 (Tuning), kararlı ve ayarlanabilir bir performans sunar, karmaşık görev çözümleri için ideal bir seçimdir."
|
1024
1033
|
},
|
@@ -1364,6 +1373,9 @@
|
|
1364
1373
|
"gpt-4o-transcribe": {
|
1365
1374
|
"description": "GPT-4o Transcribe, GPT-4o kullanarak sesleri metne dönüştüren bir konuşma tanıma modelidir. Orijinal Whisper modeline kıyasla kelime hata oranını düşürür ve dil tanıma ile doğruluğu artırır. Daha doğru transkripsiyonlar için kullanın."
|
1366
1375
|
},
|
1376
|
+
"gpt-image-1": {
|
1377
|
+
"description": "ChatGPT'nin yerel çok modlu görüntü oluşturma modeli"
|
1378
|
+
},
|
1367
1379
|
"grok-2-1212": {
|
1368
1380
|
"description": "Bu model, doğruluk, talimat takibi ve çok dilli yetenekler açısından geliştirilmiştir."
|
1369
1381
|
},
|
@@ -1484,6 +1496,9 @@
|
|
1484
1496
|
"hunyuan-vision": {
|
1485
1497
|
"description": "Hunyuan'ın en son çok modlu modeli, resim + metin girişi ile metin içeriği oluşturmayı destekler."
|
1486
1498
|
},
|
1499
|
+
"imagen4/preview": {
|
1500
|
+
"description": "Google'ın en yüksek kaliteli görüntü oluşturma modeli"
|
1501
|
+
},
|
1487
1502
|
"internlm/internlm2_5-7b-chat": {
|
1488
1503
|
"description": "InternLM2.5, çoklu senaryolarda akıllı diyalog çözümleri sunar."
|
1489
1504
|
},
|
@@ -57,12 +57,28 @@
|
|
57
57
|
}
|
58
58
|
},
|
59
59
|
"mcp": {
|
60
|
+
"advanced": {
|
61
|
+
"title": "Gelişmiş Ayarlar"
|
62
|
+
},
|
60
63
|
"args": {
|
61
64
|
"desc": "Komutları yürütmek için geçilecek parametreler listesi, genellikle burada MCP sunucu adını veya başlatma betiği yolunu girin.",
|
62
65
|
"label": "Komut Parametreleri",
|
63
66
|
"placeholder": "Örneğin: --port 8080 --debug",
|
64
67
|
"required": "Lütfen başlatma parametrelerini girin"
|
65
68
|
},
|
69
|
+
"auth": {
|
70
|
+
"bear": "API Anahtarı",
|
71
|
+
"desc": "MCP sunucusunun kimlik doğrulama yöntemini seçin",
|
72
|
+
"label": "Kimlik Doğrulama Türü",
|
73
|
+
"none": "Kimlik doğrulama gerekmiyor",
|
74
|
+
"placeholder": "Lütfen kimlik doğrulama türünü seçin",
|
75
|
+
"token": {
|
76
|
+
"desc": "API Anahtarınızı veya Bearer Token'ınızı girin",
|
77
|
+
"label": "API Anahtarı",
|
78
|
+
"placeholder": "sk-xxxxx",
|
79
|
+
"required": "Lütfen kimlik doğrulama jetonunu girin"
|
80
|
+
}
|
81
|
+
},
|
66
82
|
"avatar": {
|
67
83
|
"label": "Eklenti İkonu"
|
68
84
|
},
|
@@ -90,6 +106,11 @@
|
|
90
106
|
"label": "MCP Sunucu Ortam Değişkeni",
|
91
107
|
"stringifyError": "Parametreleri serileştirmek mümkün değil, lütfen parametre formatını kontrol edin"
|
92
108
|
},
|
109
|
+
"headers": {
|
110
|
+
"add": "Yeni satır ekle",
|
111
|
+
"desc": "İstek başlıklarını girin",
|
112
|
+
"label": "HTTP Başlıkları"
|
113
|
+
},
|
93
114
|
"identifier": {
|
94
115
|
"desc": "MCP eklentiniz için bir ad belirleyin, İngilizce karakterler kullanmalısınız",
|
95
116
|
"invalid": "Sadece İngilizce karakterler, rakamlar, - ve _ bu iki sembolü girebilirsiniz",
|
@@ -269,6 +290,7 @@
|
|
269
290
|
"showDetails": "Detayları göster"
|
270
291
|
},
|
271
292
|
"errorTypes": {
|
293
|
+
"AUTHORIZATION_ERROR": "Yetkilendirme doğrulama hatası",
|
272
294
|
"CONNECTION_FAILED": "Bağlantı başarısız",
|
273
295
|
"INITIALIZATION_TIMEOUT": "Başlatma zaman aşımı",
|
274
296
|
"PROCESS_SPAWN_ERROR": "İşlem başlatılamadı",
|
@@ -29,6 +29,9 @@
|
|
29
29
|
"deepseek": {
|
30
30
|
"description": "DeepSeek, yapay zeka teknolojisi araştırma ve uygulamalarına odaklanan bir şirkettir. En son modeli DeepSeek-V2.5, genel diyalog ve kod işleme yeteneklerini birleştirerek, insan tercihleriyle uyum, yazma görevleri ve talimat takibi gibi alanlarda önemli iyileştirmeler sağlamaktadır."
|
31
31
|
},
|
32
|
+
"fal": {
|
33
|
+
"description": "Geliştiricilere yönelik üretken medya platformu"
|
34
|
+
},
|
32
35
|
"fireworksai": {
|
33
36
|
"description": "Fireworks AI, işlev çağrısı ve çok modlu işleme üzerine odaklanan önde gelen bir gelişmiş dil modeli hizmet sağlayıcısıdır. En son modeli Firefunction V2, Llama-3 tabanlıdır ve işlev çağrısı, diyalog ve talimat takibi için optimize edilmiştir. Görsel dil modeli FireLLaVA-13B, görüntü ve metin karışık girişi desteklemektedir. Diğer dikkat çekici modeller arasında Llama serisi ve Mixtral serisi bulunmaktadır ve etkili çok dilli talimat takibi ve üretim desteği sunmaktadır."
|
34
37
|
},
|
@@ -484,6 +484,11 @@
|
|
484
484
|
"placeholder": "Lütfen özel ipucu kelimelerini girin",
|
485
485
|
"title": "Özel İpucu"
|
486
486
|
},
|
487
|
+
"generationTopic": {
|
488
|
+
"label": "Yapay Zeka Resim Konusu İsimlendirme Modeli",
|
489
|
+
"modelDesc": "Yapay zeka resimlerinin otomatik konu isimlendirmesi için belirlenen model",
|
490
|
+
"title": "Yapay Zeka Resim Otomatik Konu İsimlendirme"
|
491
|
+
},
|
487
492
|
"helpInfo": "Yeni bir asistan oluşturduğunuzda, varsayılan asistan ayarları ön ayar olarak kullanılacaktır.",
|
488
493
|
"historyCompress": {
|
489
494
|
"label": "Oturum Geçmişi Modeli",
|
@@ -183,6 +183,7 @@
|
|
183
183
|
},
|
184
184
|
"fullscreen": "Chế độ toàn màn hình",
|
185
185
|
"historyRange": "Phạm vi lịch sử",
|
186
|
+
"import": "Nhập khẩu",
|
186
187
|
"importData": "Nhập dữ liệu",
|
187
188
|
"importModal": {
|
188
189
|
"error": {
|
@@ -324,6 +325,7 @@
|
|
324
325
|
}
|
325
326
|
},
|
326
327
|
"tab": {
|
328
|
+
"aiImage": "Vẽ tranh AI",
|
327
329
|
"chat": "Trò chuyện",
|
328
330
|
"discover": "Khám phá",
|
329
331
|
"files": "Tệp",
|
@@ -68,6 +68,22 @@
|
|
68
68
|
"GoBack": {
|
69
69
|
"back": "Quay lại"
|
70
70
|
},
|
71
|
+
"ImageUpload": {
|
72
|
+
"actions": {
|
73
|
+
"changeImage": "Nhấn để thay đổi hình ảnh"
|
74
|
+
},
|
75
|
+
"placeholder": {
|
76
|
+
"primary": "Thêm hình ảnh",
|
77
|
+
"secondary": "Nhấn để tải lên"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
"KeyValueEditor": {
|
81
|
+
"addButton": "Thêm một dòng",
|
82
|
+
"deleteTooltip": "Xóa",
|
83
|
+
"duplicateKeyError": "Tên khóa phải duy nhất",
|
84
|
+
"keyPlaceholder": "Khóa",
|
85
|
+
"valuePlaceholder": "Giá trị"
|
86
|
+
},
|
71
87
|
"MaxTokenSlider": {
|
72
88
|
"unlimited": "Không giới hạn"
|
73
89
|
},
|
@@ -91,6 +107,25 @@
|
|
91
107
|
"provider": "Nhà cung cấp",
|
92
108
|
"title": "Mô hình"
|
93
109
|
},
|
110
|
+
"MultiImagesUpload": {
|
111
|
+
"actions": {
|
112
|
+
"uploadMore": "Nhấn để tải thêm"
|
113
|
+
},
|
114
|
+
"modal": {
|
115
|
+
"complete": "Hoàn thành",
|
116
|
+
"newFileIndicator": "Mới thêm",
|
117
|
+
"selectImageToPreview": "Vui lòng chọn hình ảnh để xem trước",
|
118
|
+
"title": "Quản lý hình ảnh ({{count}})",
|
119
|
+
"upload": "Tải lên hình ảnh"
|
120
|
+
},
|
121
|
+
"placeholder": {
|
122
|
+
"primary": "Nhấn để tải lên hình ảnh",
|
123
|
+
"secondary": "Hỗ trợ chọn nhiều hình ảnh"
|
124
|
+
},
|
125
|
+
"progress": {
|
126
|
+
"uploadingWithCount": "Đã tải lên {{completed}}/{{total}}"
|
127
|
+
}
|
128
|
+
},
|
94
129
|
"OllamaSetupGuide": {
|
95
130
|
"action": {
|
96
131
|
"close": "Đóng thông báo",
|
package/locales/vi-VN/error.json
CHANGED
@@ -123,6 +123,7 @@
|
|
123
123
|
"stt": {
|
124
124
|
"responseError": "Yêu cầu dịch vụ thất bại, vui lòng kiểm tra cấu hình hoặc thử lại"
|
125
125
|
},
|
126
|
+
"testConnectionFailed": "Kiểm tra kết nối thất bại: {{error}}",
|
126
127
|
"tts": {
|
127
128
|
"responseError": "Yêu cầu dịch vụ thất bại, vui lòng kiểm tra cấu hình hoặc thử lại"
|
128
129
|
},
|
@@ -130,6 +131,7 @@
|
|
130
131
|
"addProxyUrl": "Thêm URL proxy OpenAI (tùy chọn)",
|
131
132
|
"apiKey": {
|
132
133
|
"description": "Nhập {{name}} API Key của bạn để bắt đầu phiên làm việc",
|
134
|
+
"imageGenerationDescription": "Nhập khóa API {{name}} của bạn để bắt đầu tạo hình ảnh",
|
133
135
|
"title": "Sử dụng {{name}} API Key tùy chỉnh"
|
134
136
|
},
|
135
137
|
"closeMessage": "Đóng thông báo",
|