mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
perf: Optimize translation
This commit is contained in:
parent
d39a27f360
commit
39d4ebc49c
|
|
@ -1114,7 +1114,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-never border-r-6 mt-8">
|
<div class="card-never border-r-6 mt-8">
|
||||||
<h5 class="p-8-12">
|
<h5 class="p-8-12">
|
||||||
{{ $t('common.param.outputParam') }}({{ $t('chat.executionDetails.documentSplitTip') }})
|
{{ $t('common.param.outputParam') }}({{
|
||||||
|
$t('chat.executionDetails.documentSplitTip')
|
||||||
|
}})
|
||||||
</h5>
|
</h5>
|
||||||
<div class="p-8-12 border-t-dashed lighter">
|
<div class="p-8-12 border-t-dashed lighter">
|
||||||
<el-radio-group v-model="currentParagraph" class="app-radio-button-group mb-8">
|
<el-radio-group v-model="currentParagraph" class="app-radio-button-group mb-8">
|
||||||
|
|
@ -1150,12 +1152,14 @@
|
||||||
{{ $t('common.param.inputParam') }}
|
{{ $t('common.param.inputParam') }}
|
||||||
</h5>
|
</h5>
|
||||||
<div class="p-8-12 border-t-dashed lighter">
|
<div class="p-8-12 border-t-dashed lighter">
|
||||||
<span class="color-secondary">{{$t('chat.executionDetails.subBlockLength')}}:</span>
|
<span class="color-secondary"
|
||||||
|
>{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.label') }}:</span
|
||||||
|
>
|
||||||
{{ data.size }}
|
{{ data.size }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-never border-r-6 mt-8">
|
<div class="card-never border-r-6 mt-8">
|
||||||
<h5 class="p-8-12">{{$t('chat.executionDetails.writeContent')}}</h5>
|
<h5 class="p-8-12">{{ $t('chat.executionDetails.writeContent') }}</h5>
|
||||||
<div class="p-8-12 border-t-dashed lighter">
|
<div class="p-8-12 border-t-dashed lighter">
|
||||||
<el-radio-group v-model="currentWriteContent" class="app-radio-button-group mb-8">
|
<el-radio-group v-model="currentWriteContent" class="app-radio-button-group mb-8">
|
||||||
<template
|
<template
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,6 @@ export default {
|
||||||
knowedMessage: 'Known Information',
|
knowedMessage: 'Known Information',
|
||||||
documentSplitTip: 'Each document can preview only the first five segments',
|
documentSplitTip: 'Each document can preview only the first five segments',
|
||||||
paragraphRules: 'Segmentation Rules',
|
paragraphRules: 'Segmentation Rules',
|
||||||
subBlockLength: 'Sub-block Length',
|
|
||||||
writeContent: 'Content Written',
|
writeContent: 'Content Written',
|
||||||
},
|
},
|
||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,6 @@ export default {
|
||||||
},
|
},
|
||||||
nodes: {
|
nodes: {
|
||||||
knowledgeWriteNode: {
|
knowledgeWriteNode: {
|
||||||
chunk_length: 'Chunk length',
|
|
||||||
text: 'Knowledge write',
|
text: 'Knowledge write',
|
||||||
label: 'Knowledge write',
|
label: 'Knowledge write',
|
||||||
},
|
},
|
||||||
|
|
@ -94,6 +93,16 @@ export default {
|
||||||
label: 'Local File',
|
label: 'Local File',
|
||||||
text: 'Local File',
|
text: 'Local File',
|
||||||
fileList: 'File List',
|
fileList: 'File List',
|
||||||
|
fileFormat: {
|
||||||
|
label: 'Supported File Formats',
|
||||||
|
requiredMessage: 'Please select file formats',
|
||||||
|
},
|
||||||
|
maxFileNumber: {
|
||||||
|
label: 'Maximum Number of Files per Upload',
|
||||||
|
},
|
||||||
|
maxFileCountNumber: {
|
||||||
|
label: 'Maximum Size per File (MB)',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
classify: {
|
classify: {
|
||||||
aiCapability: 'AI capability',
|
aiCapability: 'AI capability',
|
||||||
|
|
@ -265,6 +274,16 @@ You are a master of problem optimization, adept at accurately inferring user int
|
||||||
placeholder: 'Please select a splitting strategy',
|
placeholder: 'Please select a splitting strategy',
|
||||||
requiredMessage: 'Please select a splitting strategy',
|
requiredMessage: 'Please select a splitting strategy',
|
||||||
},
|
},
|
||||||
|
chunk_length: {
|
||||||
|
label: 'Chunk length',
|
||||||
|
tooltip1: 'Core objective is to balance retrieval precision and recall efficiency',
|
||||||
|
tooltip2:
|
||||||
|
'Avoid excessively short segmentation: A single segment <50 characters may lead to semantic fragmentation, potentially failing to match query intent during retrieval due to lack of context.',
|
||||||
|
tooltip3:
|
||||||
|
'Avoid excessive segmentation: A single block exceeding 500 characters increases redundant information, reduces retrieval accuracy, and consumes more storage and computing resources.',
|
||||||
|
},
|
||||||
|
title1: 'Segment title set as the associated question of the segment',
|
||||||
|
title2: 'Document name set as the associated question of the segment',
|
||||||
},
|
},
|
||||||
imageUnderstandNode: {
|
imageUnderstandNode: {
|
||||||
label: 'Image Understanding',
|
label: 'Image Understanding',
|
||||||
|
|
@ -410,7 +429,6 @@ You are a master of problem optimization, adept at accurately inferring user int
|
||||||
placeholder: 'Please choose a classification option',
|
placeholder: 'Please choose a classification option',
|
||||||
classify: {
|
classify: {
|
||||||
label: 'Intent classify',
|
label: 'Intent classify',
|
||||||
placeholder: 'Please input',
|
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
label: 'Input',
|
label: 'Input',
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@ export default {
|
||||||
knowedMessage: '已知信息',
|
knowedMessage: '已知信息',
|
||||||
documentSplitTip: '每个文档仅能预览前五个分段',
|
documentSplitTip: '每个文档仅能预览前五个分段',
|
||||||
paragraphRules: '分段规则',
|
paragraphRules: '分段规则',
|
||||||
subBlockLength: '子分块长度',
|
|
||||||
writeContent: '写入内容',
|
writeContent: '写入内容',
|
||||||
},
|
},
|
||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
import tool from '@/api/tool/tool'
|
||||||
|
import type { title } from 'process'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
node: '节点',
|
node: '节点',
|
||||||
nodeName: '节点名称',
|
nodeName: '节点名称',
|
||||||
|
|
@ -82,7 +85,6 @@ export default {
|
||||||
},
|
},
|
||||||
nodes: {
|
nodes: {
|
||||||
knowledgeWriteNode: {
|
knowledgeWriteNode: {
|
||||||
chunk_length: '子分块长度',
|
|
||||||
text: '知识库写入',
|
text: '知识库写入',
|
||||||
label: '知识库写入',
|
label: '知识库写入',
|
||||||
},
|
},
|
||||||
|
|
@ -95,6 +97,16 @@ export default {
|
||||||
label: '本地文件',
|
label: '本地文件',
|
||||||
text: '本地文件',
|
text: '本地文件',
|
||||||
fileList: '文件列表',
|
fileList: '文件列表',
|
||||||
|
fileFormat: {
|
||||||
|
label: '支持的文件格式',
|
||||||
|
requiredMessage: '请选择文件格式',
|
||||||
|
},
|
||||||
|
maxFileNumber: {
|
||||||
|
label: '每次上传最大文件数',
|
||||||
|
},
|
||||||
|
maxFileCountNumber: {
|
||||||
|
label: '上传的每个文档最大(MB)',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
classify: {
|
classify: {
|
||||||
aiCapability: 'AI能力',
|
aiCapability: 'AI能力',
|
||||||
|
|
@ -270,6 +282,16 @@ export default {
|
||||||
placeholder: '请选择分段策略',
|
placeholder: '请选择分段策略',
|
||||||
requiredMessage: '请选择分段策略',
|
requiredMessage: '请选择分段策略',
|
||||||
},
|
},
|
||||||
|
chunk_length: {
|
||||||
|
label: '子分块长度',
|
||||||
|
tooltip1: '核心目标是平衡检索精度与召回效率',
|
||||||
|
tooltip2:
|
||||||
|
'避免过短拆分:单块<50 字易导致语义碎片化,检索时可能因缺少上下文无法匹配查询意图',
|
||||||
|
tooltip3:
|
||||||
|
'避免过长拆分:单块>500 字会增加冗余信息,降低检索精准度,且占用更多存储和计算资源',
|
||||||
|
},
|
||||||
|
title1: '分段标题设置为分段的关联问题',
|
||||||
|
title2: '文档名称设置为分段的关联问题',
|
||||||
},
|
},
|
||||||
imageUnderstandNode: {
|
imageUnderstandNode: {
|
||||||
label: '图片理解',
|
label: '图片理解',
|
||||||
|
|
@ -421,7 +443,6 @@ export default {
|
||||||
placeholder: '请选择分类项',
|
placeholder: '请选择分类项',
|
||||||
classify: {
|
classify: {
|
||||||
label: '意图分类',
|
label: '意图分类',
|
||||||
placeholder: '请输入',
|
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
label: '输入',
|
label: '输入',
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@ export default {
|
||||||
knowedMessage: '已知資訊',
|
knowedMessage: '已知資訊',
|
||||||
documentSplitTip: '每個文件僅能預覽前五個段落',
|
documentSplitTip: '每個文件僅能預覽前五個段落',
|
||||||
paragraphRules: '分段規則',
|
paragraphRules: '分段規則',
|
||||||
subBlockLength: '子分塊長度',
|
|
||||||
writeContent: '寫入內容',
|
writeContent: '寫入內容',
|
||||||
},
|
},
|
||||||
KnowledgeSource: {
|
KnowledgeSource: {
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,6 @@ export default {
|
||||||
},
|
},
|
||||||
nodes: {
|
nodes: {
|
||||||
knowledgeWriteNode: {
|
knowledgeWriteNode: {
|
||||||
chunk_length: '子分塊長度',
|
|
||||||
text: '知識庫寫入',
|
text: '知識庫寫入',
|
||||||
label: '知識庫寫入',
|
label: '知識庫寫入',
|
||||||
},
|
},
|
||||||
|
|
@ -94,6 +93,16 @@ export default {
|
||||||
label: '本地文件',
|
label: '本地文件',
|
||||||
text: '本地文件',
|
text: '本地文件',
|
||||||
fileList: '文件列表',
|
fileList: '文件列表',
|
||||||
|
fileFormat: {
|
||||||
|
label: '支持的文件格式',
|
||||||
|
requiredMessage: '請選擇文件格式',
|
||||||
|
},
|
||||||
|
maxFileNumber: {
|
||||||
|
label: '每次上傳最大文件數',
|
||||||
|
},
|
||||||
|
maxFileCountNumber: {
|
||||||
|
label: '上傳的每個文檔最大(MB)',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
classify: {
|
classify: {
|
||||||
aiCapability: 'AI能力',
|
aiCapability: 'AI能力',
|
||||||
|
|
@ -264,6 +273,16 @@ export default {
|
||||||
placeholder: '請選擇分段策略',
|
placeholder: '請選擇分段策略',
|
||||||
requiredMessage: '請選擇分段策略',
|
requiredMessage: '請選擇分段策略',
|
||||||
},
|
},
|
||||||
|
chunk_length: {
|
||||||
|
label: '子分塊長度',
|
||||||
|
tooltip1: '核心目標是平衡檢索精度與召回效率',
|
||||||
|
tooltip2:
|
||||||
|
'避免過短拆分:單塊<50 字易導致語義碎片化,檢索時可能因缺少上下文無法匹配查詢意圖',
|
||||||
|
tooltip3:
|
||||||
|
'避免過長拆分:單塊>500 字會增加冗餘信息,降低檢索精准度,且佔用更多存儲和計算資源',
|
||||||
|
},
|
||||||
|
title1: '分段標題設置為分段的關聯問題',
|
||||||
|
title2: '文檔名稱設置為分段的關聯問題',
|
||||||
},
|
},
|
||||||
imageUnderstandNode: {
|
imageUnderstandNode: {
|
||||||
label: '圖片理解',
|
label: '圖片理解',
|
||||||
|
|
@ -402,7 +421,6 @@ export default {
|
||||||
placeholder: '請選擇分類項',
|
placeholder: '請選擇分類項',
|
||||||
classify: {
|
classify: {
|
||||||
label: '意圖分類',
|
label: '意圖分類',
|
||||||
placeholder: '請輸入',
|
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
label: '輸入',
|
label: '輸入',
|
||||||
|
|
@ -438,13 +456,13 @@ export default {
|
||||||
loopIndex: '下標',
|
loopIndex: '下標',
|
||||||
loopItem: '循環元素',
|
loopItem: '循環元素',
|
||||||
},
|
},
|
||||||
loopBodyNode: {label: '循環體', text: '循環體'},
|
loopBodyNode: { label: '循環體', text: '循環體' },
|
||||||
loopContinueNode: {
|
loopContinueNode: {
|
||||||
label: 'Continue',
|
label: 'Continue',
|
||||||
text: '用於終止當前循環,執行下次循環',
|
text: '用於終止當前循環,執行下次循環',
|
||||||
isContinue: 'Continue',
|
isContinue: 'Continue',
|
||||||
},
|
},
|
||||||
loopBreakNode: {label: 'Break', text: '終止當前循環,跳出循環體', isBreak: 'Break'},
|
loopBreakNode: { label: 'Break', text: '終止當前循環,跳出循環體', isBreak: 'Break' },
|
||||||
variableSplittingNode: {
|
variableSplittingNode: {
|
||||||
label: '變量拆分',
|
label: '變量拆分',
|
||||||
text: '通過配置 JSON Path 表達式,對輸入的 JSON 格式變量進行解析和拆分',
|
text: '通過配置 JSON Path 表達式,對輸入的 JSON 格式變量進行解析和拆分',
|
||||||
|
|
|
||||||
|
|
@ -10,25 +10,17 @@
|
||||||
label-width="auto"
|
label-width="auto"
|
||||||
>
|
>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('views.workflow.nodes.dataSourceLocalNode.fileFormat.label', '支持的文件格式')"
|
:label="$t('views.workflow.nodes.dataSourceLocalNode.fileFormat.label')"
|
||||||
:rules="{
|
:rules="{
|
||||||
type: 'array',
|
type: 'array',
|
||||||
required: true,
|
required: true,
|
||||||
message: $t(
|
message: $t('views.workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage'),
|
||||||
'views.workflow.nodes.dataSourceLocalNode.fileFormat.message',
|
|
||||||
'请选择文件格式',
|
|
||||||
),
|
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form_data.file_type_list"
|
v-model="form_data.file_type_list"
|
||||||
:placeholder="
|
:placeholder="$t('views.workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage')"
|
||||||
$t(
|
|
||||||
'views.workflow.nodes.dataSourceLocalNode.fileFormat.placeholder',
|
|
||||||
'请选择文件格式',
|
|
||||||
)
|
|
||||||
"
|
|
||||||
class="w-240"
|
class="w-240"
|
||||||
clearable
|
clearable
|
||||||
multiple
|
multiple
|
||||||
|
|
@ -48,16 +40,11 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="
|
:label="$t('views.workflow.nodes.dataSourceLocalNode.maxFileNumber.label')"
|
||||||
$t('views.workflow.nodes.dataSourceLocalNode.maxFileNumber.label', '每次上传最大文件数')
|
|
||||||
"
|
|
||||||
:rules="{
|
:rules="{
|
||||||
type: 'array',
|
type: 'array',
|
||||||
required: true,
|
required: true,
|
||||||
message: $t(
|
message: $t('common.inputPlaceholder'),
|
||||||
'views.workflow.nodes.dataSourceLocalNode.maxFileNumber.placeholder',
|
|
||||||
'请输入最大文件数',
|
|
||||||
),
|
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
|
|
@ -73,19 +60,11 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="
|
:label="$t('views.workflow.nodes.dataSourceLocalNode.maxFileCountNumber.label')"
|
||||||
$t(
|
|
||||||
'views.workflow.nodes.dataSourceLocalNode.maxFileNumber.label',
|
|
||||||
'上传的每个文档最大(MB)',
|
|
||||||
)
|
|
||||||
"
|
|
||||||
:rules="{
|
:rules="{
|
||||||
type: 'array',
|
type: 'array',
|
||||||
required: true,
|
required: true,
|
||||||
message: $t(
|
message: $t('common.inputPlaceholder'),
|
||||||
'views.workflow.nodes.dataSourceLocalNode.maxFileNumber.placeholder',
|
|
||||||
'上传的每个文档最大(MB) 必填',
|
|
||||||
),
|
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,13 @@
|
||||||
require-asterisk-position="right"
|
require-asterisk-position="right"
|
||||||
label-width="auto"
|
label-width="auto"
|
||||||
>
|
>
|
||||||
<el-form-item :label="$t('views.problem.relateParagraph.selectDocument')" :rules="{
|
<el-form-item
|
||||||
|
:label="$t('views.problem.relateParagraph.selectDocument')"
|
||||||
|
:rules="{
|
||||||
type: 'array',
|
type: 'array',
|
||||||
required: true,
|
required: true,
|
||||||
message: $t('views.chatLog.documentPlaceholder'),
|
message: $t('views.chatLog.documentPlaceholder'),
|
||||||
trigger: 'change'
|
trigger: 'change',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<NodeCascader
|
<NodeCascader
|
||||||
|
|
@ -30,39 +32,28 @@
|
||||||
:rules="{
|
:rules="{
|
||||||
required: true,
|
required: true,
|
||||||
message: $t('views.workflow.nodes.documentSplitNode.splitStrategy.requiredMessage'),
|
message: $t('views.workflow.nodes.documentSplitNode.splitStrategy.requiredMessage'),
|
||||||
trigger: 'change'
|
trigger: 'change',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form_data.split_strategy"
|
v-model="form_data.split_strategy"
|
||||||
:placeholder="$t('views.workflow.nodes.documentSplitNode.splitStrategy.placeholder')">
|
:placeholder="$t('views.workflow.nodes.documentSplitNode.splitStrategy.placeholder')"
|
||||||
<el-option
|
>
|
||||||
:label="$t('views.document.setRules.intelligent.label')"
|
<el-option :label="$t('views.document.setRules.intelligent.label')" value="auto" />
|
||||||
value="auto"
|
<el-option :label="$t('views.document.setRules.advanced.label')" value="custom" />
|
||||||
/>
|
<el-option :label="$t('views.document.fileType.QA.label')" value="qa" />
|
||||||
<el-option
|
|
||||||
:label="$t('views.document.setRules.advanced.label')"
|
|
||||||
value="custom"
|
|
||||||
/>
|
|
||||||
<el-option
|
|
||||||
:label="$t('views.document.fileType.QA.label')"
|
|
||||||
value="qa"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<span>
|
<span class="flex align-center">
|
||||||
<span>子分块长度</span>
|
<span>{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.label') }}</span>
|
||||||
<el-tooltip
|
<el-tooltip effect="dark" placement="right">
|
||||||
effect="dark"
|
|
||||||
placement="right"
|
|
||||||
>
|
|
||||||
<template #content>
|
<template #content>
|
||||||
核心目标是平衡检索精度与召回效率 <br/>
|
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip1') }}<br />
|
||||||
•避免过短拆分:单块<50 字易导致语义碎片化,检索时可能因缺少上下文无法匹配查询意图<br/>
|
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip2') }}<br />
|
||||||
•避免过长拆分:单块>500 字会增加冗余信息,降低检索精准度,且占用更多存储和计算资源
|
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip3') }}
|
||||||
</template>
|
</template>
|
||||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
|
@ -72,10 +63,7 @@
|
||||||
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
||||||
value="custom"
|
value="custom"
|
||||||
/>
|
/>
|
||||||
<el-option
|
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||||
:label="$t('views.workflow.variable.Referencing')"
|
|
||||||
value="referencing"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -200,7 +188,11 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<el-switch v-if="form_data.with_filter_type === 'custom'" size="small" v-model="form_data.with_filter" />
|
<el-switch
|
||||||
|
v-if="form_data.with_filter_type === 'custom'"
|
||||||
|
size="small"
|
||||||
|
v-model="form_data.with_filter"
|
||||||
|
/>
|
||||||
<NodeCascader
|
<NodeCascader
|
||||||
v-else
|
v-else
|
||||||
ref="nodeCascaderRef7"
|
ref="nodeCascaderRef7"
|
||||||
|
|
@ -212,8 +204,7 @@
|
||||||
<div style="margin-top: 4px">
|
<div style="margin-top: 4px">
|
||||||
<el-text type="info">
|
<el-text type="info">
|
||||||
{{ $t('views.document.setRules.with_filter.text') }}
|
{{ $t('views.document.setRules.with_filter.text') }}
|
||||||
</el-text
|
</el-text>
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -221,17 +212,17 @@
|
||||||
<el-form-item v-if="form_data.split_strategy !== 'qa'">
|
<el-form-item v-if="form_data.split_strategy !== 'qa'">
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<span>分段标题设置为分段的关联问题</span>
|
<span> {{ $t('views.workflow.nodes.documentSplitNode.title1') }}</span>
|
||||||
<el-select v-model="form_data.paragraph_title_relate_problem_type" size="small"
|
<el-select
|
||||||
style="width: 100px">
|
v-model="form_data.paragraph_title_relate_problem_type"
|
||||||
|
size="small"
|
||||||
|
style="width: 100px"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
||||||
value="custom"
|
value="custom"
|
||||||
/>
|
/>
|
||||||
<el-option
|
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||||
:label="$t('views.workflow.variable.Referencing')"
|
|
||||||
value="referencing"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -252,17 +243,17 @@
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<span>文档名称设置为分段的关联问题</span>
|
<span>{{ $t('views.workflow.nodes.documentSplitNode.title2') }}</span>
|
||||||
<el-select v-model="form_data.document_name_relate_problem_type" size="small"
|
<el-select
|
||||||
style="width: 100px">
|
v-model="form_data.document_name_relate_problem_type"
|
||||||
|
size="small"
|
||||||
|
style="width: 100px"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
:label="$t('views.workflow.nodes.searchDocumentNode.custom')"
|
||||||
value="custom"
|
value="custom"
|
||||||
/>
|
/>
|
||||||
<el-option
|
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||||
:label="$t('views.workflow.variable.Referencing')"
|
|
||||||
value="referencing"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -297,7 +288,7 @@ import { useRoute } from 'vue-router'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const {
|
const {
|
||||||
query: { id } // id为knowledgeID
|
query: { id }, // id为knowledgeID
|
||||||
} = route as any
|
} = route as any
|
||||||
|
|
||||||
const apiType = computed(() => {
|
const apiType = computed(() => {
|
||||||
|
|
@ -333,10 +324,9 @@ const form = {
|
||||||
patterns_reference: [],
|
patterns_reference: [],
|
||||||
with_filter: false,
|
with_filter: false,
|
||||||
with_filter_type: 'custom',
|
with_filter_type: 'custom',
|
||||||
with_filter_reference: []
|
with_filter_reference: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const form_data = computed({
|
const form_data = computed({
|
||||||
get: () => {
|
get: () => {
|
||||||
if (props.nodeModel.properties.node_data) {
|
if (props.nodeModel.properties.node_data) {
|
||||||
|
|
@ -348,10 +338,9 @@ const form_data = computed({
|
||||||
},
|
},
|
||||||
set: (value) => {
|
set: (value) => {
|
||||||
set(props.nodeModel.properties, 'node_data', value)
|
set(props.nodeModel.properties, 'node_data', value)
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const aiChatNodeFormRef = ref<FormInstance>()
|
const aiChatNodeFormRef = ref<FormInstance>()
|
||||||
const nodeCascaderRef = ref()
|
const nodeCascaderRef = ref()
|
||||||
const nodeCascaderRef2 = ref()
|
const nodeCascaderRef2 = ref()
|
||||||
|
|
@ -362,7 +351,7 @@ const validate = () => {
|
||||||
nodeCascaderRef.value ? nodeCascaderRef.value.validate() : Promise.resolve(''),
|
nodeCascaderRef.value ? nodeCascaderRef.value.validate() : Promise.resolve(''),
|
||||||
nodeCascaderRef2.value ? nodeCascaderRef2.value.validate() : Promise.resolve(''),
|
nodeCascaderRef2.value ? nodeCascaderRef2.value.validate() : Promise.resolve(''),
|
||||||
nodeCascaderRef3.value ? nodeCascaderRef3.value.validate() : Promise.resolve(''),
|
nodeCascaderRef3.value ? nodeCascaderRef3.value.validate() : Promise.resolve(''),
|
||||||
aiChatNodeFormRef.value?.validate()
|
aiChatNodeFormRef.value?.validate(),
|
||||||
]).catch((err: any) => {
|
]).catch((err: any) => {
|
||||||
return Promise.reject({ node: props.nodeModel, errMessage: err })
|
return Promise.reject({ node: props.nodeModel, errMessage: err })
|
||||||
})
|
})
|
||||||
|
|
@ -377,15 +366,11 @@ const initSplitPatternList = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
initSplitPatternList()
|
initSplitPatternList()
|
||||||
|
|
||||||
set(props.nodeModel, 'validate', validate)
|
set(props.nodeModel, 'validate', validate)
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped></style>
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:prop="`branch.${index}.content`"
|
:prop="`branch.${index}.content`"
|
||||||
:rules="{
|
:rules="{
|
||||||
message: $t('views.workflow.nodes.intentNode.classify.placeholder'),
|
message: $t('common.inputPlaceholder'),
|
||||||
trigger: 'change',
|
trigger: 'change',
|
||||||
required: true,
|
required: true,
|
||||||
}"
|
}"
|
||||||
|
|
@ -119,9 +119,7 @@
|
||||||
v-model="item.content"
|
v-model="item.content"
|
||||||
style="width: 210px"
|
style="width: 210px"
|
||||||
:disabled="item.isOther"
|
:disabled="item.isOther"
|
||||||
:placeholder="
|
:placeholder="$t('common.inputPlaceholder')"
|
||||||
$t('views.workflow.nodes.intentNode.classify.placeholder')
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="3">
|
<el-col :span="3">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue