From 185c8f12f558df158f4da5b3f08afcc13b93f931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=98=B1=E8=BE=BE?= Date: Wed, 7 May 2025 17:56:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(knowledge):=20=E6=96=B0=E5=A2=9E=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E4=B8=8A=E4=BC=A0=E9=A2=84=E8=A7=88=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加上传至知识库前的预览页面 - 实现分段设置和预处理规则配置 -增加文档详情和预估块数展示 - 优化预览界面样式,添加面包屑导航- 新增保存并处理功能,支持不同上传模式 --- src/api/generatedApi/embedding.js | 74 ++++ src/assets/sass/renderSass/input.scss | 7 + src/assets/sass/renderSass/radio.scss | 22 +- src/components/RenderMinerU/index.vue | 29 +- src/icons/svg/chart.svg | 1 + src/icons/svg/setting-gear.svg | 4 + src/router/generatedRouter/index.js | 13 + .../detail/components/split/SplitPreview.vue | 27 +- src/views/knowledge/detail/create.vue | 2 - .../knowledge/detail/reviewKnowledge.vue | 341 +++++++++++++++++- 10 files changed, 489 insertions(+), 31 deletions(-) create mode 100644 src/api/generatedApi/embedding.js create mode 100644 src/icons/svg/chart.svg create mode 100644 src/icons/svg/setting-gear.svg diff --git a/src/api/generatedApi/embedding.js b/src/api/generatedApi/embedding.js new file mode 100644 index 0000000..6ff3614 --- /dev/null +++ b/src/api/generatedApi/embedding.js @@ -0,0 +1,74 @@ +import request from '@/assets/js/utils/request' +import getUrl from '@/assets/js/utils/get-url' + +// 上传到知识库 - 预处理文件 +export function preprocessEmbedding(data) { + return request({ + url: getUrl('/datasetDocumentEx/preprocess/embedding'), + method: 'post', + data + }) +} + +// 上传到知识库 - 拆分内容 +export function splitEmbedding(data) { + return request({ + url: getUrl(`/datasetDocumentEx/split/embedding`), + method: 'post', + data + }) +} + +// 上传到知识库 - 题词内容 +export function extractEmbedding(data) { + return request({ + url: getUrl(`/datasetDocumentEx/extract/embedding`), + method: 'post', + data + }) +} + +// 上传到知识库 - 原文件 +export function directEmbedding(data) { + return request({ + url: getUrl(`/datasetDocumentEx/direct/embedding`), + method: 'post', + data + }) +} + +// 分段预览 - 源文件 +export function segmentEstimate(data) { + return request({ + url: getUrl(`/datasetDocumentEx/direct/segment_estimate`), + method: 'post', + data + }) +} + +// 分段预览-预处理文件 +export function preprocessSegmentEstimate(data) { + return request({ + url: getUrl(`/datasetDocumentEx/preprocess/segment_estimate`), + method: 'post', + data + }) +} + +// 分段预览-拆分内容 +export function splitSegmentEstimate(data) { + return request({ + url: getUrl(`/datasetDocumentEx/split/segment_estimate`), + method: 'post', + data + }) +} + +// 分段预览-题词内容 +export function extractSegmentEstimate(data) { + return request({ + url: getUrl(`/datasetDocumentEx/extract/segment_estimate`), + method: 'post', + data + }) +} diff --git a/src/assets/sass/renderSass/input.scss b/src/assets/sass/renderSass/input.scss index d589c5a..34a71ad 100644 --- a/src/assets/sass/renderSass/input.scss +++ b/src/assets/sass/renderSass/input.scss @@ -165,6 +165,13 @@ } } } + & .el-input { + &.is-focus { + & .el-input__inner { + border-color: $--color-primary; + } + } + } } .el-select-dropdown__item { diff --git a/src/assets/sass/renderSass/radio.scss b/src/assets/sass/renderSass/radio.scss index bb9a003..a9e02cb 100644 --- a/src/assets/sass/renderSass/radio.scss +++ b/src/assets/sass/renderSass/radio.scss @@ -1,4 +1,5 @@ -.el-radio__inner { +.el-radio__inner, +.el-checkbox__inner { border-radius: 4px; width: 14px; height: 14px; @@ -6,12 +7,16 @@ border-color: $--color-primary; } } -.el-radio__input { + +.el-radio__input, +.el-checkbox__input { &.is-checked { - & + .el-radio__label { + & + .el-radio__label, + & + .el-checkbox__label { color: $--color-primary; } - .el-radio__inner { + .el-radio__inner, + .el-checkbox__inner { background: #fff; border-color: $--color-primary; &:after { @@ -19,9 +24,18 @@ width: 7px; height: 7px; border-radius: 1px; + left: 50%; + top: 50%; + border: unset; + transform: translate(-50%, -50%) scale(1); } } } + &.is-focus { + & .el-checkbox__inner { + border-color: $--color-primary; + } + } } .el-switch { & .el-switch__core { diff --git a/src/components/RenderMinerU/index.vue b/src/components/RenderMinerU/index.vue index 8f0e672..736be10 100644 --- a/src/components/RenderMinerU/index.vue +++ b/src/components/RenderMinerU/index.vue @@ -288,18 +288,27 @@ export default { methods: { // 上传文档到知识库 uploadKnowledge() { - preprocessEmbedding({ documentId: this.documentId }).then(res => { - if (res) { - this.$message.success('上传成功') - this.$router.push({ - path: '/knowledge/detail/segments', - query: { - documentId: this.documentId, - datasetId: this.$route.query.datasetId - } - }) + this.$router.push({ + path: '/knowledge/reviewKnowledge', + query: { + documentId: this.documentId, + datasetId: this.$route.query.datasetId, + active: '1' } }) + + // preprocessEmbedding({ documentId: this.documentId }).then(res => { + // if (res) { + // this.$message.success('上传成功') + // this.$router.push({ + // path: '/knowledge/detail/segments', + // query: { + // documentId: this.documentId, + // datasetId: this.$route.query.datasetId + // } + // }) + // } + // }) }, //changePage // 分页发生改变时 diff --git a/src/icons/svg/chart.svg b/src/icons/svg/chart.svg new file mode 100644 index 0000000..a4c554b --- /dev/null +++ b/src/icons/svg/chart.svg @@ -0,0 +1 @@ + diff --git a/src/icons/svg/setting-gear.svg b/src/icons/svg/setting-gear.svg new file mode 100644 index 0000000..c782caa --- /dev/null +++ b/src/icons/svg/setting-gear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/router/generatedRouter/index.js b/src/router/generatedRouter/index.js index 0fcdd0c..7e2b900 100644 --- a/src/router/generatedRouter/index.js +++ b/src/router/generatedRouter/index.js @@ -99,6 +99,18 @@ export default [ icon: 'el-icon-s-home' } }, + + { + path: '/knowledge/reviewKnowledge', + name: 'knowledge-review-knowledge', + component: () => + import('@/views/knowledge/detail/reviewKnowledge.vue'), + meta: { + title: '直接上传至知识库', + icon: 'el-icon-s-home' + } + }, + { path: '/knowledge/detail/segments', name: 'knowledge-segments', @@ -235,6 +247,7 @@ export default [ } ] }, + { path: '/intelligentAgent', name: 'intelligentAgent', diff --git a/src/views/knowledge/detail/components/split/SplitPreview.vue b/src/views/knowledge/detail/components/split/SplitPreview.vue index ea72171..da0fa9d 100644 --- a/src/views/knowledge/detail/components/split/SplitPreview.vue +++ b/src/views/knowledge/detail/components/split/SplitPreview.vue @@ -74,17 +74,26 @@ export default { }, methods: { emitKnowledgeDataset() { - embedding({ documentId: this.documentId }).then(res => { - if (res) { - this.$router.push({ - path: '/knowledge/detail/segments', - query: { - documentId: this.documentId, - datasetId: this.$route.query.datasetId - } - }) + this.$router.push({ + path: '/knowledge/reviewKnowledge', + query: { + documentId: this.documentId, + datasetId: this.$route.query.datasetId, + active: '2' } }) + + // embedding({ documentId: this.documentId }).then(res => { + // if (res) { + // this.$router.push({ + // path: '/knowledge/detail/segments', + // query: { + // documentId: this.documentId, + // datasetId: this.$route.query.datasetId + // } + // }) + // } + // }) }, handleNodeClick() {}, handleClose() { diff --git a/src/views/knowledge/detail/create.vue b/src/views/knowledge/detail/create.vue index 8b07b4c..d6175db 100644 --- a/src/views/knowledge/detail/create.vue +++ b/src/views/knowledge/detail/create.vue @@ -199,7 +199,6 @@ export default { }, created() {}, mounted() { - console.log(123123) let { documentId, datasetId, activeLevel, isMd } = this.$route.query if (documentId) { this.documentId = documentId @@ -217,7 +216,6 @@ export default { case 1: setTimeout(() => { if (isMd) { - console.log(this.$refs.splitConfig) this.$refs.splitConfig.previewOperation(documentId) } }, 1000) diff --git a/src/views/knowledge/detail/reviewKnowledge.vue b/src/views/knowledge/detail/reviewKnowledge.vue index 77c1310..ecf1afd 100644 --- a/src/views/knowledge/detail/reviewKnowledge.vue +++ b/src/views/knowledge/detail/reviewKnowledge.vue @@ -1,9 +1,153 @@ - +