feat: Related Knowledge

This commit is contained in:
wangdan-fit2cloud 2025-06-13 15:52:47 +08:00
parent f7349d2b3d
commit 4948051f67
22 changed files with 377 additions and 345 deletions

View File

@ -21,6 +21,23 @@ const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Resu
return get(`${prefix}/knowledge`, data, loading) return get(`${prefix}/knowledge`, data, loading)
} }
/**
*
* @param
* param {
folder_id: "string",
name: "string",
tool_type: "string",
desc: string,
}
*/
const getKnowledgeList: (param?: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
param,
loading,
) => {
return get(`${prefix}/knowledge`, param, loading)
}
/** /**
* *
* @param * @param
@ -31,7 +48,7 @@ const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Resu
desc: string, desc: string,
} }
*/ */
const getKnowledgeList: ( const getKnowledgeListPage: (
page: pageRequest, page: pageRequest,
param?: any, param?: any,
loading?: Ref<boolean>, loading?: Ref<boolean>,
@ -234,14 +251,6 @@ const postWebKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<an
return post(`${prefix}/knowledge/web`, data, undefined, loading) return post(`${prefix}/knowledge/web`, data, undefined, loading)
} }
/**
*
* @param
*/
const getAllKnowledge: (loading?: Ref<boolean>) => Promise<Result<any[]>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
/** /**
* *
* @param knowledge_id * @param knowledge_id
@ -269,6 +278,7 @@ const importLarkDocument: (
export default { export default {
getKnowledgeByFolder, getKnowledgeByFolder,
getKnowledgeList, getKnowledgeList,
getKnowledgeListPage,
getKnowledgeDetail, getKnowledgeDetail,
putKnowledge, putKnowledge,
delKnowledge, delKnowledge,
@ -284,5 +294,4 @@ export default {
getLarkDocumentList, getLarkDocumentList,
importLarkDocument, importLarkDocument,
getAllKnowledge,
} }

View File

@ -79,6 +79,23 @@ const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Resu
return get(`${prefix}/knowledge`, data, loading) return get(`${prefix}/knowledge`, data, loading)
} }
/**
*
* @param
* param {
"folder_id": "string",
"name": "string",
"tool_type": "string",
desc: string,
}
*/
const getKnowledgeList: (param?: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
param,
loading,
) => {
return get(`${prefix}/knowledge`, param, loading)
}
/** /**
* *
* @param * @param
@ -89,7 +106,7 @@ const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Resu
desc: string, desc: string,
} }
*/ */
const getKnowledgeList: ( const getKnowledgeListPage: (
page: pageRequest, page: pageRequest,
param?: any, param?: any,
loading?: Ref<boolean>, loading?: Ref<boolean>,
@ -292,14 +309,6 @@ const postWebKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<an
return post(`${prefix}/knowledge/web`, data, undefined, loading) return post(`${prefix}/knowledge/web`, data, undefined, loading)
} }
/**
*
* @param
*/
const getAllKnowledge: (loading?: Ref<boolean>) => Promise<Result<any[]>> = (loading) => {
return get(`${prefix}/knowledge`, undefined, loading)
}
/** /**
* *
* @param knowledge_id * @param knowledge_id
@ -327,6 +336,7 @@ const importLarkDocument: (
export default { export default {
getKnowledgeByFolder, getKnowledgeByFolder,
getKnowledgeList, getKnowledgeList,
getKnowledgeListPage,
getKnowledgeDetail, getKnowledgeDetail,
putKnowledge, putKnowledge,
delKnowledge, delKnowledge,
@ -342,7 +352,6 @@ export default {
getLarkDocumentList, getLarkDocumentList,
importLarkDocument, importLarkDocument,
getAllKnowledge,
getSharedWorkspaceKnowledge, getSharedWorkspaceKnowledge,
getSharedWorkspaceKnowledgePage, getSharedWorkspaceKnowledgePage,
getSharedAuthorizationKnowledgeGet, getSharedAuthorizationKnowledgeGet,

View File

@ -169,7 +169,7 @@ function changeMenu(id: string) {
function getDataset() { function getDataset() {
loading.value = true loading.value = true
knowledge knowledge
.asyncGetAllKnowledge() .asyncGetRootKnowledge()
.then((res: any) => { .then((res: any) => {
list.value = res.data list.value = res.data
common.saveBreadcrumb(list.value) common.saveBreadcrumb(list.value)

View File

@ -131,7 +131,6 @@ export default {
addKnowledge: 'Add Related Knowledge', addKnowledge: 'Add Related Knowledge',
addKnowledgePlaceholder: 'The selected knowledge must use the same embedding model', addKnowledgePlaceholder: 'The selected knowledge must use the same embedding model',
selected: 'Selected', selected: 'Selected',
countDataset: 'Knowledge',
selectSearchMode: 'Retrieval Mode', selectSearchMode: 'Retrieval Mode',
vectorSearch: 'Vector Search', vectorSearch: 'Vector Search',

View File

@ -122,7 +122,6 @@ export default {
addKnowledge: '添加关联知识库', addKnowledge: '添加关联知识库',
addKnowledgePlaceholder: '所选知识库必须使用相同的 Embedding 模型', addKnowledgePlaceholder: '所选知识库必须使用相同的 Embedding 模型',
selected: '已选', selected: '已选',
countDataset: '个知识库',
selectSearchMode: '检索模式', selectSearchMode: '检索模式',
vectorSearch: '向量检索', vectorSearch: '向量检索',

View File

@ -122,7 +122,6 @@ export default {
addKnowledge: '新增關聯知識庫', addKnowledge: '新增關聯知識庫',
addKnowledgePlaceholder: '所選知識庫必須使用相同的 Embedding 模型', addKnowledgePlaceholder: '所選知識庫必須使用相同的 Embedding 模型',
selected: '已選', selected: '已選',
countDataset: '個知識庫',
selectSearchMode: '檢索模式', selectSearchMode: '檢索模式',
vectorSearch: '向量檢索', vectorSearch: '向量檢索',

View File

@ -31,10 +31,13 @@ const useKnowledgeStore = defineStore('knowledg', {
saveDocumentsFile(file: UploadUserFile[]) { saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file this.documentsFiles = file
}, },
async asyncGetAllKnowledge(loading?: Ref<boolean>) { async asyncGetRootKnowledge(loading?: Ref<boolean>) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const params = {
folder_id: localStorage.getItem('workspace_id'),
}
knowledgeApi knowledgeApi
.getAllKnowledge(loading) .getKnowledgeList(params, loading)
.then((data) => { .then((data) => {
resolve(data) resolve(data)
}) })
@ -43,10 +46,7 @@ const useKnowledgeStore = defineStore('knowledg', {
}) })
}) })
}, },
async asyncGetKnowledgeDetail( async asyncGetKnowledgeDetail(knowledge_id: string, loading?: Ref<boolean>) {
knowledge_id: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
knowledgeApi knowledgeApi
.getKnowledgeDetail(knowledge_id, loading) .getKnowledgeDetail(knowledge_id, loading)
@ -58,11 +58,7 @@ const useKnowledgeStore = defineStore('knowledg', {
}) })
}) })
}, },
async asyncSyncKnowledge( async asyncSyncKnowledge(id: string, sync_type: string, loading?: Ref<boolean>) {
id: string,
sync_type: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
knowledgeApi knowledgeApi
.putSyncWebKnowledge(id, sync_type, loading) .putSyncWebKnowledge(id, sync_type, loading)

View File

@ -1,6 +1,5 @@
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import applicationApi from '@/api/application/application' import applicationApi from '@/api/application/application'
import knowledgeAPI from '@/api/knowledge/knowledge.ts'
import applicationXpackApi from '@/api/application/application-xpack' import applicationXpackApi from '@/api/application/application-xpack'
import { type Ref } from 'vue' import { type Ref } from 'vue'
import { getBrowserLang } from '@/locales/index' import { getBrowserLang } from '@/locales/index'
@ -36,19 +35,6 @@ const useApplicationStore = defineStore('application', {
}) })
}, },
async asyncGetApplicationKnowledge(id: string, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
knowledgeAPI
.getAllKnowledge(loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
async asyncGetAccessToken(id: string, loading?: Ref<boolean>) { async asyncGetAccessToken(id: string, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const user = useUserStore() const user = useUserStore()

View File

@ -31,10 +31,13 @@ const useKnowledgeStore = defineStore('knowledge', {
saveDocumentsFile(file: UploadUserFile[]) { saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file this.documentsFiles = file
}, },
async asyncGetAllKnowledge(loading?: Ref<boolean>) { async asyncGetRootKnowledge(loading?: Ref<boolean>) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const params = {
folder_id: localStorage.getItem('workspace_id'),
}
knowledgeApi knowledgeApi
.getAllKnowledge(loading) .getKnowledgeList(params, loading)
.then((data) => { .then((data) => {
resolve(data) resolve(data)
}) })
@ -43,10 +46,7 @@ const useKnowledgeStore = defineStore('knowledge', {
}) })
}) })
}, },
async asyncGetKnowledgeDetail( async asyncGetKnowledgeDetail(knowledge_id: string, loading?: Ref<boolean>) {
knowledge_id: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
knowledgeApi knowledgeApi
.getKnowledgeDetail(knowledge_id, loading) .getKnowledgeDetail(knowledge_id, loading)
@ -58,11 +58,7 @@ const useKnowledgeStore = defineStore('knowledge', {
}) })
}) })
}, },
async asyncSyncKnowledge( async asyncSyncKnowledge(id: string, sync_type: string, loading?: Ref<boolean>) {
id: string,
sync_type: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
knowledgeApi knowledgeApi
.putSyncWebKnowledge(id, sync_type, loading) .putSyncWebKnowledge(id, sync_type, loading)

View File

@ -185,6 +185,7 @@
<div class="flex align-center" style="width: 80%"> <div class="flex align-center" style="width: 80%">
<KnowledgeIcon <KnowledgeIcon
:type="relatedObject(knowledgeList, item, 'id')?.type" :type="relatedObject(knowledgeList, item, 'id')?.type"
class="mr-12"
/> />
<span <span
@ -439,7 +440,7 @@ import { t } from '@/locales'
import TTSModeParamSettingDialog from './component/TTSModeParamSettingDialog.vue' import TTSModeParamSettingDialog from './component/TTSModeParamSettingDialog.vue'
import ReasoningParamSettingDialog from './component/ReasoningParamSettingDialog.vue' import ReasoningParamSettingDialog from './component/ReasoningParamSettingDialog.vue'
const { model, application } = useStore() const { knowledge, model, application } = useStore()
const route = useRoute() const route = useRoute()
const { const {
@ -628,7 +629,7 @@ function getDetail() {
} }
function getKnowledge() { function getKnowledge() {
application.asyncGetApplicationKnowledge(id, knowledgeLoading).then((res: any) => { knowledge.asyncGetRootKnowledge(knowledgeLoading).then((res: any) => {
knowledgeList.value = res.data knowledgeList.value = res.data
}) })
} }
@ -706,8 +707,7 @@ function refresh() {
onMounted(() => { onMounted(() => {
getModel() getModel()
// todo getKnowledge()
// getKnowledge()
getDetail() getDetail()
getSTTModel() getSTTModel()
getTTSModel() getTTSModel()

View File

@ -35,23 +35,39 @@
</div> </div>
</div> </div>
</template> </template>
<LayoutContainer class="application-manage">
<template #left>
<folder-tree
:data="folderList"
:currentNodeKey="currentFolder?.id"
@handleNodeClick="folderClickHandel"
class="p-8"
v-loading="folderLoading"
/>
</template>
<el-scrollbar> <el-scrollbar>
<div class="max-height"> <div class="max-height layout-bg p-16-24">
<el-row :gutter="12" v-loading="loading"> <el-row :gutter="12" v-loading="loading">
<el-col :span="12" v-for="(item, index) in filterData" :key="index" class="mb-16"> <el-col :span="12" v-for="(item, index) in filterData" :key="index" class="mb-16">
<CardCheckbox value-field="id" :data="item" v-model="checkList" @change="changeHandle"> <CardCheckbox
<span class="ellipsis cursor" :title="item.name"> {{ item.name }}</span> value-field="id"
:data="item"
v-model="checkList"
@change="changeHandle"
>
<span class="ellipsis cursor ml-12" :title="item.name"> {{ item.name }}</span>
</CardCheckbox> </CardCheckbox>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</el-scrollbar> </el-scrollbar>
</LayoutContainer>
<template #footer> <template #footer>
<div class="flex-between"> <div class="flex-between">
<div class="flex"> <div class="flex">
<el-text type="info" class="color-secondary mr-8" v-if="checkList.length > 0"> <el-text type="info" class="color-secondary mr-8" v-if="checkList.length > 0">
{{ $t('views.application.dialog.selected') }} {{ checkList.length }} {{ $t('views.application.dialog.selected') }} {{ checkList.length }}
{{ $t('views.application.dialog.countDataset') }}
</el-text> </el-text>
<el-button link type="primary" v-if="checkList.length > 0" @click="clearCheck"> <el-button link type="primary" v-if="checkList.length > 0" @click="clearCheck">
{{ $t('common.clear') }} {{ $t('common.clear') }}
@ -62,7 +78,7 @@
{{ $t('common.cancel') }} {{ $t('common.cancel') }}
</el-button> </el-button>
<el-button type="primary" @click="submitHandle"> <el-button type="primary" @click="submitHandle">
{{ $t('common.confirm') }} {{ $t('common.add') }}
</el-button> </el-button>
</span> </span>
</div> </div>
@ -71,6 +87,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref, watch } from 'vue' import { computed, ref, watch } from 'vue'
import KnowledgeApi from '@/api/knowledge/knowledge'
import useStore from '@/stores'
const props = defineProps({ const props = defineProps({
data: { data: {
type: Array<any>, type: Array<any>,
@ -80,12 +98,14 @@ const props = defineProps({
}) })
const emit = defineEmits(['addData', 'refresh']) const emit = defineEmits(['addData', 'refresh'])
const { folder } = useStore()
const dialogVisible = ref<boolean>(false) const dialogVisible = ref<boolean>(false)
const checkList = ref([]) const checkList = ref([])
const currentEmbedding = ref('') const currentEmbedding = ref('')
const searchValue = ref('') const searchValue = ref('')
const searchDate = ref<any[]>([]) const searchDate = ref<any[]>([])
const loading = ref(false)
const filterData = computed(() => { const filterData = computed(() => {
return currentEmbedding.value return currentEmbedding.value
@ -124,8 +144,8 @@ function clearCheck() {
} }
const open = (checked: any) => { const open = (checked: any) => {
searchDate.value = props.data
checkList.value = checked checkList.value = checked
getFolder()
if (checkList.value.length > 0) { if (checkList.value.length > 0) {
currentEmbedding.value = props.data.filter( currentEmbedding.value = props.data.filter(
(v) => v.id === checkList.value[0], (v) => v.id === checkList.value[0],
@ -134,6 +154,7 @@ const open = (checked: any) => {
dialogVisible.value = true dialogVisible.value = true
} }
const submitHandle = () => { const submitHandle = () => {
emit('addData', checkList.value) emit('addData', checkList.value)
dialogVisible.value = false dialogVisible.value = false
@ -143,6 +164,36 @@ const refresh = () => {
emit('refresh') emit('refresh')
} }
const folderList = ref<any[]>([])
const knowledgeList = ref<any[]>([])
const currentFolder = ref<any>({})
const folderLoading = ref(false)
//
function folderClickHandel(row: any) {
currentFolder.value = row
knowledgeList.value = []
if (currentFolder.value.id === 'share') return
getList()
}
function getFolder() {
const params = {}
folder.asyncGetFolder('KNOWLEDGE', params, folderLoading).then((res: any) => {
folderList.value = res.data
currentFolder.value = res.data?.[0] || {}
getList()
})
}
function getList() {
const params = {
folder_id: currentFolder.value?.id || localStorage.getItem('workspace_id'),
}
KnowledgeApi.getKnowledgeList(params, loading).then((res) => {
searchDate.value = res.data
})
}
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss"> <style lang="scss">
@ -152,11 +203,9 @@ defineExpose({ open })
padding: 12px 20px 4px 24px; padding: 12px 20px 4px 24px;
border-bottom: 1px solid var(--el-border-color-light); border-bottom: 1px solid var(--el-border-color-light);
} }
.el-dialog__body {
padding: 8px !important;
}
.el-dialog__footer { .el-dialog__footer {
padding: 0 24px 16px 24px; padding: 12px 24px 12px 24px;
border-top: 1px solid var(--el-border-color-light);
} }
.el-dialog__headerbtn { .el-dialog__headerbtn {
@ -165,7 +214,7 @@ defineExpose({ open })
} }
.max-height { .max-height {
max-height: calc(100vh - 260px); max-height: calc(100vh - 260px);
padding: 0 16px; min-height: 300px;
} }
} }
</style> </style>

View File

@ -10,7 +10,6 @@
:close-on-press-escape="false" :close-on-press-escape="false"
> >
<el-scrollbar max-height="550"> <el-scrollbar max-height="550">
<div class="p-16">
<el-form label-position="top" ref="paramFormRef" :model="form" v-loading="loading"> <el-form label-position="top" ref="paramFormRef" :model="form" v-loading="loading">
<el-form-item :label="$t('views.application.dialog.selectSearchMode')"> <el-form-item :label="$t('views.application.dialog.selectSearchMode')">
<el-radio-group <el-radio-group
@ -66,9 +65,7 @@
<el-form-item> <el-form-item>
<template #label> <template #label>
<div class="flex align-center"> <div class="flex align-center">
<span class="mr-4">{{ <span class="mr-4">{{ $t('views.application.dialog.similarityThreshold') }}</span>
$t('views.application.dialog.similarityThreshold')
}}</span>
<el-tooltip <el-tooltip
effect="dark" effect="dark"
:content="$t('views.application.dialog.similarityTooltip')" :content="$t('views.application.dialog.similarityTooltip')"
@ -140,9 +137,7 @@
<el-radio value="designated_answer"> <el-radio value="designated_answer">
<p>{{ $t('views.application.dialog.provideAnswer') }}</p> <p>{{ $t('views.application.dialog.provideAnswer') }}</p>
<el-form-item <el-form-item
v-if=" v-if="form.knowledge_setting.no_references_setting.status === 'designated_answer'"
form.knowledge_setting.no_references_setting.status === 'designated_answer'
"
prop="designated_answer" prop="designated_answer"
> >
<el-input <el-input
@ -161,9 +156,7 @@
<el-form-item @click.prevent v-if="!isWorkflowType"> <el-form-item @click.prevent v-if="!isWorkflowType">
<template #label> <template #label>
<div class="flex align-center"> <div class="flex align-center">
<span class="mr-4">{{ <span class="mr-4">{{ $t('views.application.form.problemOptimization.label') }}</span>
$t('views.application.form.problemOptimization.label')
}}</span>
</div> </div>
</template> </template>
<el-switch size="small" v-model="form.problem_optimization"></el-switch> <el-switch size="small" v-model="form.problem_optimization"></el-switch>
@ -181,11 +174,10 @@
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div>
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<span class="dialog-footer p-16"> <span class="dialog-footer">
<el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button> <el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="submit(noReferencesformRef)" :loading="loading"> <el-button type="primary" @click="submit(noReferencesformRef)" :loading="loading">
{{ $t('common.save') }} {{ $t('common.save') }}

View File

@ -115,7 +115,7 @@ const submitHandle = () => {
} }
function getDataset() { function getDataset() {
knowledge.asyncGetAllKnowledge(loading).then((res: any) => { knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
datasetList.value = res.data?.filter((v: any) => v.id !== id) datasetList.value = res.data?.filter((v: any) => v.id !== id)
}) })
} }

View File

@ -92,7 +92,7 @@ const submitHandle = () => {
} }
function getDataset() { function getDataset() {
knowledge.asyncGetAllKnowledge(loading).then((res: any) => { knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
datasetList.value = res.data?.filter((v: any) => v.id !== id) datasetList.value = res.data?.filter((v: any) => v.id !== id)
}) })
} }

View File

@ -368,7 +368,7 @@ function getList() {
[search_type.value]: search_form.value[search_type.value], [search_type.value]: search_form.value[search_type.value],
} }
KnowledgeApi.getKnowledgeList(paginationConfig, params, loading).then((res) => { KnowledgeApi.getKnowledgeListPage(paginationConfig, params, loading).then((res) => {
paginationConfig.total = res.data.total paginationConfig.total = res.data.total
knowledgeList.value = [...knowledgeList.value, ...res.data.records] knowledgeList.value = [...knowledgeList.value, ...res.data.records]
}) })

View File

@ -363,7 +363,7 @@ function getList() {
[search_type.value]: search_form.value[search_type.value], [search_type.value]: search_form.value[search_type.value],
} }
KnowledgeApi.getKnowledgeList(paginationConfig, params, loading).then((res) => { KnowledgeApi.getKnowledgeListPage(paginationConfig, params, loading).then((res) => {
paginationConfig.total = res.data.total paginationConfig.total = res.data.total
knowledgeList.value = [...knowledgeList.value, ...res.data.records] knowledgeList.value = [...knowledgeList.value, ...res.data.records]
}) })

View File

@ -144,7 +144,7 @@ function getDocument(id: string) {
} }
function getDataset() { function getDataset() {
knowledge.asyncGetAllKnowledge(loading).then((res: any) => { knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
datasetList.value = res.data datasetList.value = res.data
}) })
} }

View File

@ -121,7 +121,7 @@ function getDocument(id: string) {
} }
function getDataset() { function getDataset() {
knowledge.asyncGetAllKnowledge(loading).then((res: any) => { knowledge.asyncGetRootKnowledge(loading).then((res: any) => {
datasetList.value = res.data datasetList.value = res.data
}) })
} }

View File

@ -11,7 +11,6 @@
> >
<div> <div>
<el-scrollbar always> <el-scrollbar always>
<div class="p-16">
<el-form label-position="top" ref="paramFormRef" :model="form"> <el-form label-position="top" ref="paramFormRef" :model="form">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
@ -67,11 +66,10 @@
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div>
</el-scrollbar> </el-scrollbar>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer p-16"> <span class="dialog-footer">
<el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button> <el-button @click.prevent="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="submit()" :loading="loading"> <el-button type="primary" @click="submit()" :loading="loading">
{{ $t('common.save') }} {{ $t('common.save') }}
@ -91,7 +89,7 @@ const paramFormRef = ref<FormInstance>()
const form = ref<any>({ const form = ref<any>({
top_n: 3, top_n: 3,
similarity: 0, similarity: 0,
max_paragraph_char_number: 5000 max_paragraph_char_number: 5000,
}) })
const dialogVisible = ref<boolean>(false) const dialogVisible = ref<boolean>(false)
@ -102,7 +100,7 @@ watch(dialogVisible, (bool) => {
form.value = { form.value = {
top_n: 3, top_n: 3,
similarity: 0, similarity: 0,
max_paragraph_char_number: 5000 max_paragraph_char_number: 5000,
} }
} }
}) })

View File

@ -1,12 +0,0 @@
import SearchDatasetVue from './index.vue'
import { AppNode, AppNodeModel } from '@/workflow/common/app-node'
class SearchDatasetNode extends AppNode {
constructor(props: any) {
super(props, SearchDatasetVue)
}
}
export default {
type: 'search-dataset-node',
model: AppNodeModel,
view: SearchDatasetNode
}

View File

@ -0,0 +1,12 @@
import SearchKnowledgeVue from './index.vue'
import { AppNode, AppNodeModel } from '@/workflow/common/app-node'
class SearchKnowledgeNode extends AppNode {
constructor(props: any) {
super(props, SearchKnowledgeVue)
}
}
export default {
type: 'search-knowledge-node',
model: AppNodeModel,
view: SearchKnowledgeNode
}

View File

@ -184,15 +184,15 @@ function openDatasetDialog() {
} }
function getDataset() { function getDataset() {
if (id) { // if (id) {
application.asyncGetApplicationKnowledge(id, datasetLoading).then((res: any) => { // application.asyncGetApplicationKnowledge(id, datasetLoading).then((res: any) => {
datasetList.value = res.data // datasetList.value = res.data
}) // })
} else { // } else {
knowledge.asyncGetAllKnowledge(datasetLoading).then((res: any) => { knowledge.asyncGetRootKnowledge(datasetLoading).then((res: any) => {
datasetList.value = res.data?.filter((v: any) => v.user_id === user.userInfo?.id) datasetList.value = res.data?.filter((v: any) => v.user_id === user.userInfo?.id)
}) })
} // }
} }
function refresh() { function refresh() {
getDataset() getDataset()