,
checked={selectedSegmentIds.includes(segItem.id)}
onCheck={() => onSelected(segItem.id)}
/>
-
+
= ({ datasetId, documentId }) => {
const embedding = ['queuing', 'indexing', 'paused'].includes((documentDetail?.display_status || '').toLowerCase())
+ const invalidChunkList = useInvalid(useSegmentListKey)
+ const invalidChildChunkList = useInvalid(useChildSegmentListKey)
+
const handleOperate = (operateName?: string) => {
- if (operateName === 'delete')
+ if (operateName === 'delete') {
backToPrev()
- else
+ }
+ else {
detailMutate()
+ setTimeout(() => {
+ invalidChunkList()
+ invalidChildChunkList()
+ }, 5000)
+ }
}
const mode = useMemo(() => {
@@ -245,7 +255,7 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => {
{isDetailLoading
?
- :
{embedding
diff --git a/web/app/components/datasets/documents/index.tsx b/web/app/components/datasets/documents/index.tsx
index 7365ff9850..c9df2f28e2 100644
--- a/web/app/components/datasets/documents/index.tsx
+++ b/web/app/components/datasets/documents/index.tsx
@@ -24,6 +24,10 @@ import { DataSourceType } from '@/models/datasets'
import IndexFailed from '@/app/components/datasets/common/document-status-with-action/index-failed'
import { useProviderContext } from '@/context/provider-context'
import cn from '@/utils/classnames'
+import { useInvalidDocumentDetailKey } from '@/service/knowledge/use-document'
+import { useInvalid } from '@/service/use-base'
+import { useChildSegmentListKey, useSegmentListKey } from '@/service/knowledge/use-segment'
+
const FolderPlusIcon = ({ className }: React.SVGProps
) => {
return
+ }
+ triggerClassName='ml-1 w-4 h-4'
+ />
+ )
+ }
{
scene === 'detail' && (
@@ -152,16 +162,6 @@ export const StatusItem: FC<{
)
}
- {
- errorMessage && (
-
{errorMessage}
- }
- triggerClassName='ml-1 w-4 h-4'
- />
- )
- }
}
@@ -561,18 +561,14 @@ const DocumentList: FC
= ({
-
-
- {doc?.data_source_type === DataSourceType.NOTION &&
- }
+
+
+ {doc?.data_source_type === DataSourceType.NOTION && }
{doc?.data_source_type === DataSourceType.FILE && }
- {doc?.data_source_type === DataSourceType.WEB &&
- }
- {
- doc.name
- }
-
-
+ {doc?.data_source_type === DataSourceType.WEB && }
+
+ {doc.name}
+
diff --git a/web/app/components/datasets/hit-testing/components/child-chunks-item.tsx b/web/app/components/datasets/hit-testing/components/child-chunks-item.tsx
index 043aa3cea7..3c01e3d0b3 100644
--- a/web/app/components/datasets/hit-testing/components/child-chunks-item.tsx
+++ b/web/app/components/datasets/hit-testing/components/child-chunks-item.tsx
@@ -17,7 +17,7 @@ const ChildChunks: FC = ({
const { id, score, content, position } = payload
return (
C-{position}
diff --git a/web/app/components/datasets/hit-testing/components/chunk-detail-modal.tsx b/web/app/components/datasets/hit-testing/components/chunk-detail-modal.tsx
index 8d49cef3d0..fe2f2b8f36 100644
--- a/web/app/components/datasets/hit-testing/components/chunk-detail-modal.tsx
+++ b/web/app/components/datasets/hit-testing/components/chunk-detail-modal.tsx
@@ -56,7 +56,7 @@ const ChunkDetailModal: FC = ({
-
+
{content}
{!isParentChildRetrieval && keywords && keywords.length > 0 && (
diff --git a/web/app/components/datasets/hit-testing/components/result-item.tsx b/web/app/components/datasets/hit-testing/components/result-item.tsx
index 36ee541161..3c8c146d53 100644
--- a/web/app/components/datasets/hit-testing/components/result-item.tsx
+++ b/web/app/components/datasets/hit-testing/components/result-item.tsx
@@ -43,13 +43,8 @@ const ResultItem: FC = ({
setFalse: hideDetailModal,
}] = useBoolean(false)
- const handleClickCard = () => {
- if (!isParentChildRetrieval)
- showDetailModal()
- }
-
return (
-
+
{/* Meta info */}
@@ -66,7 +61,7 @@ const ResultItem: FC = ({
{/* Main */}
- {content}
+ {content}
{isParentChildRetrieval && (
diff --git a/web/app/components/datasets/hit-testing/components/score.tsx b/web/app/components/datasets/hit-testing/components/score.tsx
index 175b00b7e7..76914318e0 100644
--- a/web/app/components/datasets/hit-testing/components/score.tsx
+++ b/web/app/components/datasets/hit-testing/components/score.tsx
@@ -12,15 +12,15 @@ const Score: FC = ({
value,
besideChunkName,
}) => {
- if (!value)
+ if (!value || isNaN(value))
return null
-
return (
-
+
score
- {value.toFixed(2)}
+ {value?.toFixed(2)}
)
diff --git a/web/app/components/datasets/hit-testing/index.tsx b/web/app/components/datasets/hit-testing/index.tsx
index 30be6fb7e7..ccc200bbe6 100644
--- a/web/app/components/datasets/hit-testing/index.tsx
+++ b/web/app/components/datasets/hit-testing/index.tsx
@@ -192,7 +192,7 @@ const HitTesting: FC = ({ datasetId }: Props) => {
}
- setIsShowModifyRetrievalModal(false)} footer={null} mask={isMobile} panelClassname='mt-16 mx-2 sm:mr-2 mb-3 !p-0 !max-w-[640px] rounded-xl'>
+ setIsShowModifyRetrievalModal(false)} footer={null} mask={isMobile} panelClassname='mt-16 mx-2 sm:mr-2 mb-3 !p-0 !max-w-[640px] rounded-xl'>
= ({
const {
modelList: rerankModelList,
- defaultModel: rerankDefaultModel,
- currentModel: isRerankDefaultModelValid,
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
const handleSave = () => {
if (
!isReRankModelSelected({
- rerankDefaultModel,
- isRerankDefaultModelValid: !!isRerankDefaultModelValid,
rerankModelList,
retrievalConfig,
indexMethod,
@@ -56,14 +51,7 @@ const ModifyRetrievalModal: FC = ({
Toast.notify({ type: 'error', message: t('appDebug.datasetConfig.rerankModelRequired') })
return
}
- onSave(ensureRerankModelSelected({
- rerankDefaultModel: rerankDefaultModel!,
- retrievalConfig: {
- ...retrievalConfig,
- reranking_enable: retrievalConfig.reranking_mode === RerankingModeEnum.RerankingModel,
- },
- indexMethod,
- }))
+ onSave(retrievalConfig)
}
if (!isShow)
diff --git a/web/app/components/datasets/settings/form/index.tsx b/web/app/components/datasets/settings/form/index.tsx
index 5f6fc00eb7..760954d6cb 100644
--- a/web/app/components/datasets/settings/form/index.tsx
+++ b/web/app/components/datasets/settings/form/index.tsx
@@ -17,11 +17,11 @@ import Input from '@/app/components/base/input'
import Textarea from '@/app/components/base/textarea'
import { ApiConnectionMod } from '@/app/components/base/icons/src/vender/solid/development'
import { updateDatasetSetting } from '@/service/datasets'
-import { type DataSetListResponse, RerankingModeEnum } from '@/models/datasets'
+import { type DataSetListResponse } from '@/models/datasets'
import DatasetDetailContext from '@/context/dataset-detail'
import { type RetrievalConfig } from '@/types/app'
import { useAppContext } from '@/context/app-context'
-import { ensureRerankModelSelected, isReRankModelSelected } from '@/app/components/datasets/common/check-rerank-model'
+import { isReRankModelSelected } from '@/app/components/datasets/common/check-rerank-model'
import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector'
import {
useModelList,
@@ -74,8 +74,6 @@ const Form = () => {
)
const {
modelList: rerankModelList,
- defaultModel: rerankDefaultModel,
- currentModel: isRerankDefaultModelValid,
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
const { data: embeddingModelList } = useModelList(ModelTypeEnum.textEmbedding)
@@ -109,8 +107,6 @@ const Form = () => {
}
if (
!isReRankModelSelected({
- rerankDefaultModel,
- isRerankDefaultModelValid: !!isRerankDefaultModelValid,
rerankModelList,
retrievalConfig,
indexMethod,
@@ -119,17 +115,9 @@ const Form = () => {
notify({ type: 'error', message: t('appDebug.datasetConfig.rerankModelRequired') })
return
}
- const postRetrievalConfig = ensureRerankModelSelected({
- rerankDefaultModel: rerankDefaultModel!,
- retrievalConfig: {
- ...retrievalConfig,
- reranking_enable: retrievalConfig.reranking_mode === RerankingModeEnum.RerankingModel,
- },
- indexMethod,
- })
- if (postRetrievalConfig.weights) {
- postRetrievalConfig.weights.vector_setting.embedding_provider_name = currentDataset?.embedding_model_provider || ''
- postRetrievalConfig.weights.vector_setting.embedding_model_name = currentDataset?.embedding_model || ''
+ if (retrievalConfig.weights) {
+ retrievalConfig.weights.vector_setting.embedding_provider_name = currentDataset?.embedding_model_provider || ''
+ retrievalConfig.weights.vector_setting.embedding_model_name = currentDataset?.embedding_model || ''
}
try {
setLoading(true)
@@ -141,8 +129,8 @@ const Form = () => {
permission,
indexing_technique: indexMethod,
retrieval_model: {
- ...postRetrievalConfig,
- score_threshold: postRetrievalConfig.score_threshold_enabled ? postRetrievalConfig.score_threshold : 0,
+ ...retrievalConfig,
+ score_threshold: retrievalConfig.score_threshold_enabled ? retrievalConfig.score_threshold : 0,
},
embedding_model: embeddingModel.model,
embedding_model_provider: embeddingModel.provider,
diff --git a/web/app/components/develop/doc.tsx b/web/app/components/develop/doc.tsx
index d3076c4e74..fd524ef0c1 100644
--- a/web/app/components/develop/doc.tsx
+++ b/web/app/components/develop/doc.tsx
@@ -61,6 +61,23 @@ const Doc = ({ appDetail }: IDocProps) => {
// Run after component has rendered
setTimeout(extractTOC, 0)
}, [appDetail, locale])
+
+ const handleTocClick = (e: React.MouseEvent, item: { href: string; text: string }) => {
+ e.preventDefault()
+ const targetId = item.href.replace('#', '')
+ const element = document.getElementById(targetId)
+ if (element) {
+ const scrollContainer = document.querySelector('.overflow-auto')
+ if (scrollContainer) {
+ const headerOffset = 80
+ const elementTop = element.offsetTop - headerOffset
+ scrollContainer.scrollTo({
+ top: elementTop,
+ behavior: 'smooth',
+ })
+ }
+ }
+ }
return (
@@ -82,6 +99,7 @@ const Doc = ({ appDetail }: IDocProps) => {
handleTocClick(e, item)}
>
{item.text}
diff --git a/web/app/components/develop/template/template.en.mdx b/web/app/components/develop/template/template.en.mdx
index 877955039c..ea3b7f3d23 100755
--- a/web/app/components/develop/template/template.en.mdx
+++ b/web/app/components/develop/template/template.en.mdx
@@ -444,22 +444,16 @@ The text generation application offers non-session support and is ideal for tran
Used to get basic information about this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `name` (string) application name
- `description` (string) application description
- `tags` (array[string]) application tags
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -490,14 +484,6 @@ The text generation application offers non-session support and is ideal for tran
Used at the start of entering the page to obtain information such as features, input parameter names, types, and default values.
- ### Query
-
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
-
### Response
- `opening_statement` (string) Opening statement
- `suggested_questions` (array[string]) List of suggested questions for the opening
@@ -541,10 +527,10 @@ The text generation application offers non-session support and is ideal for tran
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template.ja.mdx b/web/app/components/develop/template/template.ja.mdx
index c3b376f2e7..4670404277 100755
--- a/web/app/components/develop/template/template.ja.mdx
+++ b/web/app/components/develop/template/template.ja.mdx
@@ -442,22 +442,16 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションの基本情報を取得するために使用されます
- ### Query
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
### Response
- `name` (string) アプリケーションの名前
- `description` (string) アプリケーションの説明
- `tags` (array[string]) アプリケーションのタグ
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -488,14 +482,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
ページ開始時に、機能、入力パラメータ名、タイプ、デフォルト値などの情報を取得するために使用されます。
- ### クエリ
-
-
-
- 開発者のルールで定義されたユーザー識別子。アプリケーション内で一意である必要があります。
-
-
-
### レスポンス
- `opening_statement` (string) 開始文
- `suggested_questions` (array[string]) 開始時の提案質問リスト
@@ -539,10 +525,10 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template.zh.mdx b/web/app/components/develop/template/template.zh.mdx
index be7470480f..d8cabb536d 100755
--- a/web/app/components/develop/template/template.zh.mdx
+++ b/web/app/components/develop/template/template.zh.mdx
@@ -419,22 +419,15 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于获取应用的基本信息
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `name` (string) 应用名称
- `description` (string) 应用描述
- `tags` (array[string]) 应用标签
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -465,14 +458,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
-
### Response
- `opening_statement` (string) 开场白
- `suggested_questions` (array[string]) 开场推荐问题列表
@@ -518,7 +503,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_advanced_chat.en.mdx b/web/app/components/develop/template/template_advanced_chat.en.mdx
index c7b92acc52..e905e9e0c6 100644
--- a/web/app/components/develop/template/template_advanced_chat.en.mdx
+++ b/web/app/components/develop/template/template_advanced_chat.en.mdx
@@ -952,22 +952,16 @@ Chat applications support session persistence, allowing previous chat history to
Used to get basic information about this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `name` (string) application name
- `description` (string) application description
- `tags` (array[string]) application tags
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -998,14 +992,6 @@ Chat applications support session persistence, allowing previous chat history to
Used at the start of entering the page to obtain information such as features, input parameter names, types, and default values.
- ### Query
-
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
-
### Response
- `opening_statement` (string) Opening statement
- `suggested_questions` (array[string]) List of suggested questions for the opening
@@ -1049,10 +1035,10 @@ Chat applications support session persistence, allowing previous chat history to
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1117,13 +1103,7 @@ Chat applications support session persistence, allowing previous chat history to
Used to get icons of tools in this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `tool_icons`(object[string]) tool icons
- `tool_name` (string)
@@ -1134,9 +1114,9 @@ Chat applications support session persistence, allowing previous chat history to
- (string) url of icon
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_advanced_chat.ja.mdx b/web/app/components/develop/template/template_advanced_chat.ja.mdx
index 67e8d8f7fe..08255b8882 100644
--- a/web/app/components/develop/template/template_advanced_chat.ja.mdx
+++ b/web/app/components/develop/template/template_advanced_chat.ja.mdx
@@ -951,22 +951,16 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションの基本情報を取得するために使用されます
- ### Query
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
### Response
- `name` (string) アプリケーションの名前
- `description` (string) アプリケーションの説明
- `tags` (array[string]) アプリケーションのタグ
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -997,14 +991,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
ページに入る際に、機能、入力パラメータ名、タイプ、デフォルト値などの情報を取得するために使用されます。
- ### クエリ
-
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
-
### 応答
- `opening_statement` (string) 開始の挨拶
- `suggested_questions` (array[string]) 開始時の推奨質問のリスト
@@ -1048,10 +1034,10 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1116,13 +1102,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションのツールのアイコンを取得するために使用されます
- ### クエリ
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
### 応答
- `tool_icons`(object[string]) ツールアイコン
- `tool_name` (string)
@@ -1133,9 +1113,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
- (string) アイコンのURL
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_advanced_chat.zh.mdx b/web/app/components/develop/template/template_advanced_chat.zh.mdx
index 3bb17d8502..8d181d7e0b 100755
--- a/web/app/components/develop/template/template_advanced_chat.zh.mdx
+++ b/web/app/components/develop/template/template_advanced_chat.zh.mdx
@@ -985,22 +985,15 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于获取应用的基本信息
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `name` (string) 应用名称
- `description` (string) 应用描述
- `tags` (array[string]) 应用标签
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -1031,14 +1024,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
-
### Response
- `opening_statement` (string) 开场白
- `suggested_questions` (array[string]) 开场推荐问题列表
@@ -1084,7 +1069,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1141,13 +1126,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于获取工具icon
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `tool_icons`(object[string]) 工具图标
- `工具名称` (string)
@@ -1158,9 +1136,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
- (string) 图标URL
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_chat.en.mdx b/web/app/components/develop/template/template_chat.en.mdx
index d38e80407a..7de329a7a0 100644
--- a/web/app/components/develop/template/template_chat.en.mdx
+++ b/web/app/components/develop/template/template_chat.en.mdx
@@ -980,22 +980,16 @@ Chat applications support session persistence, allowing previous chat history to
Used to get basic information about this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `name` (string) application name
- `description` (string) application description
- `tags` (array[string]) application tags
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -1077,10 +1071,10 @@ Chat applications support session persistence, allowing previous chat history to
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1145,13 +1139,7 @@ Chat applications support session persistence, allowing previous chat history to
Used to get icons of tools in this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `tool_icons`(object[string]) tool icons
- `tool_name` (string)
@@ -1162,9 +1150,9 @@ Chat applications support session persistence, allowing previous chat history to
- (string) url of icon
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_chat.ja.mdx b/web/app/components/develop/template/template_chat.ja.mdx
index 96db9912d5..8107f6260a 100644
--- a/web/app/components/develop/template/template_chat.ja.mdx
+++ b/web/app/components/develop/template/template_chat.ja.mdx
@@ -978,22 +978,16 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションの基本情報を取得するために使用されます
- ### Query
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
### Response
- `name` (string) アプリケーションの名前
- `description` (string) アプリケーションの説明
- `tags` (array[string]) アプリケーションのタグ
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -1024,14 +1018,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
ページに入る際に、機能、入力パラメータ名、タイプ、デフォルト値などの情報を取得するために使用されます。
- ### クエリ
-
-
-
- ユーザー識別子、開発者のルールで定義され、アプリケーション内で一意でなければなりません。
-
-
-
### 応答
- `opening_statement` (string) 開始文
- `suggested_questions` (array[string]) 開始時の推奨質問のリスト
@@ -1075,10 +1061,10 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1143,13 +1129,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションのツールのアイコンを取得するために使用されます
- ### クエリ
-
-
- ユーザー識別子、開発者のルールで定義され、アプリケーション内で一意でなければなりません。
-
-
### 応答
- `tool_icons`(object[string]) ツールアイコン
- `tool_name` (string)
@@ -1160,9 +1140,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
- (string) アイコンのURL
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_chat.zh.mdx b/web/app/components/develop/template/template_chat.zh.mdx
index 3d6e3630be..ec845970b4 100644
--- a/web/app/components/develop/template/template_chat.zh.mdx
+++ b/web/app/components/develop/template/template_chat.zh.mdx
@@ -993,22 +993,15 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于获取应用的基本信息
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `name` (string) 应用名称
- `description` (string) 应用描述
- `tags` (array[string]) 应用标签
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -1039,14 +1032,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
-
### Response
- `opening_statement` (string) 开场白
- `suggested_questions` (array[string]) 开场推荐问题列表
@@ -1092,7 +1077,7 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
@@ -1149,13 +1134,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
用于获取工具icon
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `tool_icons`(object[string]) 工具图标
- `工具名称` (string)
@@ -1166,9 +1144,9 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx'
- (string) 图标URL
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/meta?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/meta' \
-H 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_workflow.en.mdx b/web/app/components/develop/template/template_workflow.en.mdx
index 58c533c60b..27c0d26505 100644
--- a/web/app/components/develop/template/template_workflow.en.mdx
+++ b/web/app/components/develop/template/template_workflow.en.mdx
@@ -610,22 +610,16 @@ Workflow applications offers non-session support and is ideal for translation, a
Used to get basic information about this application
- ### Query
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
### Response
- `name` (string) application name
- `description` (string) application description
- `tags` (array[string]) application tags
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -656,14 +650,6 @@ Workflow applications offers non-session support and is ideal for translation, a
Used at the start of entering the page to obtain information such as features, input parameter names, types, and default values.
- ### Query
-
-
-
- User identifier, defined by the developer's rules, must be unique within the application.
-
-
-
### Response
- `user_input_form` (array[object]) User input form configuration
- `text-input` (object) Text input control
@@ -697,10 +683,10 @@ Workflow applications offers non-session support and is ideal for translation, a
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_workflow.ja.mdx b/web/app/components/develop/template/template_workflow.ja.mdx
index 2653b4913d..9e66973db7 100644
--- a/web/app/components/develop/template/template_workflow.ja.mdx
+++ b/web/app/components/develop/template/template_workflow.ja.mdx
@@ -610,22 +610,16 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
このアプリケーションの基本情報を取得するために使用されます
- ### Query
-
-
- ユーザー識別子、開発者のルールによって定義され、アプリケーション内で一意でなければなりません。
-
-
### Response
- `name` (string) アプリケーションの名前
- `description` (string) アプリケーションの説明
- `tags` (array[string]) アプリケーションのタグ
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -656,14 +650,6 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
ページに入る際に、機能、入力パラメータ名、タイプ、デフォルト値などの情報を取得するために使用されます。
- ### クエリ
-
-
-
- ユーザー識別子、開発者のルールで定義され、アプリケーション内で一意でなければなりません。
-
-
-
### 応答
- `user_input_form` (array[object]) ユーザー入力フォームの設定
- `text-input` (object) テキスト入力コントロール
@@ -697,10 +683,10 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/develop/template/template_workflow.zh.mdx b/web/app/components/develop/template/template_workflow.zh.mdx
index ddffc0f02d..40dfb863a0 100644
--- a/web/app/components/develop/template/template_workflow.zh.mdx
+++ b/web/app/components/develop/template/template_workflow.zh.mdx
@@ -602,22 +602,15 @@ Workflow 应用无会话支持,适合用于翻译/文章写作/总结 AI 等
用于获取应用的基本信息
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
### Response
- `name` (string) 应用名称
- `description` (string) 应用描述
- `tags` (array[string]) 应用标签
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/info?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/info' \
-H 'Authorization: Bearer {api_key}'
```
@@ -648,14 +641,6 @@ Workflow 应用无会话支持,适合用于翻译/文章写作/总结 AI 等
用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
- ### Query
-
-
-
- 用户标识,由开发者定义规则,需保证用户标识在应用内唯一。
-
-
-
### Response
- `user_input_form` (array[object]) 用户输入表单配置
- `text-input` (object) 文本输入控件
@@ -689,10 +674,10 @@ Workflow 应用无会话支持,适合用于翻译/文章写作/总结 AI 等
-
+
```bash {{ title: 'cURL' }}
- curl -X GET '${props.appDetail.api_base_url}/parameters?user=abc-123' \
+ curl -X GET '${props.appDetail.api_base_url}/parameters' \
--header 'Authorization: Bearer {api_key}'
```
diff --git a/web/app/components/explore/app-card/index.tsx b/web/app/components/explore/app-card/index.tsx
index f1826395f7..36034195ee 100644
--- a/web/app/components/explore/app-card/index.tsx
+++ b/web/app/components/explore/app-card/index.tsx
@@ -52,11 +52,11 @@ const AppCard = ({
-
+
-
- {appBasicInfo.mode === 'advanced-chat' && {t('app.types.chatbot').toUpperCase()} }
+
+ {appBasicInfo.mode === 'advanced-chat' && {t('app.types.advanced').toUpperCase()} }
{appBasicInfo.mode === 'chat' && {t('app.types.chatbot').toUpperCase()} }
{appBasicInfo.mode === 'agent-chat' && {t('app.types.agent').toUpperCase()} }
{appBasicInfo.mode === 'workflow' && {t('app.types.workflow').toUpperCase()} }
@@ -64,7 +64,7 @@ const AppCard = ({
-
+
{app.description}
diff --git a/web/app/components/share/text-generation/index.tsx b/web/app/components/share/text-generation/index.tsx
index 27ea46cbff..16571b6451 100644
--- a/web/app/components/share/text-generation/index.tsx
+++ b/web/app/components/share/text-generation/index.tsx
@@ -1,6 +1,6 @@
'use client'
import type { FC } from 'react'
-import React, { useEffect, useRef, useState } from 'react'
+import React, { useCallback, useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import {
RiErrorWarningFill,
@@ -93,8 +93,12 @@ const TextGeneration: FC = ({
// Notice this situation isCallBatchAPI but not in batch tab
const [isCallBatchAPI, setIsCallBatchAPI] = useState(false)
const isInBatchTab = currentTab === 'batch'
- const [inputs, setInputs] = useState>({})
+ const [inputs, doSetInputs] = useState>({})
const inputsRef = useRef(inputs)
+ const setInputs = useCallback((newInputs: Record) => {
+ doSetInputs(newInputs)
+ inputsRef.current = newInputs
+ }, [])
const [appId, setAppId] = useState('')
const [siteInfo, setSiteInfo] = useState(null)
const [canReplaceLogo, setCanReplaceLogo] = useState(false)
diff --git a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts
index 6791a2f746..05481b4c8c 100644
--- a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts
+++ b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts
@@ -27,6 +27,7 @@ import VariableAssigner from '@/app/components/workflow/nodes/variable-assigner/
import Assigner from '@/app/components/workflow/nodes/assigner/default'
import ParameterExtractorDefault from '@/app/components/workflow/nodes/parameter-extractor/default'
import IterationDefault from '@/app/components/workflow/nodes/iteration/default'
+import DocumentExtractorDefault from '@/app/components/workflow/nodes/document-extractor/default'
import { ssePost } from '@/service/base'
import { getInputVars as doGetInputVars } from '@/app/components/base/prompt-editor/constants'
@@ -43,6 +44,7 @@ const { checkValid: checkVariableAssignerValid } = VariableAssigner
const { checkValid: checkAssignerValid } = Assigner
const { checkValid: checkParameterExtractorValid } = ParameterExtractorDefault
const { checkValid: checkIterationValid } = IterationDefault
+const { checkValid: checkDocumentExtractorValid } = DocumentExtractorDefault
const checkValidFns: Record = {
[BlockEnum.LLM]: checkLLMValid,
@@ -57,6 +59,7 @@ const checkValidFns: Record = {
[BlockEnum.VariableAggregator]: checkVariableAssignerValid,
[BlockEnum.ParameterExtractor]: checkParameterExtractorValid,
[BlockEnum.Iteration]: checkIterationValid,
+ [BlockEnum.DocExtractor]: checkDocumentExtractorValid,
} as any
type Params = {
diff --git a/web/app/components/workflow/nodes/document-extractor/panel.tsx b/web/app/components/workflow/nodes/document-extractor/panel.tsx
index 1e26fe4c33..597f528582 100644
--- a/web/app/components/workflow/nodes/document-extractor/panel.tsx
+++ b/web/app/components/workflow/nodes/document-extractor/panel.tsx
@@ -11,9 +11,11 @@ import useConfig from './use-config'
import type { DocExtractorNodeType } from './types'
import { fetchSupportFileTypes } from '@/service/datasets'
import Field from '@/app/components/workflow/nodes/_base/components/field'
-import { BlockEnum, type NodePanelProps } from '@/app/components/workflow/types'
+import { BlockEnum, InputVarType, type NodePanelProps } from '@/app/components/workflow/types'
import I18n from '@/context/i18n'
import { LanguagesSupported } from '@/i18n/language'
+import BeforeRunForm from '@/app/components/workflow/nodes/_base/components/before-run-form'
+import ResultPanel from '@/app/components/workflow/run/result-panel'
const i18nPrefix = 'workflow.nodes.docExtractor'
@@ -46,6 +48,15 @@ const Panel: FC> = ({
inputs,
handleVarChanges,
filterVar,
+ // single run
+ isShowSingleRun,
+ hideSingleRun,
+ runningStatus,
+ handleRun,
+ handleStop,
+ runResult,
+ files,
+ setFiles,
} = useConfig(id, data)
return (
@@ -81,6 +92,30 @@ const Panel: FC> = ({
/>
+ {
+ isShowSingleRun && (
+ setFiles((keyValue as any).files),
+ },
+ ]}
+ runningStatus={runningStatus}
+ onRun={handleRun}
+ onStop={handleStop}
+ result={}
+ />
+ )
+ }
)
}
diff --git a/web/app/components/workflow/nodes/document-extractor/use-config.ts b/web/app/components/workflow/nodes/document-extractor/use-config.ts
index 9406c125f0..9d720d7b63 100644
--- a/web/app/components/workflow/nodes/document-extractor/use-config.ts
+++ b/web/app/components/workflow/nodes/document-extractor/use-config.ts
@@ -3,9 +3,10 @@ import produce from 'immer'
import { useStoreApi } from 'reactflow'
import type { ValueSelector, Var } from '../../types'
-import { VarType } from '../../types'
+import { InputVarType, VarType } from '../../types'
import { type DocExtractorNodeType } from './types'
import useNodeCrud from '@/app/components/workflow/nodes/_base/hooks/use-node-crud'
+import useOneStepRun from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run'
import {
useIsChatMode,
useNodesReadOnly,
@@ -55,11 +56,53 @@ const useConfig = (id: string, payload: DocExtractorNodeType) => {
setInputs(newInputs)
}, [getType, inputs, setInputs])
+ // single run
+ const {
+ isShowSingleRun,
+ hideSingleRun,
+ runningStatus,
+ isCompleted,
+ handleRun,
+ handleStop,
+ runInputData,
+ setRunInputData,
+ runResult,
+ } = useOneStepRun ({
+ id,
+ data: inputs,
+ defaultRunInputData: { files: [] },
+ })
+ const varInputs = [{
+ label: inputs.title,
+ variable: 'files',
+ type: InputVarType.multiFiles,
+ required: true,
+ }]
+
+ const files = runInputData.files
+ const setFiles = useCallback((newFiles: []) => {
+ setRunInputData({
+ ...runInputData,
+ files: newFiles,
+ })
+ }, [runInputData, setRunInputData])
+
return {
readOnly,
inputs,
filterVar,
handleVarChanges,
+ // single run
+ isShowSingleRun,
+ hideSingleRun,
+ runningStatus,
+ isCompleted,
+ handleRun,
+ handleStop,
+ varInputs,
+ files,
+ setFiles,
+ runResult,
}
}
diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx
index b335b62e33..d3e2079733 100644
--- a/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx
+++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/retrieval-config.tsx
@@ -59,7 +59,8 @@ const RetrievalConfig: FC = ({
}, [onOpenFromPropsChange])
const {
- defaultModel: rerankDefaultModel,
+ currentProvider: validRerankDefaultProvider,
+ currentModel: validRerankDefaultModel,
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
const { multiple_retrieval_config } = payload
@@ -75,8 +76,8 @@ const RetrievalConfig: FC = ({
? undefined
: (!configs.reranking_model?.reranking_provider_name
? {
- provider: rerankDefaultModel?.provider?.provider || '',
- model: rerankDefaultModel?.model || '',
+ provider: validRerankDefaultProvider?.provider || '',
+ model: validRerankDefaultModel?.model || '',
}
: {
provider: configs.reranking_model?.reranking_provider_name,
@@ -86,7 +87,7 @@ const RetrievalConfig: FC = ({
weights: configs.weights as any,
reranking_enable: configs.reranking_enable,
})
- }, [onMultipleRetrievalConfigChange, payload.retrieval_mode, rerankDefaultModel?.provider?.provider, rerankDefaultModel?.model, onRetrievalModeChange])
+ }, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange])
return (
{
})
setInputs(newInput)
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [currentProvider?.provider, currentModel, rerankDefaultModel])
+ }, [currentProvider?.provider, currentModel, currentRerankModel, rerankDefaultModel])
const [selectedDatasets, setSelectedDatasets] = useState([])
const [rerankModelOpen, setRerankModelOpen] = useState(false)
const handleRetrievalModeChange = useCallback((newMode: RETRIEVE_TYPE) => {
diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts
index 794fcbca4a..c7b48c1eaa 100644
--- a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts
+++ b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts
@@ -126,7 +126,7 @@ export const getMultipleRetrievalConfig = (
reranking_mode,
reranking_model,
weights,
- reranking_enable: ((allInternal && allEconomic) || allExternal) ? reranking_enable : true,
+ reranking_enable: ((allInternal && allEconomic) || allExternal) ? reranking_enable : shouldSetWeightDefaultValue,
}
const setDefaultWeights = () => {
@@ -152,16 +152,20 @@ export const getMultipleRetrievalConfig = (
if (allEconomic || mixtureHighQualityAndEconomic || inconsistentEmbeddingModel || allExternal || mixtureInternalAndExternal) {
result.reranking_mode = RerankingModeEnum.RerankingModel
-
- if (rerankModelIsValid) {
- result.reranking_mode = RerankingModeEnum.RerankingModel
- result.reranking_model = {
- provider: validRerankModel?.provider || '',
- model: validRerankModel?.model || '',
+ if (!result.reranking_model?.provider || !result.reranking_model?.model) {
+ if (rerankModelIsValid) {
+ result.reranking_enable = true
+ result.reranking_model = {
+ provider: validRerankModel?.provider || '',
+ model: validRerankModel?.model || '',
+ }
+ }
+ else {
+ result.reranking_model = {
+ provider: '',
+ model: '',
+ }
}
- }
- else {
- result.reranking_model = undefined
}
}
@@ -169,6 +173,7 @@ export const getMultipleRetrievalConfig = (
if (!reranking_mode) {
if (validRerankModel?.provider && validRerankModel?.model) {
result.reranking_mode = RerankingModeEnum.RerankingModel
+ result.reranking_enable = true
result.reranking_model = {
provider: validRerankModel.provider,
model: validRerankModel.model,
@@ -186,6 +191,7 @@ export const getMultipleRetrievalConfig = (
if (reranking_mode === RerankingModeEnum.WeightedScore && weights && shouldSetWeightDefaultValue) {
if (rerankModelIsValid) {
result.reranking_mode = RerankingModeEnum.RerankingModel
+ result.reranking_enable = true
result.reranking_model = {
provider: validRerankModel.provider || '',
model: validRerankModel.model || '',
@@ -199,6 +205,13 @@ export const getMultipleRetrievalConfig = (
result.reranking_mode = RerankingModeEnum.WeightedScore
setDefaultWeights()
}
+ if (reranking_mode === RerankingModeEnum.RerankingModel && rerankModelIsValid) {
+ result.reranking_enable = true
+ result.reranking_model = {
+ provider: validRerankModel.provider || '',
+ model: validRerankModel.model || '',
+ }
+ }
}
return result
diff --git a/web/app/components/workflow/utils.ts b/web/app/components/workflow/utils.ts
index 4c61267e4c..da2848277f 100644
--- a/web/app/components/workflow/utils.ts
+++ b/web/app/components/workflow/utils.ts
@@ -382,6 +382,7 @@ export const canRunBySingle = (nodeType: BlockEnum) => {
|| nodeType === BlockEnum.Tool
|| nodeType === BlockEnum.ParameterExtractor
|| nodeType === BlockEnum.Iteration
+ || nodeType === BlockEnum.DocExtractor
}
type ConnectedSourceOrTargetNodesChange = {
diff --git a/web/app/layout.tsx b/web/app/layout.tsx
index 46e4f39075..b52c904561 100644
--- a/web/app/layout.tsx
+++ b/web/app/layout.tsx
@@ -44,6 +44,7 @@ const LocaleLayout = ({
data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE}
data-public-site-about={process.env.NEXT_PUBLIC_SITE_ABOUT}
data-public-text-generation-timeout-ms={process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS}
+ data-public-top-k-max-value={process.env.NEXT_PUBLIC_TOP_K_MAX_VALUE}
>
diff --git a/web/config/index.ts b/web/config/index.ts
index 9eb4889441..b87c027de1 100644
--- a/web/config/index.ts
+++ b/web/config/index.ts
@@ -258,3 +258,5 @@ else if (globalThis.document?.body?.getAttribute('data-public-text-generation-ti
export const TEXT_GENERATION_TIMEOUT_MS = textGenerationTimeoutMs
export const DISABLE_UPLOAD_IMAGE_AS_ICON = process.env.NEXT_PUBLIC_DISABLE_UPLOAD_IMAGE_AS_ICON === 'true'
+
+export const FULL_DOC_PREVIEW_LENGTH = 50
diff --git a/web/docker/entrypoint.sh b/web/docker/entrypoint.sh
index ad4b17a476..8c6de0eb79 100755
--- a/web/docker/entrypoint.sh
+++ b/web/docker/entrypoint.sh
@@ -23,5 +23,6 @@ export NEXT_TELEMETRY_DISABLED=${NEXT_TELEMETRY_DISABLED}
export NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS=${TEXT_GENERATION_TIMEOUT_MS}
export NEXT_PUBLIC_CSP_WHITELIST=${CSP_WHITELIST}
+export NEXT_PUBLIC_TOP_K_MAX_VALUE=${TOP_K_MAX_VALUE}
pm2 start ./pm2.json --no-daemon
diff --git a/web/i18n/de-DE/app.ts b/web/i18n/de-DE/app.ts
index 69bf0bce72..4429db34bc 100644
--- a/web/i18n/de-DE/app.ts
+++ b/web/i18n/de-DE/app.ts
@@ -190,6 +190,7 @@ const translation = {
byCategories: 'NACH KATEGORIEN',
searchAllTemplate: 'Alle Vorlagen durchsuchen...',
},
+ showMyCreatedAppsOnly: 'Nur meine erstellten Apps anzeigen',
}
export default translation
diff --git a/web/i18n/de-DE/common.ts b/web/i18n/de-DE/common.ts
index dde421e942..f97403ed5e 100644
--- a/web/i18n/de-DE/common.ts
+++ b/web/i18n/de-DE/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: 'Erneuern',
saveAndRegenerate: 'Speichern und Regenerieren von untergeordneten Chunks',
view: 'Ansehen',
+ submit: 'Senden',
+ skip: 'Schiff',
},
placeholder: {
input: 'Bitte eingeben',
@@ -179,6 +181,18 @@ const translation = {
myAccount: 'Mein Konto',
studio: 'Dify Studio',
account: 'Konto',
+ deletePrivacyLinkTip: 'Weitere Informationen darüber, wie wir mit Ihren Daten umgehen, finden Sie in unserer',
+ deletePrivacyLink: 'Datenschutzrichtlinie.',
+ deleteSuccessTip: 'Das Löschen Ihres Kontos benötigt einige Zeit, um vollständig gelöscht zu werden. Wir senden Ihnen eine E-Mail, wenn alles erledigt ist.',
+ deleteLabel: 'Zur Bestätigung geben Sie bitte unten Ihre E-Mail-Adresse ein',
+ deletePlaceholder: 'Bitte geben Sie Ihre E-Mail-Adresse ein',
+ sendVerificationButton: 'Verifizierungscode senden',
+ verificationLabel: 'Verifizierungs-Code',
+ verificationPlaceholder: 'Fügen Sie den 6-stelligen Code ein',
+ feedbackTitle: 'Feedback',
+ feedbackLabel: 'Sagen Sie uns, warum Sie Ihr Konto gelöscht haben?',
+ feedbackPlaceholder: 'Wahlfrei',
+ permanentlyDeleteButton: 'Konto dauerhaft löschen',
},
members: {
team: 'Team',
diff --git a/web/i18n/de-DE/workflow.ts b/web/i18n/de-DE/workflow.ts
index 38686f8c1d..7a7b5e17ee 100644
--- a/web/i18n/de-DE/workflow.ts
+++ b/web/i18n/de-DE/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'In Explore öffnen',
onFailure: 'Bei Ausfall',
addFailureBranch: 'Fail-Branch hinzufügen',
+ loadMore: 'Weitere Workflows laden',
+ noHistory: 'Keine Geschichte',
},
env: {
envPanelTitle: 'Umgebungsvariablen',
diff --git a/web/i18n/en-US/app-debug.ts b/web/i18n/en-US/app-debug.ts
index 266da820a0..9c1b883871 100644
--- a/web/i18n/en-US/app-debug.ts
+++ b/web/i18n/en-US/app-debug.ts
@@ -483,7 +483,7 @@ const translation = {
title: 'Multi-path retrieval',
description: 'Based on user intent, queries across all Knowledge, retrieves relevant text from multi-sources, and selects the best results matching the user query after reranking. ',
},
- rerankModelRequired: 'Rerank model is required',
+ rerankModelRequired: 'A configured Rerank Model is required',
params: 'Params',
top_k: 'Top K',
top_kTip: 'Used to filter chunks that are most similar to user questions. The system will also dynamically adjust the value of Top K, according to max_tokens of the selected model.',
diff --git a/web/i18n/en-US/app.ts b/web/i18n/en-US/app.ts
index 2d3ad99cae..861827d3e3 100644
--- a/web/i18n/en-US/app.ts
+++ b/web/i18n/en-US/app.ts
@@ -169,6 +169,7 @@ const translation = {
removeConfirmContent: 'The current configuration is in use, removing it will turn off the Tracing feature.',
},
},
+ showMyCreatedAppsOnly: 'Created by me',
}
export default translation
diff --git a/web/i18n/en-US/common.ts b/web/i18n/en-US/common.ts
index 0946ba82e1..c116e080b4 100644
--- a/web/i18n/en-US/common.ts
+++ b/web/i18n/en-US/common.ts
@@ -39,6 +39,7 @@ const translation = {
rename: 'Rename',
audioSourceUnavailable: 'AudioSource is unavailable',
copyImage: 'Copy Image',
+ imageCopied: 'Image copied',
zoomOut: 'Zoom Out',
zoomIn: 'Zoom In',
openInNewTab: 'Open in new tab',
diff --git a/web/i18n/en-US/workflow.ts b/web/i18n/en-US/workflow.ts
index 0dfa8883eb..42b7048f85 100644
--- a/web/i18n/en-US/workflow.ts
+++ b/web/i18n/en-US/workflow.ts
@@ -183,7 +183,7 @@ const translation = {
},
errorMsg: {
fieldRequired: '{{field}} is required',
- rerankModelRequired: 'Before turning on the Rerank Model, please confirm that the model has been successfully configured in the settings.',
+ rerankModelRequired: 'A configured Rerank Model is required',
authRequired: 'Authorization is required',
invalidJson: '{{field}} is invalid JSON',
fields: {
@@ -191,7 +191,7 @@ const translation = {
variableValue: 'Variable Value',
code: 'Code',
model: 'Model',
- rerankModel: 'Rerank Model',
+ rerankModel: 'A configured Rerank Model',
visionVariable: 'Vision Variable',
},
invalidVariable: 'Invalid variable',
diff --git a/web/i18n/es-ES/app.ts b/web/i18n/es-ES/app.ts
index a202eb9be7..6d0cdf8fbd 100644
--- a/web/i18n/es-ES/app.ts
+++ b/web/i18n/es-ES/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'POR CATEGORÍAS',
searchAllTemplate: 'Buscar todas las plantillas...',
},
+ showMyCreatedAppsOnly: 'Mostrar solo mis aplicaciones creadas',
}
export default translation
diff --git a/web/i18n/es-ES/common.ts b/web/i18n/es-ES/common.ts
index cf076fa8c0..074f9385c2 100644
--- a/web/i18n/es-ES/common.ts
+++ b/web/i18n/es-ES/common.ts
@@ -47,6 +47,8 @@ const translation = {
close: 'Cerrar',
saveAndRegenerate: 'Guardar y regenerar fragmentos secundarios',
view: 'Vista',
+ submit: 'Enviar',
+ skip: 'Navío',
},
errorMsg: {
fieldRequired: '{{field}} es requerido',
@@ -183,6 +185,18 @@ const translation = {
account: 'Cuenta',
myAccount: 'Mi Cuenta',
studio: 'Estudio Dify',
+ deletePrivacyLinkTip: 'Para obtener más información sobre cómo manejamos sus datos, consulte nuestra',
+ deletePrivacyLink: 'Política de privacidad.',
+ deleteSuccessTip: 'Su cuenta necesita tiempo para terminar de eliminarse. Te enviaremos un correo electrónico cuando todo esté listo.',
+ deleteLabel: 'Para confirmar, escriba su correo electrónico a continuación',
+ deletePlaceholder: 'Por favor, introduzca su correo electrónico',
+ sendVerificationButton: 'Enviar código de verificación',
+ verificationLabel: 'Código de verificación',
+ verificationPlaceholder: 'Pega el código de 6 dígitos',
+ permanentlyDeleteButton: 'Eliminar cuenta de forma permanente',
+ feedbackTitle: 'Retroalimentación',
+ feedbackLabel: '¿Cuéntanos por qué eliminaste tu cuenta?',
+ feedbackPlaceholder: 'Opcional',
},
members: {
team: 'Equipo',
diff --git a/web/i18n/es-ES/workflow.ts b/web/i18n/es-ES/workflow.ts
index d112ad97b6..7e9d656c50 100644
--- a/web/i18n/es-ES/workflow.ts
+++ b/web/i18n/es-ES/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Abrir en Explorar',
onFailure: 'Sobre el fracaso',
addFailureBranch: 'Agregar rama de error',
+ noHistory: 'Sin historia',
+ loadMore: 'Cargar más flujos de trabajo',
},
env: {
envPanelTitle: 'Variables de Entorno',
diff --git a/web/i18n/fa-IR/app.ts b/web/i18n/fa-IR/app.ts
index 8f695394e5..b387799fda 100644
--- a/web/i18n/fa-IR/app.ts
+++ b/web/i18n/fa-IR/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'بر اساس دسته بندی ها',
searchAllTemplate: 'همه قالب ها را جستجو کنید...',
},
+ showMyCreatedAppsOnly: 'فقط برنامههای ایجاد شده توسط من را نشان بده',
}
export default translation
diff --git a/web/i18n/fa-IR/common.ts b/web/i18n/fa-IR/common.ts
index 46bf878c08..aed3152465 100644
--- a/web/i18n/fa-IR/common.ts
+++ b/web/i18n/fa-IR/common.ts
@@ -47,6 +47,8 @@ const translation = {
view: 'مشاهده',
viewMore: 'بیشتر ببینید',
saveAndRegenerate: 'ذخیره و بازسازی تکه های فرزند',
+ submit: 'ارسال',
+ skip: 'کشتی',
},
errorMsg: {
fieldRequired: '{{field}} الزامی است',
@@ -183,6 +185,18 @@ const translation = {
account: 'حساب',
myAccount: 'حساب من',
studio: 'استودیو Dify',
+ feedbackTitle: 'بازخورد',
+ verificationPlaceholder: 'کد 6 رقمی را جایگذاری کنید',
+ deletePlaceholder: 'لطفا ایمیل خود را وارد کنید',
+ permanentlyDeleteButton: 'حذف دائمی حساب',
+ verificationLabel: 'کد تأیید',
+ feedbackPlaceholder: 'اختیاری',
+ sendVerificationButton: 'ارسال کد تأیید',
+ deletePrivacyLink: 'سیاست حفظ حریم خصوصی.',
+ deleteLabel: 'برای تایید، لطفا ایمیل خود را در زیر تایپ کنید',
+ deleteSuccessTip: 'حساب شما برای پایان دادن به حذف به زمان نیاز دارد. وقتی همه چیز تمام شد به شما ایمیل خواهیم زد.',
+ deletePrivacyLinkTip: 'برای کسب اطلاعات بیشتر در مورد نحوه مدیریت داده های شما، لطفا به ما مراجعه کنید',
+ feedbackLabel: 'به ما بگویید چرا حساب خود را حذف کرده اید؟',
},
members: {
team: 'تیم',
diff --git a/web/i18n/fa-IR/workflow.ts b/web/i18n/fa-IR/workflow.ts
index 37cba2f16b..2e27624251 100644
--- a/web/i18n/fa-IR/workflow.ts
+++ b/web/i18n/fa-IR/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'باز کردن در کاوش',
onFailure: 'در مورد شکست',
addFailureBranch: 'افزودن برنچ Fail',
+ noHistory: 'بدون تاریخچه',
+ loadMore: 'بارگذاری گردش کار بیشتر',
},
env: {
envPanelTitle: 'متغیرهای محیطی',
diff --git a/web/i18n/fr-FR/app.ts b/web/i18n/fr-FR/app.ts
index b9ee68bb4b..f55a548ae7 100644
--- a/web/i18n/fr-FR/app.ts
+++ b/web/i18n/fr-FR/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'PAR CATÉGORIES',
searchAllTemplate: 'Rechercher dans tous les modèles...',
},
+ showMyCreatedAppsOnly: 'Afficher uniquement mes applications créées',
}
export default translation
diff --git a/web/i18n/fr-FR/common.ts b/web/i18n/fr-FR/common.ts
index e44dc4e14a..38aeafebab 100644
--- a/web/i18n/fr-FR/common.ts
+++ b/web/i18n/fr-FR/common.ts
@@ -47,6 +47,8 @@ const translation = {
close: 'Fermer',
saveAndRegenerate: 'Enregistrer et régénérer des morceaux enfants',
regenerate: 'Régénérer',
+ submit: 'Envoyer',
+ skip: 'Bateau',
},
placeholder: {
input: 'Veuillez entrer',
@@ -179,6 +181,18 @@ const translation = {
myAccount: 'Mon compte',
account: 'Compte',
studio: 'Dify Studio',
+ deletePrivacyLinkTip: 'Pour plus d’informations sur la façon dont nous traitons vos données, veuillez consulter notre',
+ deletePrivacyLink: 'Politique de confidentialité.',
+ deleteSuccessTip: 'Votre compte a besoin de temps pour terminer la suppression. Nous vous enverrons un e-mail lorsque tout sera terminé.',
+ deleteLabel: 'Pour confirmer, veuillez saisir votre adresse e-mail ci-dessous',
+ deletePlaceholder: 'Veuillez entrer votre adresse e-mail',
+ sendVerificationButton: 'Envoyer le code de vérification',
+ verificationLabel: 'Code de vérification',
+ verificationPlaceholder: 'Collez le code à 6 chiffres',
+ permanentlyDeleteButton: 'Supprimer définitivement le compte',
+ feedbackTitle: 'Rétroaction',
+ feedbackLabel: 'Dites-nous pourquoi vous avez supprimé votre compte ?',
+ feedbackPlaceholder: 'Optionnel',
},
members: {
team: 'Équipe',
diff --git a/web/i18n/fr-FR/workflow.ts b/web/i18n/fr-FR/workflow.ts
index e7d2802cb4..04c2f4935b 100644
--- a/web/i18n/fr-FR/workflow.ts
+++ b/web/i18n/fr-FR/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Ouvrir dans Explorer',
onFailure: 'Sur l’échec',
addFailureBranch: 'Ajouter une branche d’échec',
+ loadMore: 'Charger plus de flux de travail',
+ noHistory: 'Pas d’histoire',
},
env: {
envPanelTitle: 'Variables d\'Environnement',
diff --git a/web/i18n/hi-IN/app.ts b/web/i18n/hi-IN/app.ts
index 3499a8f420..d79d5b9771 100644
--- a/web/i18n/hi-IN/app.ts
+++ b/web/i18n/hi-IN/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'श्रेणियों द्वारा',
searchAllTemplate: 'सभी टेम्पलेट्स खोजें...',
},
+ showMyCreatedAppsOnly: 'केवल मेरे बनाए गए ऐप्स दिखाएं',
}
export default translation
diff --git a/web/i18n/hi-IN/common.ts b/web/i18n/hi-IN/common.ts
index 207c4c16e5..109a295fa1 100644
--- a/web/i18n/hi-IN/common.ts
+++ b/web/i18n/hi-IN/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: 'पुनर्जन्म',
close: 'बंद करना',
saveAndRegenerate: 'सहेजें और पुन: उत्पन्न करें बाल विखंडू',
+ skip: 'जहाज़',
+ submit: 'जमा करें',
},
errorMsg: {
fieldRequired: '{{field}} आवश्यक है',
@@ -189,6 +191,18 @@ const translation = {
account: 'खाता',
studio: 'डिफाई स्टूडियो',
myAccount: 'मेरा खाता',
+ deletePrivacyLink: 'गोपनीयता नीति।',
+ deletePlaceholder: 'कृपया अपना ईमेल दर्ज करें',
+ verificationLabel: 'सत्यापन कोड',
+ sendVerificationButton: 'पुष्टि कोड भेजें',
+ deleteLabel: 'पुष्टि करने के लिए, कृपया नीचे अपना ईमेल टाइप करें',
+ feedbackLabel: 'हमें बताएँ कि आपने अपना खाता क्यों हटाया?',
+ feedbackPlaceholder: 'वैकल्पिक',
+ feedbackTitle: 'प्रतिपुष्टि',
+ deletePrivacyLinkTip: 'हम आपके डेटा को कैसे संभालते हैं, इस बारे में अधिक जानकारी के लिए, कृपया हमारा डेटा देखें',
+ permanentlyDeleteButton: 'खाता स्थायी रूप से हटाएं',
+ verificationPlaceholder: '6-अंकीय कोड पेस्ट करें',
+ deleteSuccessTip: 'आपके खाते को हटाने का काम पूरा करने के लिए समय चाहिए. जब यह सब हो जाएगा तो हम आपको ईमेल करेंगे।',
},
members: {
team: 'टीम',
diff --git a/web/i18n/hi-IN/workflow.ts b/web/i18n/hi-IN/workflow.ts
index 619abee128..682d1de220 100644
--- a/web/i18n/hi-IN/workflow.ts
+++ b/web/i18n/hi-IN/workflow.ts
@@ -107,6 +107,8 @@ const translation = {
openInExplore: 'एक्सप्लोर में खोलें',
onFailure: 'असफलता पर',
addFailureBranch: 'असफल शाखा जोड़ें',
+ noHistory: 'कोई इतिहास नहीं',
+ loadMore: 'अधिक वर्कफ़्लोज़ लोड करें',
},
env: {
envPanelTitle: 'पर्यावरण चर',
diff --git a/web/i18n/it-IT/app.ts b/web/i18n/it-IT/app.ts
index 5ad976598a..ec01516018 100644
--- a/web/i18n/it-IT/app.ts
+++ b/web/i18n/it-IT/app.ts
@@ -195,6 +195,7 @@ const translation = {
byCategories: 'PER CATEGORIE',
searchAllTemplate: 'Cerca in tutti i modelli...',
},
+ showMyCreatedAppsOnly: 'Mostra solo le mie app create',
}
export default translation
diff --git a/web/i18n/it-IT/common.ts b/web/i18n/it-IT/common.ts
index 42ea6d6fa9..9f5ec24dc3 100644
--- a/web/i18n/it-IT/common.ts
+++ b/web/i18n/it-IT/common.ts
@@ -47,6 +47,8 @@ const translation = {
saveAndRegenerate: 'Salva e rigenera i blocchi figlio',
regenerate: 'Rigenerare',
viewMore: 'SCOPRI DI PIÙ',
+ submit: 'Invia',
+ skip: 'Nave',
},
errorMsg: {
fieldRequired: '{{field}} è obbligatorio',
@@ -191,6 +193,18 @@ const translation = {
myAccount: 'Il mio account',
account: 'Conto',
studio: 'Dify Studio',
+ deletePrivacyLinkTip: 'Per ulteriori informazioni su come gestiamo i tuoi dati, consulta il nostro',
+ deletePrivacyLink: 'Informativa sulla privacy.',
+ deleteSuccessTip: 'Il tuo account ha bisogno di tempo per completare l\'eliminazione. Ti invieremo un\'e-mail quando tutto sarà finito.',
+ deleteLabel: 'Per confermare, digita la tua email qui sotto',
+ deletePlaceholder: 'Inserisci la tua email',
+ sendVerificationButton: 'Invia codice di verifica',
+ verificationLabel: 'Codice di verifica',
+ verificationPlaceholder: 'Incolla il codice a 6 cifre',
+ permanentlyDeleteButton: 'Elimina definitivamente l\'account',
+ feedbackTitle: 'Valutazione',
+ feedbackLabel: 'Dicci perché hai cancellato il tuo account?',
+ feedbackPlaceholder: 'Opzionale',
},
members: {
team: 'Team',
diff --git a/web/i18n/it-IT/workflow.ts b/web/i18n/it-IT/workflow.ts
index f4390580d5..128c903d48 100644
--- a/web/i18n/it-IT/workflow.ts
+++ b/web/i18n/it-IT/workflow.ts
@@ -108,6 +108,8 @@ const translation = {
openInExplore: 'Apri in Esplora',
onFailure: 'In caso di guasto',
addFailureBranch: 'Aggiungi ramo non riuscito',
+ noHistory: 'Nessuna storia',
+ loadMore: 'Carica più flussi di lavoro',
},
env: {
envPanelTitle: 'Variabili d\'Ambiente',
diff --git a/web/i18n/ja-JP/app.ts b/web/i18n/ja-JP/app.ts
index 10fc2f18a4..27d6bf6787 100644
--- a/web/i18n/ja-JP/app.ts
+++ b/web/i18n/ja-JP/app.ts
@@ -184,6 +184,7 @@ const translation = {
byCategories: 'カテゴリ別',
searchAllTemplate: 'すべてのテンプレートを検索...',
},
+ showMyCreatedAppsOnly: '自分が作成したアプリ',
}
export default translation
diff --git a/web/i18n/ja-JP/common.ts b/web/i18n/ja-JP/common.ts
index e815647246..8944bda2fb 100644
--- a/web/i18n/ja-JP/common.ts
+++ b/web/i18n/ja-JP/common.ts
@@ -47,6 +47,8 @@ const translation = {
view: '表示',
viewMore: 'さらに表示',
regenerate: '再生成',
+ submit: '送信',
+ skip: 'スキップ',
},
errorMsg: {
fieldRequired: '{{field}}は必要です',
@@ -183,6 +185,18 @@ const translation = {
account: 'アカウント',
myAccount: 'マイアカウント',
studio: 'Difyスタジオ',
+ deletePrivacyLinkTip: 'お客様のデータの取り扱い方法の詳細については、当社の',
+ deletePrivacyLink: 'プライバシーポリシー。',
+ deleteSuccessTip: 'アカウントの削除が完了するまでに時間が必要です。すべて完了しましたら、メールでお知らせします。',
+ deleteLabel: '確認するには、以下にメールアドレスを入力してください',
+ deletePlaceholder: 'メールアドレスを入力してください',
+ verificationLabel: '認証コード',
+ verificationPlaceholder: '6桁のコードを貼り付けます',
+ permanentlyDeleteButton: 'アカウントを完全に削除',
+ feedbackTitle: 'フィードバック',
+ feedbackLabel: 'アカウントを削除した理由を教えてください。',
+ feedbackPlaceholder: '随意',
+ sendVerificationButton: '確認コードの送信',
},
members: {
team: 'チーム',
diff --git a/web/i18n/ja-JP/dataset-creation.ts b/web/i18n/ja-JP/dataset-creation.ts
index b12e7e531b..e0171ea289 100644
--- a/web/i18n/ja-JP/dataset-creation.ts
+++ b/web/i18n/ja-JP/dataset-creation.ts
@@ -100,17 +100,17 @@ const translation = {
autoDescription: 'チャンクと前処理ルールを自動的に設定します。初めてのユーザーはこれを選択することをおすすめします。',
custom: 'カスタム',
customDescription: 'チャンクのルール、チャンクの長さ、前処理ルールなどをカスタマイズします。',
- general: '一般',
- generalTip: '標準的なテキスト分割モードです。検索とコンテキスト抽出に同じチャンクを使用します。',
+ general: '汎用',
+ generalTip: '汎用テキスト分割モードです。検索とコンテキスト抽出に同じチャンクを使用します。',
parentChild: '親子',
- parentChildTip: '親子モードでは、子チャンクを検索に、親チャンクをコンテキスト抽出に使用します。',
+ parentChildTip: '親子分割モード(階層分割モード)では、子チャンクを検索に、親チャンクをコンテキスト抽出に使用します。',
parentChunkForContext: 'コンテキスト用親チャンク',
childChunkForRetrieval: '検索用子チャンク',
paragraph: '段落',
paragraphTip: '区切り文字と最大チャンク長に基づいてテキストを段落に分割し、分割されたテキストを検索用の親チャンクとして使用します。',
fullDoc: '全文',
fullDocTip: 'ドキュメント全体を親チャンクとして使用し、直接検索します。パフォーマンス上の理由から、10000トークンを超えるテキストは自動的に切り捨てられます。',
- separator: 'セグメント識別子',
+ separator: 'チャンク識別子',
separatorPlaceholder: '例えば改行(\\\\n)や特殊なセパレータ(例:「***」)',
maxLength: '最大チャンク長',
overlap: 'チャンクのオーバーラップ',
diff --git a/web/i18n/ja-JP/workflow.ts b/web/i18n/ja-JP/workflow.ts
index cd3e416f8d..8b2dd68a89 100644
--- a/web/i18n/ja-JP/workflow.ts
+++ b/web/i18n/ja-JP/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
importWarningDetails: 'DSL のバージョンの違いが特定の機能に影響を与える場合があります',
onFailure: '失敗時',
addFailureBranch: '失敗ブランチを追加',
+ noHistory: '履歴なし',
+ loadMore: 'より多くのワークフローをロードする',
},
env: {
envPanelTitle: '環境変数',
diff --git a/web/i18n/ko-KR/app.ts b/web/i18n/ko-KR/app.ts
index d10f65f704..365fecc5ee 100644
--- a/web/i18n/ko-KR/app.ts
+++ b/web/i18n/ko-KR/app.ts
@@ -179,6 +179,7 @@ const translation = {
byCategories: '카테고리별',
searchAllTemplate: '모든 템플릿 검색...',
},
+ showMyCreatedAppsOnly: '내가 만든 앱만 보기',
}
export default translation
diff --git a/web/i18n/ko-KR/common.ts b/web/i18n/ko-KR/common.ts
index 3cf173775e..207ffa44cc 100644
--- a/web/i18n/ko-KR/common.ts
+++ b/web/i18n/ko-KR/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: '재생성',
view: '보기',
saveAndRegenerate: '저장 및 자식 청크 재생성',
+ submit: '전송',
+ skip: '배',
},
placeholder: {
input: '입력해주세요',
@@ -175,6 +177,18 @@ const translation = {
myAccount: '내 계정',
studio: '디파이 스튜디오',
account: '계정',
+ deletePrivacyLink: '개인 정보 보호 정책.',
+ deleteSuccessTip: '계정 삭제를 완료하는 데 시간이 필요합니다. 모든 작업이 완료되면 이메일로 연락드리겠습니다.',
+ deleteLabel: '확인하려면 아래 이메일을 입력하십시오.',
+ deletePlaceholder: '이메일을 입력해 주세요',
+ sendVerificationButton: '인증 코드 보내기',
+ verificationLabel: '인증 코드',
+ verificationPlaceholder: '6자리 코드를 붙여넣습니다.',
+ permanentlyDeleteButton: '계정 영구 삭제',
+ feedbackTitle: '피드백',
+ feedbackLabel: '계정을 삭제한 이유를 알려주시겠습니까?',
+ feedbackPlaceholder: '선택적',
+ deletePrivacyLinkTip: '당사가 귀하의 데이터를 처리하는 방법에 대한 자세한 내용은 다음을 참조하십시오.',
},
members: {
team: '팀',
diff --git a/web/i18n/ko-KR/workflow.ts b/web/i18n/ko-KR/workflow.ts
index 4a4d2f9193..12c224506e 100644
--- a/web/i18n/ko-KR/workflow.ts
+++ b/web/i18n/ko-KR/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Explore에서 열기',
onFailure: '실패 시',
addFailureBranch: '실패 분기 추가',
+ noHistory: '이력 없음',
+ loadMore: '더 많은 워크플로우 로드',
},
env: {
envPanelTitle: '환경 변수',
diff --git a/web/i18n/pl-PL/app.ts b/web/i18n/pl-PL/app.ts
index b36e488ec7..c2d921bfd9 100644
--- a/web/i18n/pl-PL/app.ts
+++ b/web/i18n/pl-PL/app.ts
@@ -190,6 +190,7 @@ const translation = {
searchAllTemplate: 'Przeszukaj wszystkie szablony...',
byCategories: 'WEDŁUG KATEGORII',
},
+ showMyCreatedAppsOnly: 'Pokaż tylko moje utworzone aplikacje',
}
export default translation
diff --git a/web/i18n/pl-PL/common.ts b/web/i18n/pl-PL/common.ts
index f2ee93298d..87e3dfe48e 100644
--- a/web/i18n/pl-PL/common.ts
+++ b/web/i18n/pl-PL/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: 'Ponownie wygenerować',
viewMore: 'ZOBACZ WIĘCEJ',
close: 'Zamykać',
+ submit: 'Prześlij',
+ skip: 'Statek',
},
placeholder: {
input: 'Proszę wprowadzić',
@@ -185,6 +187,18 @@ const translation = {
myAccount: 'Moje konto',
studio: 'Dify Studio',
account: 'Rachunek',
+ deletePrivacyLinkTip: 'Aby uzyskać więcej informacji o tym, jak postępujemy z Twoimi danymi, zapoznaj się z naszą',
+ deletePrivacyLink: 'Polityka prywatności.',
+ deleteSuccessTip: 'Twoje konto potrzebuje czasu na dokończenie usuwania. Wyślemy Ci wiadomość e-mail, gdy wszystko będzie gotowe.',
+ deleteLabel: 'Aby potwierdzić, wpisz poniżej swój adres e-mail',
+ deletePlaceholder: 'Podaj swój adres e-mail',
+ sendVerificationButton: 'Wyślij kod weryfikacyjny',
+ verificationLabel: 'Kod weryfikacyjny',
+ verificationPlaceholder: 'Wklej 6-cyfrowy kod',
+ permanentlyDeleteButton: 'Trwale usuń konto',
+ feedbackTitle: 'Sprzężenie zwrotne',
+ feedbackLabel: 'Powiedz nam, dlaczego usunąłeś swoje konto?',
+ feedbackPlaceholder: 'Fakultatywny',
},
members: {
team: 'Zespół',
diff --git a/web/i18n/pl-PL/workflow.ts b/web/i18n/pl-PL/workflow.ts
index 13784df603..95f6d73081 100644
--- a/web/i18n/pl-PL/workflow.ts
+++ b/web/i18n/pl-PL/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Otwieranie w obszarze Eksploruj',
onFailure: 'W przypadku niepowodzenia',
addFailureBranch: 'Dodawanie gałęzi niepowodzenia',
+ loadMore: 'Załaduj więcej przepływów pracy',
+ noHistory: 'Brak historii',
},
env: {
envPanelTitle: 'Zmienne Środowiskowe',
diff --git a/web/i18n/pt-BR/app.ts b/web/i18n/pt-BR/app.ts
index 99e6465444..bf0ad15ea8 100644
--- a/web/i18n/pt-BR/app.ts
+++ b/web/i18n/pt-BR/app.ts
@@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Pesquisar todos os modelos...',
byCategories: 'POR CATEGORIAS',
},
+ showMyCreatedAppsOnly: 'Mostrar apenas meus aplicativos criados',
}
export default translation
diff --git a/web/i18n/pt-BR/common.ts b/web/i18n/pt-BR/common.ts
index c85669b8a4..ec1203a648 100644
--- a/web/i18n/pt-BR/common.ts
+++ b/web/i18n/pt-BR/common.ts
@@ -47,6 +47,8 @@ const translation = {
close: 'Fechar',
saveAndRegenerate: 'Salvar e regenerar pedaços filhos',
view: 'Vista',
+ submit: 'Enviar',
+ skip: 'Navio',
},
placeholder: {
input: 'Por favor, insira',
@@ -179,6 +181,18 @@ const translation = {
myAccount: 'Minha Conta',
account: 'Conta',
studio: 'Estúdio Dify',
+ deletePrivacyLinkTip: 'Para obter mais informações sobre como lidamos com seus dados, consulte nosso',
+ deletePrivacyLink: 'Política de privacidade.',
+ deleteSuccessTip: 'Sua conta precisa de tempo para concluir a exclusão. Enviaremos um e-mail quando tudo estiver pronto.',
+ deleteLabel: 'Para confirmar, digite seu e-mail abaixo',
+ deletePlaceholder: 'Por favor, digite seu e-mail',
+ sendVerificationButton: 'Enviar código de verificação',
+ verificationLabel: 'Código de verificação',
+ verificationPlaceholder: 'Cole o código de 6 dígitos',
+ permanentlyDeleteButton: 'Excluir conta permanentemente',
+ feedbackTitle: 'Realimentação',
+ feedbackLabel: 'Diga-nos por que você excluiu sua conta?',
+ feedbackPlaceholder: 'Opcional',
},
members: {
team: 'Equipe',
diff --git a/web/i18n/pt-BR/workflow.ts b/web/i18n/pt-BR/workflow.ts
index b99c64cdf4..7057f6dfa6 100644
--- a/web/i18n/pt-BR/workflow.ts
+++ b/web/i18n/pt-BR/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Abrir no Explore',
onFailure: 'Em caso de falha',
addFailureBranch: 'Adicionar ramificação com falha',
+ noHistory: 'Sem História',
+ loadMore: 'Carregar mais fluxos de trabalho',
},
env: {
envPanelTitle: 'Variáveis de Ambiente',
diff --git a/web/i18n/ro-RO/app.ts b/web/i18n/ro-RO/app.ts
index a84e2e371e..cab1556520 100644
--- a/web/i18n/ro-RO/app.ts
+++ b/web/i18n/ro-RO/app.ts
@@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Căutați toate șabloanele...',
byCategories: 'DUPĂ CATEGORII',
},
+ showMyCreatedAppsOnly: 'Afișează doar aplicațiile create de mine',
}
export default translation
diff --git a/web/i18n/ro-RO/common.ts b/web/i18n/ro-RO/common.ts
index 46db92a127..39ecc896c6 100644
--- a/web/i18n/ro-RO/common.ts
+++ b/web/i18n/ro-RO/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: 'Regenera',
saveAndRegenerate: 'Salvați și regenerați bucățile secundare',
view: 'Vedere',
+ submit: 'Prezinte',
+ skip: 'Navă',
},
placeholder: {
input: 'Vă rugăm să introduceți',
@@ -179,6 +181,18 @@ const translation = {
account: 'Cont',
studio: 'Dify Studio',
myAccount: 'Contul meu',
+ deletePrivacyLinkTip: 'Pentru mai multe informații despre modul în care gestionăm datele dvs., vă rugăm să consultați',
+ deletePrivacyLink: 'Politica de confidențialitate.',
+ deleteSuccessTip: 'Contul tău are nevoie de timp pentru a termina ștergerea. Vă vom trimite un e-mail când totul este gata.',
+ deleteLabel: 'Pentru a confirma, vă rugăm să introduceți adresa de e-mail mai jos',
+ deletePlaceholder: 'Vă rugăm să introduceți adresa de e-mail',
+ sendVerificationButton: 'Trimiteți codul de verificare',
+ verificationPlaceholder: 'Lipiți codul din 6 cifre',
+ permanentlyDeleteButton: 'Ștergeți definitiv contul',
+ feedbackLabel: 'Spuneți-ne de ce v-ați șters contul?',
+ feedbackPlaceholder: 'Facultativ',
+ feedbackTitle: 'Feedback',
+ verificationLabel: 'Cod de verificare',
},
members: {
team: 'Echipă',
diff --git a/web/i18n/ro-RO/workflow.ts b/web/i18n/ro-RO/workflow.ts
index b142640c9b..6d0edd6252 100644
--- a/web/i18n/ro-RO/workflow.ts
+++ b/web/i18n/ro-RO/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Deschide în Explorează',
onFailure: 'În caz de eșec',
addFailureBranch: 'Adăugare ramură Fail',
+ noHistory: 'Fără istorie',
+ loadMore: 'Încărcați mai multe fluxuri de lucru',
},
env: {
envPanelTitle: 'Variabile de Mediu',
diff --git a/web/i18n/ru-RU/app.ts b/web/i18n/ru-RU/app.ts
index 132ea3d141..59d79020d7 100644
--- a/web/i18n/ru-RU/app.ts
+++ b/web/i18n/ru-RU/app.ts
@@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Поиск по всем шаблонам...',
byCategories: 'ПО КАТЕГОРИЯМ',
},
+ showMyCreatedAppsOnly: 'Показать только созданные мной приложения',
}
export default translation
diff --git a/web/i18n/ru-RU/common.ts b/web/i18n/ru-RU/common.ts
index ba349fcf22..4c606a1f65 100644
--- a/web/i18n/ru-RU/common.ts
+++ b/web/i18n/ru-RU/common.ts
@@ -47,6 +47,8 @@ const translation = {
view: 'Вид',
viewMore: 'ПОДРОБНЕЕ',
saveAndRegenerate: 'Сохранение и повторное создание дочерних блоков',
+ submit: 'Отправить',
+ skip: 'Корабль',
},
errorMsg: {
fieldRequired: '{{field}} обязательно',
@@ -183,6 +185,18 @@ const translation = {
account: 'Счет',
studio: 'Студия Dify',
myAccount: 'Моя учетная запись',
+ deletePrivacyLink: 'Политика конфиденциальности.',
+ deletePlaceholder: 'Пожалуйста, введите свой адрес электронной почты',
+ sendVerificationButton: 'Отправить код подтверждения',
+ verificationLabel: 'Проверочный код',
+ verificationPlaceholder: 'Вставьте 6-значный код',
+ feedbackTitle: 'Обратная связь',
+ feedbackLabel: 'Расскажите нам, почему вы удалили свой аккаунт?',
+ feedbackPlaceholder: 'Необязательный',
+ permanentlyDeleteButton: 'Окончательно удалить учетную запись',
+ deleteLabel: 'Для подтверждения, пожалуйста, введите свой адрес электронной почты ниже',
+ deleteSuccessTip: 'Вашему аккаунту требуется время, чтобы завершить удаление. Мы свяжемся с вами по электронной почте, когда все будет готово.',
+ deletePrivacyLinkTip: 'Для получения дополнительной информации о том, как мы обрабатываем ваши данные, ознакомьтесь с нашим',
},
members: {
team: 'Команда',
diff --git a/web/i18n/ru-RU/workflow.ts b/web/i18n/ru-RU/workflow.ts
index 49c43b4d6d..0b819a23ef 100644
--- a/web/i18n/ru-RU/workflow.ts
+++ b/web/i18n/ru-RU/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Открыть в разделе «Обзор»',
onFailure: 'О неудаче',
addFailureBranch: 'Добавить ветвь Fail',
+ noHistory: 'Без истории',
+ loadMore: 'Загрузите больше рабочих процессов',
},
env: {
envPanelTitle: 'Переменные среды',
diff --git a/web/i18n/sl-SI/app.ts b/web/i18n/sl-SI/app.ts
index b5703af10a..65421aa0f6 100644
--- a/web/i18n/sl-SI/app.ts
+++ b/web/i18n/sl-SI/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'PO KATEGORIJAH',
searchAllTemplate: 'Preišči vse predloge ...',
},
+ showMyCreatedAppsOnly: 'Prikaži samo aplikacije, ki sem jih ustvaril',
}
export default translation
diff --git a/web/i18n/sl-SI/common.ts b/web/i18n/sl-SI/common.ts
index a0e916d29a..cde5bf034e 100644
--- a/web/i18n/sl-SI/common.ts
+++ b/web/i18n/sl-SI/common.ts
@@ -47,6 +47,8 @@ const translation = {
view: 'Pogled',
regenerate: 'Regeneracijo',
viewMore: 'POGLEJ VEČ',
+ submit: 'Predložiti',
+ skip: 'Ladja',
},
errorMsg: {
fieldRequired: '{{field}} je obvezno',
@@ -183,6 +185,18 @@ const translation = {
delete: 'Izbriši račun',
deleteTip: 'Brisanje vašega računa bo trajno izbrisalo vse vaše podatke in jih ne bo mogoče obnoviti.',
deleteConfirmTip: 'Za potrditev pošljite naslednje s svojega registriranega e-poštnega naslova na ',
+ permanentlyDeleteButton: 'Trajno izbriši račun',
+ deletePrivacyLinkTip: 'Za več informacij o tem, kako ravnamo z vašimi podatki, si oglejte naše',
+ feedbackPlaceholder: 'Neobvezno',
+ sendVerificationButton: 'Pošlji kodo za preverjanje',
+ feedbackLabel: 'Povejte nam, zakaj ste izbrisali račun?',
+ verificationLabel: 'Koda za preverjanje',
+ verificationPlaceholder: 'Prilepite 6-mestno kodo',
+ deletePrivacyLink: 'Pravilnik o zasebnosti.',
+ deletePlaceholder: 'Prosimo, vnesite svoj e-poštni naslov',
+ deleteSuccessTip: 'Vaš račun potrebuje čas, da dokonča brisanje. Ko bo vse končano, vam bomo poslali e-pošto.',
+ feedbackTitle: 'Povratne informacije',
+ deleteLabel: 'Za potrditev spodaj vnesite svoj e-poštni naslov',
},
members: {
team: 'Ekipa',
diff --git a/web/i18n/sl-SI/workflow.ts b/web/i18n/sl-SI/workflow.ts
index 7c40c25e92..04c9a5743e 100644
--- a/web/i18n/sl-SI/workflow.ts
+++ b/web/i18n/sl-SI/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Odpri v razišči',
addFailureBranch: 'Dodajanje veje »Fail«',
onFailure: 'O neuspehu',
+ noHistory: 'Brez zgodovine',
+ loadMore: 'Nalaganje več potekov dela',
},
env: {
envPanelTitle: 'Spremenljivke okolja',
diff --git a/web/i18n/th-TH/app.ts b/web/i18n/th-TH/app.ts
index f00e237329..a05bec8aa6 100644
--- a/web/i18n/th-TH/app.ts
+++ b/web/i18n/th-TH/app.ts
@@ -179,6 +179,7 @@ const translation = {
searchAllTemplate: 'ค้นหาเทมเพลตทั้งหมด...',
byCategories: 'ตามหมวดหมู่',
},
+ showMyCreatedAppsOnly: 'แสดงเฉพาะแอปที่ฉันสร้าง',
}
export default translation
diff --git a/web/i18n/th-TH/common.ts b/web/i18n/th-TH/common.ts
index edb3698170..ea8d5e5b1d 100644
--- a/web/i18n/th-TH/common.ts
+++ b/web/i18n/th-TH/common.ts
@@ -47,6 +47,8 @@ const translation = {
viewMore: 'ดูเพิ่มเติม',
saveAndRegenerate: 'บันทึกและสร้างก้อนย่อยใหม่',
close: 'ปิด',
+ skip: 'เรือ',
+ submit: 'ส่ง',
},
errorMsg: {
fieldRequired: '{{field}} เป็นสิ่งจําเป็น',
@@ -178,6 +180,18 @@ const translation = {
delete: 'ลบบัญชี',
deleteTip: 'การลบบัญชีของคุณจะเป็นการลบข้อมูลทั้งหมดของคุณอย่างถาวรและไม่สามารถกู้คืนได้',
deleteConfirmTip: 'เพื่อยืนยัน โปรดส่งข้อมูลต่อไปนี้จากอีเมลที่ลงทะเบียนไว้ที่',
+ deletePrivacyLinkTip: 'สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เราจัดการกับข้อมูลของคุณ โปรดดูที่',
+ deletePrivacyLink: 'นโยบายความเป็นส่วนตัว',
+ deleteLabel: 'เพื่อยืนยัน โปรดพิมพ์อีเมลของคุณด้านล่าง',
+ deletePlaceholder: 'กรุณากรอกอีเมลของคุณ',
+ sendVerificationButton: 'ส่งรหัสยืนยัน',
+ verificationLabel: 'รหัสยืนยัน',
+ verificationPlaceholder: 'วางรหัส 6 หลัก',
+ permanentlyDeleteButton: 'ลบบัญชีอย่างถาวร',
+ feedbackTitle: 'การตอบสนอง',
+ feedbackLabel: 'บอกเราว่าทําไมคุณถึงลบบัญชีของคุณ',
+ feedbackPlaceholder: 'เสริม',
+ deleteSuccessTip: 'บัญชีของคุณต้องใช้เวลาในการลบให้เสร็จสิ้น เราจะส่งอีเมลถึงคุณเมื่อทุกอย่างเสร็จสิ้น',
},
members: {
team: 'ทีม',
diff --git a/web/i18n/th-TH/workflow.ts b/web/i18n/th-TH/workflow.ts
index b8d2e72de0..afe0a76a21 100644
--- a/web/i18n/th-TH/workflow.ts
+++ b/web/i18n/th-TH/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'เปิดใน Explore',
onFailure: 'เมื่อล้มเหลว',
addFailureBranch: 'เพิ่มสาขา Fail',
+ loadMore: 'โหลดเวิร์กโฟลว์เพิ่มเติม',
+ noHistory: 'ไม่มีประวัติ',
},
env: {
envPanelTitle: 'ตัวแปรสภาพแวดล้อม',
diff --git a/web/i18n/tr-TR/app.ts b/web/i18n/tr-TR/app.ts
index 29c2aeaf45..3c4c379740 100644
--- a/web/i18n/tr-TR/app.ts
+++ b/web/i18n/tr-TR/app.ts
@@ -179,6 +179,7 @@ const translation = {
searchAllTemplate: 'Tüm şablonlarda ara...',
byCategories: 'KATEGORILERE GÖRE',
},
+ showMyCreatedAppsOnly: 'Sadece oluşturduğum uygulamaları göster',
}
export default translation
diff --git a/web/i18n/tr-TR/common.ts b/web/i18n/tr-TR/common.ts
index 387208c850..a427537a7b 100644
--- a/web/i18n/tr-TR/common.ts
+++ b/web/i18n/tr-TR/common.ts
@@ -47,6 +47,8 @@ const translation = {
regenerate: 'Yenilemek',
saveAndRegenerate: 'Alt Parçaları Kaydetme ve Yeniden Oluşturma',
close: 'Kapatmak',
+ submit: 'Gönder',
+ skip: 'Gemi',
},
errorMsg: {
fieldRequired: '{{field}} gereklidir',
@@ -183,6 +185,18 @@ const translation = {
account: 'Hesap',
myAccount: 'Hesabım',
studio: 'Dify Stüdyo',
+ deleteSuccessTip: 'Hesabınızın silme işleminin tamamlanması için zamana ihtiyacı var. Her şey bittiğinde size e-posta göndereceğiz.',
+ deletePrivacyLink: 'Gizlilik Politikası.',
+ feedbackTitle: 'Geri besleme',
+ verificationPlaceholder: '6 haneli kodu yapıştırın',
+ feedbackLabel: 'Hesabınızı neden sildiğinizi bize bildirin?',
+ deleteLabel: 'Onaylamak için lütfen aşağıya e-postanızı yazın',
+ deletePlaceholder: 'Lütfen e-posta adresinizi giriniz',
+ verificationLabel: 'Doğrulama Kodu',
+ feedbackPlaceholder: 'Opsiyonel',
+ permanentlyDeleteButton: 'Hesabı Kalıcı Olarak Sil',
+ deletePrivacyLinkTip: 'Verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi için lütfen',
+ sendVerificationButton: 'Doğrulama Kodu Gönder',
},
members: {
team: 'Takım',
diff --git a/web/i18n/tr-TR/workflow.ts b/web/i18n/tr-TR/workflow.ts
index edec6a0b49..9829f0911b 100644
--- a/web/i18n/tr-TR/workflow.ts
+++ b/web/i18n/tr-TR/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Keşfet\'te Aç',
onFailure: 'Başarısızlık Üzerine',
addFailureBranch: 'Başarısız dal ekle',
+ loadMore: 'Daha Fazla İş Akışı Yükleyin',
+ noHistory: 'Tarih Yok',
},
env: {
envPanelTitle: 'Çevre Değişkenleri',
diff --git a/web/i18n/uk-UA/app.ts b/web/i18n/uk-UA/app.ts
index 00d6317f6a..6600622a63 100644
--- a/web/i18n/uk-UA/app.ts
+++ b/web/i18n/uk-UA/app.ts
@@ -183,6 +183,7 @@ const translation = {
byCategories: 'ЗА КАТЕГОРІЯМИ',
searchAllTemplate: 'Пошук по всіх шаблонах...',
},
+ showMyCreatedAppsOnly: 'Показати лише створені мною додатки',
}
export default translation
diff --git a/web/i18n/uk-UA/common.ts b/web/i18n/uk-UA/common.ts
index 08c6250d31..38929f13d5 100644
--- a/web/i18n/uk-UA/common.ts
+++ b/web/i18n/uk-UA/common.ts
@@ -47,6 +47,8 @@ const translation = {
view: 'Вид',
viewMore: 'ДИВИТИСЬ БІЛЬШЕ',
saveAndRegenerate: 'Збереження та регенерація дочірніх фрагментів',
+ submit: 'Представити',
+ skip: 'Корабель',
},
placeholder: {
input: 'Будь ласка, введіть текст',
@@ -179,6 +181,18 @@ const translation = {
account: 'Рахунок',
studio: 'Студія Dify',
myAccount: 'Особистий кабінет',
+ deletePrivacyLink: 'Політика конфіденційності.',
+ sendVerificationButton: 'Надішліть код підтвердження',
+ verificationLabel: 'Код підтвердження',
+ verificationPlaceholder: 'Вставте 6-значний код',
+ permanentlyDeleteButton: 'Назавжди видалити обліковий запис',
+ feedbackTitle: 'Зворотний зв\'язок',
+ feedbackLabel: 'Розкажіть, чому ви видалили свій обліковий запис?',
+ feedbackPlaceholder: 'Необов\'язково',
+ deletePrivacyLinkTip: 'Для отримання додаткової інформації про те, як ми обробляємо ваші дані, будь ласка, перегляньте наш',
+ deleteSuccessTip: 'Вашому обліковому запису потрібен час, щоб завершити видалення. Ми надішлемо вам електронного листа, коли все буде готово.',
+ deleteLabel: 'Для підтвердження, будь ласка, введіть свою електронну пошту нижче',
+ deletePlaceholder: 'Будь ласка, введіть свою електронну пошту',
},
members: {
team: 'Команда',
diff --git a/web/i18n/uk-UA/workflow.ts b/web/i18n/uk-UA/workflow.ts
index 29fd9d8188..42843d16d9 100644
--- a/web/i18n/uk-UA/workflow.ts
+++ b/web/i18n/uk-UA/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Відкрити в Огляді',
onFailure: 'Про невдачу',
addFailureBranch: 'Додано гілку помилки',
+ noHistory: 'Без історії',
+ loadMore: 'Завантажте більше робочих процесів',
},
env: {
envPanelTitle: 'Змінні середовища',
diff --git a/web/i18n/vi-VN/app.ts b/web/i18n/vi-VN/app.ts
index c3e7ecf9ae..e0ffaa84d5 100644
--- a/web/i18n/vi-VN/app.ts
+++ b/web/i18n/vi-VN/app.ts
@@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Tìm kiếm tất cả các mẫu...',
byCategories: 'THEO DANH MỤC',
},
+ showMyCreatedAppsOnly: 'Chỉ hiển thị ứng dụng do tôi tạo',
}
export default translation
diff --git a/web/i18n/vi-VN/common.ts b/web/i18n/vi-VN/common.ts
index bc94d46c65..7115a86eae 100644
--- a/web/i18n/vi-VN/common.ts
+++ b/web/i18n/vi-VN/common.ts
@@ -47,6 +47,8 @@ const translation = {
saveAndRegenerate: 'Lưu và tạo lại các phần con',
view: 'Cảnh',
viewMore: 'XEM THÊM',
+ submit: 'Trình',
+ skip: 'Tàu',
},
placeholder: {
input: 'Vui lòng nhập',
@@ -179,6 +181,18 @@ const translation = {
studio: 'Dify Studio',
myAccount: 'Tài khoản của tôi',
account: 'Tài khoản',
+ deletePrivacyLinkTip: 'Để biết thêm thông tin về cách chúng tôi xử lý dữ liệu của bạn, vui lòng xem',
+ deletePrivacyLink: 'Chính sách bảo mật.',
+ deleteSuccessTip: 'Tài khoản của bạn cần thời gian để xóa xong. Chúng tôi sẽ gửi email cho bạn khi tất cả hoàn tất.',
+ deleteLabel: 'Để xác nhận, vui lòng nhập email của bạn bên dưới',
+ deletePlaceholder: 'Vui lòng nhập email của bạn',
+ sendVerificationButton: 'Gửi mã xác minh',
+ verificationLabel: 'Mã xác minh',
+ verificationPlaceholder: 'Dán mã gồm 6 chữ số',
+ permanentlyDeleteButton: 'Xóa vĩnh viễn tài khoản',
+ feedbackTitle: 'Phản hồi',
+ feedbackLabel: 'Hãy cho chúng tôi biết lý do tại sao bạn xóa tài khoản của mình?',
+ feedbackPlaceholder: 'Tùy chọn',
},
members: {
team: 'Nhóm',
diff --git a/web/i18n/vi-VN/workflow.ts b/web/i18n/vi-VN/workflow.ts
index 9e16cb5347..ed2d7380fb 100644
--- a/web/i18n/vi-VN/workflow.ts
+++ b/web/i18n/vi-VN/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: 'Mở trong Khám phá',
onFailure: 'Khi thất bại',
addFailureBranch: 'Thêm nhánh Fail',
+ loadMore: 'Tải thêm quy trình làm việc',
+ noHistory: 'Không có lịch sử',
},
env: {
envPanelTitle: 'Biến Môi Trường',
diff --git a/web/i18n/zh-Hans/app-debug.ts b/web/i18n/zh-Hans/app-debug.ts
index 4e3f18ad7f..14f1358dd6 100644
--- a/web/i18n/zh-Hans/app-debug.ts
+++ b/web/i18n/zh-Hans/app-debug.ts
@@ -475,7 +475,7 @@ const translation = {
title: '多路召回',
description: '根据用户意图同时匹配所有知识库,从多路知识库查询相关文本片段,经过重排序步骤,从多路查询结果中选择匹配用户问题的最佳结果。',
},
- rerankModelRequired: '请选择 Rerank 模型',
+ rerankModelRequired: '未配置 Rerank 模型',
params: '参数设置',
top_k: 'Top K',
top_kTip: '用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。',
diff --git a/web/i18n/zh-Hans/app.ts b/web/i18n/zh-Hans/app.ts
index 43486fcace..3d3e95130d 100644
--- a/web/i18n/zh-Hans/app.ts
+++ b/web/i18n/zh-Hans/app.ts
@@ -170,6 +170,7 @@ const translation = {
},
},
openInExplore: '在“探索”中打开',
+ showMyCreatedAppsOnly: '我创建的',
}
export default translation
diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts
index 232350de44..53c5337cab 100644
--- a/web/i18n/zh-Hans/common.ts
+++ b/web/i18n/zh-Hans/common.ts
@@ -39,6 +39,7 @@ const translation = {
rename: '重命名',
audioSourceUnavailable: '音源不可用',
copyImage: '复制图片',
+ imageCopied: '图片已复制',
zoomOut: '缩小',
zoomIn: '放大',
openInNewTab: '在新标签页打开',
diff --git a/web/i18n/zh-Hans/workflow.ts b/web/i18n/zh-Hans/workflow.ts
index 91451b486b..93ebda4ce9 100644
--- a/web/i18n/zh-Hans/workflow.ts
+++ b/web/i18n/zh-Hans/workflow.ts
@@ -183,7 +183,7 @@ const translation = {
},
errorMsg: {
fieldRequired: '{{field}} 不能为空',
- rerankModelRequired: '开启 Rerank 模型前,请务必确认模型已在设置中成功配置。',
+ rerankModelRequired: '未配置 Rerank 模型',
authRequired: '请先授权',
invalidJson: '{{field}} 是非法的 JSON',
fields: {
diff --git a/web/i18n/zh-Hant/app.ts b/web/i18n/zh-Hant/app.ts
index 16dfd510ee..99de5042c2 100644
--- a/web/i18n/zh-Hant/app.ts
+++ b/web/i18n/zh-Hant/app.ts
@@ -182,6 +182,7 @@ const translation = {
searchAllTemplate: '搜尋所有樣本...',
byCategories: '按類別',
},
+ showMyCreatedAppsOnly: '我创建的',
}
export default translation
diff --git a/web/i18n/zh-Hant/common.ts b/web/i18n/zh-Hant/common.ts
index 4c09229796..32d5e7318d 100644
--- a/web/i18n/zh-Hant/common.ts
+++ b/web/i18n/zh-Hant/common.ts
@@ -47,6 +47,8 @@ const translation = {
close: '關閉',
viewMore: '查看更多',
regenerate: '再生',
+ submit: '提交',
+ skip: '船',
},
placeholder: {
input: '請輸入',
@@ -179,6 +181,18 @@ const translation = {
account: '帳戶',
myAccount: '我的帳戶',
studio: 'Dify 工作室',
+ deletePrivacyLinkTip: '有關我們如何處理您的數據的更多資訊,請參閱我們的',
+ deletePrivacyLink: '隱私策略。',
+ deleteSuccessTip: '您的帳戶需要時間才能完成刪除。完成後,我們會給您發送電子郵件。',
+ deleteLabel: '要確認,請在下方輸入您的電子郵件',
+ deletePlaceholder: '請輸入您的電子郵件',
+ verificationLabel: '驗證碼',
+ verificationPlaceholder: '粘貼6位代碼',
+ permanentlyDeleteButton: '永久刪除帳戶',
+ feedbackTitle: '反饋',
+ feedbackLabel: '告訴我們您刪除帳戶的原因?',
+ feedbackPlaceholder: '自選',
+ sendVerificationButton: '發送驗證碼',
},
members: {
team: '團隊',
diff --git a/web/i18n/zh-Hant/workflow.ts b/web/i18n/zh-Hant/workflow.ts
index a78c6a2f04..54599d23ff 100644
--- a/web/i18n/zh-Hant/workflow.ts
+++ b/web/i18n/zh-Hant/workflow.ts
@@ -104,6 +104,8 @@ const translation = {
openInExplore: '在“探索”中打開',
onFailure: '失敗時',
addFailureBranch: '添加 Fail Branch',
+ loadMore: '載入更多工作流',
+ noHistory: '無歷史記錄',
},
env: {
envPanelTitle: '環境變數',
@@ -505,7 +507,7 @@ const translation = {
optionName: {
image: '圖像',
url: '網址',
- doc: '醫生',
+ doc: '文檔',
localUpload: '本地上傳',
video: '視頻',
audio: '音訊',
diff --git a/web/package.json b/web/package.json
index 64721051a9..304a42871b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,6 +1,6 @@
{
"name": "dify-web",
- "version": "0.14.2",
+ "version": "0.15.0",
"private": true,
"engines": {
"node": ">=18.17.0"
diff --git a/web/service/knowledge/use-document.ts b/web/service/knowledge/use-document.ts
index 2b9981f22f..02e523bd90 100644
--- a/web/service/knowledge/use-document.ts
+++ b/web/service/knowledge/use-document.ts
@@ -29,6 +29,10 @@ export const useDocumentList = (payload: {
})
}
+export const useInvalidDocumentList = () => {
+ return useInvalid(useDocumentListKey)
+}
+
const useAutoDisabledDocumentKey = [NAME_SPACE, 'autoDisabledDocument']
export const useAutoDisabledDocuments = (datasetId: string) => {
return useQuery({
@@ -94,7 +98,7 @@ export const useSyncWebsite = () => {
})
}
-const useDocumentDetailKey = [NAME_SPACE, 'documentDetail']
+const useDocumentDetailKey = [NAME_SPACE, 'documentDetail', 'withoutMetaData']
export const useDocumentDetail = (payload: {
datasetId: string
documentId: string
@@ -114,7 +118,7 @@ export const useDocumentMetadata = (payload: {
}) => {
const { datasetId, documentId, params } = payload
return useQuery({
- queryKey: [...useDocumentDetailKey, 'withMetaData', datasetId, documentId],
+ queryKey: [...useDocumentDetailKey, 'onlyMetaData', datasetId, documentId],
queryFn: () => get(`/datasets/${datasetId}/documents/${documentId}`, { params }),
})
}
diff --git a/web/service/knowledge/use-segment.ts b/web/service/knowledge/use-segment.ts
index 749bbf2d28..ca1778fb94 100644
--- a/web/service/knowledge/use-segment.ts
+++ b/web/service/knowledge/use-segment.ts
@@ -14,6 +14,9 @@ import type {
const NAME_SPACE = 'segment'
export const useSegmentListKey = [NAME_SPACE, 'chunkList']
+export const useChunkListEnabledKey = [NAME_SPACE, 'chunkList', { enabled: true }]
+export const useChunkListDisabledKey = [NAME_SPACE, 'chunkList', { enabled: false }]
+export const useChunkListAllKey = [NAME_SPACE, 'chunkList', { enabled: 'all' }]
export const useSegmentList = (
payload: {
@@ -23,7 +26,7 @@ export const useSegmentList = (
page: number
limit: number
keyword: string
- enabled: boolean | 'all'
+ enabled: boolean | 'all' | ''
}
},
disable?: boolean,
@@ -31,7 +34,7 @@ export const useSegmentList = (
const { datasetId, documentId, params } = payload
const { page, limit, keyword, enabled } = params
return useQuery({
- queryKey: [...useSegmentListKey, datasetId, documentId, page, limit, keyword, enabled],
+ queryKey: [...useSegmentListKey, { datasetId, documentId, page, limit, keyword, enabled }],
queryFn: () => {
return get(`/datasets/${datasetId}/documents/${documentId}/segments`, { params })
},
@@ -110,7 +113,7 @@ export const useChildSegmentList = (
const { datasetId, documentId, segmentId, params } = payload
const { page, limit, keyword } = params
return useQuery({
- queryKey: [...useChildSegmentListKey, datasetId, documentId, segmentId, page, limit, keyword],
+ queryKey: [...useChildSegmentListKey, { datasetId, documentId, segmentId, page, limit, keyword }],
queryFn: () => {
return get(`/datasets/${datasetId}/documents/${documentId}/segments/${segmentId}/child_chunks`, { params })
},
diff --git a/web/service/use-base.ts b/web/service/use-base.ts
index 5eeca22668..d5dd908aa1 100644
--- a/web/service/use-base.ts
+++ b/web/service/use-base.ts
@@ -1,13 +1,15 @@
import {
+ type QueryKey,
useQueryClient,
} from '@tanstack/react-query'
-export const useInvalid = (key: string[]) => {
+export const useInvalid = (key: QueryKey) => {
const queryClient = useQueryClient()
return () => {
queryClient.invalidateQueries(
{
queryKey: key,
- })
+ },
+ )
}
}
|