mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-08 02:16:49 +08:00
将知识挖掘从主流程里独立出来
This commit is contained in:
@@ -28,6 +28,15 @@ export function extractEmbedding(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 上传到知识库 - 拆分和题词内容
|
||||
export function splitAndExtractEmbedding(data) {
|
||||
return request({
|
||||
url: getUrl(`/datasetDocumentEx/splitAndExtract/embedding`),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 上传到知识库 - 原文件
|
||||
export function directEmbedding(data) {
|
||||
return request({
|
||||
@@ -72,3 +81,12 @@ export function extractSegmentEstimate(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 分段预览-拆分和题词题词内容
|
||||
export function splitAndExtractSegmentEstimate(data) {
|
||||
return request({
|
||||
url: getUrl(`/datasetDocumentEx/splitAndExtract/segment_estimate`),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import config from '@/config'
|
||||
import urlMap from '@/config/urlMap'
|
||||
export default function getUrl(url, domainType = 'admin') {
|
||||
export default function getUrl(url, domainType = 'jifen') {
|
||||
let domain = ''
|
||||
// if (domainType === 'admin') {
|
||||
// domain = config.admin
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
let envInfo = process.env
|
||||
let [admin, jifen, zixi, hz] = [
|
||||
envInfo.VUE_APP_ADMIN,
|
||||
'http://192.168.8.58:7196/',
|
||||
'http://192.168.8.65:7196/',
|
||||
'http://192.168.8.165:7196/',
|
||||
'http://10.147.17.161:7196/'
|
||||
]
|
||||
|
||||
@@ -1,124 +1,129 @@
|
||||
import layout from '@/views/app/layout/layout.vue'
|
||||
import redirect from '@/views/app/redirect/index.vue'
|
||||
const home = () => import('@/views/app/Home')
|
||||
import layout from "@/views/app/layout/layout.vue";
|
||||
import redirect from "@/views/app/redirect/index.vue";
|
||||
|
||||
const home = () => import("@/views/app/Home");
|
||||
|
||||
export default [
|
||||
{
|
||||
path: '/',
|
||||
path: "/",
|
||||
component: layout,
|
||||
redirect: '/home',
|
||||
name: 'home',
|
||||
redirect: "/home",
|
||||
name: "home",
|
||||
meta: {
|
||||
title: '主页',
|
||||
icon: 'icon-zhuye',
|
||||
title: "主页",
|
||||
icon: "icon-zhuye",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/home',
|
||||
name: 'home-page',
|
||||
path: "/home",
|
||||
name: "home-page",
|
||||
component: home,
|
||||
meta: {
|
||||
title: '主页',
|
||||
icon: 'icon-zhuye'
|
||||
title: "主页",
|
||||
icon: "icon-zhuye"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/knowledge',
|
||||
name: 'knowledge',
|
||||
path: "/knowledge",
|
||||
name: "knowledge",
|
||||
component: layout,
|
||||
redirect: '/knowledge/list',
|
||||
redirect: "/knowledge/list",
|
||||
meta: {
|
||||
title: 'AI知识库',
|
||||
icon: 'el-icon-s-home',
|
||||
title: "AI知识库",
|
||||
icon: "el-icon-s-home",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/knowledge/list',
|
||||
name: 'knowledge-list',
|
||||
path: "/knowledge/list",
|
||||
name: "knowledge-list",
|
||||
component: redirect,
|
||||
// redirect: '/knowledge/list',
|
||||
meta: {
|
||||
title: '知识库',
|
||||
icon: 'icon-dengpao1',
|
||||
title: "知识库",
|
||||
icon: "icon-dengpao1",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/knowledge/list',
|
||||
name: 'knowledge-home',
|
||||
component: () => import('@/views/knowledge/index.vue'),
|
||||
path: "/knowledge/list",
|
||||
name: "knowledge-home",
|
||||
component: () => import("@/views/knowledge/index.vue"),
|
||||
meta: {
|
||||
breadcrumb: false,
|
||||
title: '知识库',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "知识库",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/knowledge/detail',
|
||||
name: 'knowledge-detail',
|
||||
path: "/knowledge/detail",
|
||||
name: "knowledge-detail",
|
||||
component: redirect,
|
||||
redirect: '/knowledge/detail',
|
||||
redirect: "/knowledge/detail",
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: '知识库详情',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "知识库详情",
|
||||
icon: "el-icon-s-home"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/knowledge/knowledge-create',
|
||||
name: 'knowledge-create',
|
||||
path: "/knowledge/knowledge-create",
|
||||
name: "knowledge-create",
|
||||
component: () =>
|
||||
import('@/views/knowledge/detail/components/knowledgeForm.vue'),
|
||||
import("@/views/knowledge/detail/components/knowledgeForm.vue"),
|
||||
meta: {
|
||||
breadcrumb: false,
|
||||
title: '知识库详情',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "知识库详情",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: '/knowledge/detail',
|
||||
name: 'knowledge-detail-page',
|
||||
component: () => import('@/views/knowledge/detail/index.vue'),
|
||||
path: "/knowledge/detail",
|
||||
name: "knowledge-detail-page",
|
||||
component: () => import("@/views/knowledge/detail/index.vue"),
|
||||
meta: {
|
||||
breadcrumb: false,
|
||||
title: '知识库详情',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "知识库详情",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/knowledge/detail/create',
|
||||
name: 'knowledge-create-page',
|
||||
component: () => import('@/views/knowledge/detail/create.vue'),
|
||||
path: "/knowledge/detail/create",
|
||||
name: "knowledge-create-page",
|
||||
component: () => import("@/views/knowledge/detail/create.vue"),
|
||||
meta: {
|
||||
title: '知识库新增',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "知识库新增",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/knowledge/detail/customWord",
|
||||
name: "custom-word",
|
||||
component: () => import("@/views/knowledge/detail/components/words/WordIndex.vue")
|
||||
},
|
||||
{
|
||||
path: "/knowledge/reviewKnowledge",
|
||||
name: "knowledge-review-knowledge",
|
||||
component: () =>
|
||||
import("@/views/knowledge/detail/reviewKnowledge.vue"),
|
||||
meta: {
|
||||
title: "直接上传至知识库",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: '/knowledge/reviewKnowledge',
|
||||
name: 'knowledge-review-knowledge',
|
||||
path: "/knowledge/detail/segments",
|
||||
name: "knowledge-segments",
|
||||
component: () =>
|
||||
import('@/views/knowledge/detail/reviewKnowledge.vue'),
|
||||
import("@/views/knowledge/detail/components/viewSegments/index.vue"),
|
||||
meta: {
|
||||
title: '直接上传至知识库',
|
||||
icon: 'el-icon-s-home'
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: '/knowledge/detail/segments',
|
||||
name: 'knowledge-segments',
|
||||
component: () =>
|
||||
import('@/views/knowledge/detail/components/viewSegments/index.vue'),
|
||||
meta: {
|
||||
title: '分段查看',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "分段查看",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -126,58 +131,58 @@ export default [
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/knowledge/track',
|
||||
name: 'knowledge-track',
|
||||
path: "/knowledge/track",
|
||||
name: "knowledge-track",
|
||||
component: redirect,
|
||||
redirect: '/knowledge/track',
|
||||
redirect: "/knowledge/track",
|
||||
meta: {
|
||||
title: '任务轨迹',
|
||||
icon: 'icon-dingwei',
|
||||
title: "任务轨迹",
|
||||
icon: "icon-dingwei",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/knowledge/track',
|
||||
name: 'track-page',
|
||||
component: () => import('@/views/track/Index.vue'),
|
||||
path: "/knowledge/track",
|
||||
name: "track-page",
|
||||
component: () => import("@/views/track/Index.vue"),
|
||||
|
||||
meta: {
|
||||
breadcrumb: false,
|
||||
title: '任务轨迹',
|
||||
icon: 'icon-dingwei'
|
||||
title: "任务轨迹",
|
||||
icon: "icon-dingwei"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/rules',
|
||||
name: 'rules-page',
|
||||
component: () => import('@/views/rules/Index.vue'),
|
||||
path: "/rules",
|
||||
name: "rules-page",
|
||||
component: () => import("@/views/rules/Index.vue"),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: '规则管理',
|
||||
title: "规则管理",
|
||||
|
||||
icon: 'el-icon-s-home'
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/knowledge/rule',
|
||||
name: 'knowledge-rule',
|
||||
path: "/knowledge/rule",
|
||||
name: "knowledge-rule",
|
||||
component: redirect,
|
||||
redirect: '/knowledge/rule',
|
||||
redirect: "/knowledge/rule",
|
||||
meta: {
|
||||
title: '规则管理',
|
||||
icon: 'icon-guizeshezhi',
|
||||
title: "规则管理",
|
||||
icon: "icon-guizeshezhi",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/knowledge/rule',
|
||||
name: 'rule-page',
|
||||
component: () => import('@/views/rules/Index.vue'),
|
||||
path: "/knowledge/rule",
|
||||
name: "rule-page",
|
||||
component: () => import("@/views/rules/Index.vue"),
|
||||
meta: {
|
||||
title: '规则管理',
|
||||
icon: 'el-icon-s-home'
|
||||
title: "规则管理",
|
||||
icon: "el-icon-s-home"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -186,103 +191,103 @@ export default [
|
||||
},
|
||||
// 智能体详情
|
||||
{
|
||||
path: '/agent',
|
||||
name: 'agent',
|
||||
path: "/agent",
|
||||
name: "agent",
|
||||
component: layout,
|
||||
redirect: '/agent/:thirdAppId/workflow',
|
||||
redirect: "/agent/:thirdAppId/workflow",
|
||||
meta: {
|
||||
title: '智能体',
|
||||
icon: 'icon-notebook',
|
||||
title: "智能体",
|
||||
icon: "icon-notebook",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/agent/:thirdAppId/workflow',
|
||||
name: 'agent-workflow',
|
||||
component: () => import('@/views/agent/views/workflow/index.vue'),
|
||||
path: "/agent/:thirdAppId/workflow",
|
||||
name: "agent-workflow",
|
||||
component: () => import("@/views/agent/views/workflow/index.vue"),
|
||||
meta: {
|
||||
title: 'agent',
|
||||
icon: 'icon-notebook'
|
||||
title: "agent",
|
||||
icon: "icon-notebook"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/system',
|
||||
name: 'system',
|
||||
path: "/system",
|
||||
name: "system",
|
||||
component: layout,
|
||||
redirect: '/system/user',
|
||||
redirect: "/system/user",
|
||||
meta: {
|
||||
title: '系统管理',
|
||||
icon: 'el-icon-setting',
|
||||
title: "系统管理",
|
||||
icon: "el-icon-setting",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/system/user',
|
||||
name: 'system-user',
|
||||
component: () => import('@/views/system/user/index.vue'),
|
||||
path: "/system/user",
|
||||
name: "system-user",
|
||||
component: () => import("@/views/system/user/index.vue"),
|
||||
meta: {
|
||||
title: '用户管理',
|
||||
icon: 'el-icon-user'
|
||||
title: "用户管理",
|
||||
icon: "el-icon-user"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/system/menu',
|
||||
name: 'system-menu',
|
||||
component: () => import('@/views/system/menu/index.vue'),
|
||||
path: "/system/menu",
|
||||
name: "system-menu",
|
||||
component: () => import("@/views/system/menu/index.vue"),
|
||||
meta: {
|
||||
title: '菜单管理',
|
||||
icon: 'el-icon-s-tools'
|
||||
title: "菜单管理",
|
||||
icon: "el-icon-s-tools"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/system/role',
|
||||
name: 'system-role',
|
||||
component: () => import('@/views/system/role/index.vue'),
|
||||
path: "/system/role",
|
||||
name: "system-role",
|
||||
component: () => import("@/views/system/role/index.vue"),
|
||||
meta: {
|
||||
title: '角色管理',
|
||||
icon: 'el-icon-s-custom'
|
||||
title: "角色管理",
|
||||
icon: "el-icon-s-custom"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
path: '/intelligentAgent',
|
||||
name: 'intelligentAgent',
|
||||
path: "/intelligentAgent",
|
||||
name: "intelligentAgent",
|
||||
component: layout,
|
||||
redirect: '/intelligentAgent/list',
|
||||
redirect: "/intelligentAgent/list",
|
||||
meta: {
|
||||
title: 'AI智能体',
|
||||
icon: 'icon-notebook',
|
||||
title: "AI智能体",
|
||||
icon: "icon-notebook",
|
||||
affix: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: '/intelligentAgent/list',
|
||||
name: 'intelligentAgent-list',
|
||||
component: () => import('@/views/intelligent-agent/index.vue'),
|
||||
path: "/intelligentAgent/list",
|
||||
name: "intelligentAgent-list",
|
||||
component: () => import("@/views/intelligent-agent/index.vue"),
|
||||
meta: {
|
||||
title: 'AI智能体',
|
||||
icon: 'icon-notebook',
|
||||
accessToken: '',
|
||||
refreshToken: ''
|
||||
title: "AI智能体",
|
||||
icon: "icon-notebook",
|
||||
accessToken: "",
|
||||
refreshToken: ""
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/intelligentAgent/logs-overview',
|
||||
name: 'intelligentAgent-logs-overview',
|
||||
path: "/intelligentAgent/logs-overview",
|
||||
name: "intelligentAgent-logs-overview",
|
||||
component: () =>
|
||||
import('@/views/intelligent-agent/children/Logs&overview/index.vue'),
|
||||
import("@/views/intelligent-agent/children/Logs&overview/index.vue"),
|
||||
hidden: true,
|
||||
meta: {
|
||||
title: '日志与监测',
|
||||
icon: 'icon-notebook',
|
||||
accessToken: '',
|
||||
refreshToken: ''
|
||||
title: "日志与监测",
|
||||
icon: "icon-notebook",
|
||||
accessToken: "",
|
||||
refreshToken: ""
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
];
|
||||
|
||||
@@ -1,89 +1,116 @@
|
||||
<template>
|
||||
<div class="splitConfig mt20">
|
||||
<ul class="flex">
|
||||
<!-- 自动题词 -->
|
||||
<li
|
||||
class="flex"
|
||||
:class="activeIndex === index ? 'active' : ''"
|
||||
v-for="(item, index) in splitOptions"
|
||||
:key="index"
|
||||
@click="handleClick(index)"
|
||||
>
|
||||
<div>
|
||||
<svg
|
||||
v-if="index === 0"
|
||||
t="1744335709188"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2464"
|
||||
width="32"
|
||||
height="32"
|
||||
>
|
||||
<path
|
||||
d="M933.868272 511.691752a140.807706 140.807706 0 0 1 90.131728-131.067068 525.562914 525.562914 0 0 0-57.334136-138.64997 139.882962 139.882962 0 0 1-184.948826-184.948826A525.562914 525.562914 0 0 0 643.067068 0a140.376159 140.376159 0 0 1-262.134136 0A525.562914 525.562914 0 0 0 242.282962 57.334136a139.882962 139.882962 0 0 1-184.948826 184.948826A506.698134 506.698134 0 0 0 0 380.932932a140.376159 140.376159 0 0 1 0 262.134136 525.562914 525.562914 0 0 0 57.334136 138.64997 139.882962 139.882962 0 0 1 184.948826 184.948826 525.562914 525.562914 0 0 0 138.64997 57.334136 140.376159 140.376159 0 0 1 262.134136 0 525.562914 525.562914 0 0 0 138.64997-57.334136 139.882962 139.882962 0 0 1 184.948826-184.948826 506.698134 506.698134 0 0 0 57.334136-138.64997A140.807706 140.807706 0 0 1 933.868272 511.691752zM511.691752 652.437809A140.437809 140.437809 0 1 1 652.437809 511.691752 140.499458 140.499458 0 0 1 511.691752 652.437809z"
|
||||
fill="#1D85ED"
|
||||
p-id="2465"
|
||||
></path>
|
||||
</svg>
|
||||
<svg
|
||||
v-if="index === 1"
|
||||
t="1744335834635"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="7994"
|
||||
width="32"
|
||||
height="32"
|
||||
>
|
||||
<path
|
||||
d="M746 181.1c10.3 0 19.4 6.1 23.3 15.6l1 2.3 1.2 2.2 110.4 210c2.9 8.6 0.9 18.3-5.3 25l-0.6 0.7-0.6 0.7-344.5 401.9c-6.4 6.7-14.1 7.7-18.2 7.7s-11.7-1-18.2-7.7L150.1 437.6l-0.6-0.7-0.6-0.7c-6.2-6.8-8.2-16.4-5.3-25l110.4-210 1.2-2.2 1-2.3c3.9-9.5 13.1-15.6 23.3-15.6H746m0-54.6H279.4c-32.3 0-61.4 19.5-73.8 49.3L93.8 388.7c-11.9 28.7-6 61.6 14.9 84.4l345.2 402.7c15.8 17.3 37.3 25.9 58.9 25.9 21.5 0 43-8.6 58.9-25.9l345.2-402.7c20.9-22.9 26.8-55.8 14.9-84.4l-112-212.9c-12.3-29.8-41.5-49.3-73.8-49.3z"
|
||||
p-id="7995"
|
||||
fill="#d81e06"
|
||||
></path>
|
||||
<path
|
||||
d="M513.9 524.6c-19.1 0-37.5-8.1-50.4-22.2l-97.7-106.7c-10.2-11.1-9.4-28.4 1.7-38.5 11.1-10.2 28.4-9.4 38.5 1.7l97.7 106.7c3.6 3.9 7.9 4.5 10.2 4.5 2.3 0 6.6-0.6 10.2-4.5l95.5-104.2c10.2-11.1 27.4-11.9 38.5-1.7 11.1 10.2 11.9 27.4 1.7 38.5l-95.5 104.2c-13 14.1-31.3 22.2-50.4 22.2z"
|
||||
p-id="7996"
|
||||
fill="#d81e06"
|
||||
></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="block">
|
||||
<h3>{{ item.title }}</h3>
|
||||
<p class="tips">{{ item.description }}</p>
|
||||
<p v-if="item.tip" class="tips">{{ item.tip }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 弹窗组件 -->
|
||||
<custom-split-dialog class="active" ref="customTable">
|
||||
</custom-split-dialog>
|
||||
<div class='splitConfig mt20'>
|
||||
<div v-if='!isRedig && digRes.length'>
|
||||
<div class='preview-content'>
|
||||
<template v-if='digRes && digRes.length > 0'>
|
||||
<r-table
|
||||
:columns='columns'
|
||||
:data='digRes'
|
||||
:deletion='false'
|
||||
></r-table>
|
||||
</template>
|
||||
<el-empty
|
||||
v-else-if='!extractResults || extractResults.length === 0'
|
||||
description='暂无题词结果'
|
||||
></el-empty>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<ul class='flex'>
|
||||
<!-- 自动题词 -->
|
||||
<li
|
||||
class='flex'
|
||||
:class="activeIndex === index ? 'active' : ''"
|
||||
v-for='(item, index) in splitOptions'
|
||||
:key='index'
|
||||
@click='handleClick(index)'
|
||||
>
|
||||
<div>
|
||||
<svg
|
||||
v-if='index === 0'
|
||||
t='1744335709188'
|
||||
class='icon'
|
||||
viewBox='0 0 1024 1024'
|
||||
version='1.1'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
p-id='2464'
|
||||
width='32'
|
||||
height='32'
|
||||
>
|
||||
<path
|
||||
d='M933.868272 511.691752a140.807706 140.807706 0 0 1 90.131728-131.067068 525.562914 525.562914 0 0 0-57.334136-138.64997 139.882962 139.882962 0 0 1-184.948826-184.948826A525.562914 525.562914 0 0 0 643.067068 0a140.376159 140.376159 0 0 1-262.134136 0A525.562914 525.562914 0 0 0 242.282962 57.334136a139.882962 139.882962 0 0 1-184.948826 184.948826A506.698134 506.698134 0 0 0 0 380.932932a140.376159 140.376159 0 0 1 0 262.134136 525.562914 525.562914 0 0 0 57.334136 138.64997 139.882962 139.882962 0 0 1 184.948826 184.948826 525.562914 525.562914 0 0 0 138.64997 57.334136 140.376159 140.376159 0 0 1 262.134136 0 525.562914 525.562914 0 0 0 138.64997-57.334136 139.882962 139.882962 0 0 1 184.948826-184.948826 506.698134 506.698134 0 0 0 57.334136-138.64997A140.807706 140.807706 0 0 1 933.868272 511.691752zM511.691752 652.437809A140.437809 140.437809 0 1 1 652.437809 511.691752 140.499458 140.499458 0 0 1 511.691752 652.437809z'
|
||||
fill='#1D85ED'
|
||||
p-id='2465'
|
||||
></path>
|
||||
</svg>
|
||||
<svg
|
||||
v-if='index === 1'
|
||||
t='1744335834635'
|
||||
class='icon'
|
||||
viewBox='0 0 1024 1024'
|
||||
version='1.1'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
p-id='7994'
|
||||
width='32'
|
||||
height='32'
|
||||
>
|
||||
<path
|
||||
d='M746 181.1c10.3 0 19.4 6.1 23.3 15.6l1 2.3 1.2 2.2 110.4 210c2.9 8.6 0.9 18.3-5.3 25l-0.6 0.7-0.6 0.7-344.5 401.9c-6.4 6.7-14.1 7.7-18.2 7.7s-11.7-1-18.2-7.7L150.1 437.6l-0.6-0.7-0.6-0.7c-6.2-6.8-8.2-16.4-5.3-25l110.4-210 1.2-2.2 1-2.3c3.9-9.5 13.1-15.6 23.3-15.6H746m0-54.6H279.4c-32.3 0-61.4 19.5-73.8 49.3L93.8 388.7c-11.9 28.7-6 61.6 14.9 84.4l345.2 402.7c15.8 17.3 37.3 25.9 58.9 25.9 21.5 0 43-8.6 58.9-25.9l345.2-402.7c20.9-22.9 26.8-55.8 14.9-84.4l-112-212.9c-12.3-29.8-41.5-49.3-73.8-49.3z'
|
||||
p-id='7995'
|
||||
fill='#d81e06'
|
||||
></path>
|
||||
<path
|
||||
d='M513.9 524.6c-19.1 0-37.5-8.1-50.4-22.2l-97.7-106.7c-10.2-11.1-9.4-28.4 1.7-38.5 11.1-10.2 28.4-9.4 38.5 1.7l97.7 106.7c3.6 3.9 7.9 4.5 10.2 4.5 2.3 0 6.6-0.6 10.2-4.5l95.5-104.2c10.2-11.1 27.4-11.9 38.5-1.7 11.1 10.2 11.9 27.4 1.7 38.5l-95.5 104.2c-13 14.1-31.3 22.2-50.4 22.2z'
|
||||
p-id='7996'
|
||||
fill='#d81e06'
|
||||
></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class='block'>
|
||||
<h3>{{ item.title }}</h3>
|
||||
<p class='tips'>{{ item.description }}</p>
|
||||
<p v-if='item.tip' class='tips'>{{ item.tip }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 弹窗组件 -->
|
||||
<custom-split-dialog class='active' ref='customTable'>
|
||||
</custom-split-dialog>
|
||||
|
||||
<!-- 添加题词预览组件 -->
|
||||
<extract-preview
|
||||
:visible.sync="previewVisible"
|
||||
:extract-results="extractResults"
|
||||
:is-auto-extract="activeIndex === 0"
|
||||
:loading="previewLoading"
|
||||
:documentList="documentList"
|
||||
@confirm="handlePreviewConfirm"
|
||||
/>
|
||||
<!-- 添加题词预览组件 -->
|
||||
<extract-preview
|
||||
style='z-index: 2010'
|
||||
:visible.sync='previewVisible'
|
||||
:extract-results='extractResults'
|
||||
:is-auto-extract='activeIndex === 0'
|
||||
:loading='previewLoading'
|
||||
:documentList='documentList'
|
||||
@confirm='handlePreviewConfirm'
|
||||
/>
|
||||
|
||||
</div>
|
||||
<div class='card-bottom text-right mt10'>
|
||||
<el-button size='medium' @click='redig'>重新挖掘</el-button>
|
||||
<el-button
|
||||
type='primary'
|
||||
size='medium'
|
||||
@click='nextStep(documentExtractId)'
|
||||
>确定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CustomSplitDialog from './CustomWords.vue'
|
||||
import ExtractPreview from './ExtractPreview.vue'
|
||||
import CustomSplitDialog from "./CustomWords.vue";
|
||||
import ExtractPreview from "./ExtractPreview.vue";
|
||||
import {
|
||||
execExtract,
|
||||
getExtractResultList,
|
||||
saveContentToDocument
|
||||
} from '@/api/generatedApi'
|
||||
} from "@/api/generatedApi";
|
||||
|
||||
export default {
|
||||
name: 'splitConfig',
|
||||
name: "splitConfig",
|
||||
components: {
|
||||
CustomSplitDialog,
|
||||
ExtractPreview
|
||||
@@ -97,38 +124,45 @@ export default {
|
||||
previewLoading: false,
|
||||
splitOptions: [
|
||||
{
|
||||
icon: 'el-icon-setting',
|
||||
title: '自动题词',
|
||||
icon: "el-icon-setting",
|
||||
title: "立即挖掘",
|
||||
description:
|
||||
'使用系统默认的题词方式,适合新手或紧急任务,直接使用系统预设题词规则处理文本。',
|
||||
tip: '提示:首次使用时建议先用自动题词测试效果,再决定是否调整。'
|
||||
"使用系统默认的题词方式,适合新手或紧急任务,直接使用系统预设题词规则处理文本。",
|
||||
tip: "提示:首次使用时建议先用自动题词测试效果,再决定是否调整。"
|
||||
},
|
||||
{
|
||||
icon: 'el-icon-medal',
|
||||
title: '自定义题词',
|
||||
icon: "el-icon-medal",
|
||||
title: "自定义规则",
|
||||
description:
|
||||
'使用自定义题词方式可以根据具体需求灵活调整文本分割逻辑。',
|
||||
tip: '但需要权衡灵活性与复杂度,需要用户具备一定的题词经验。'
|
||||
"使用自定义题词方式可以根据具体需求灵活调整文本分割逻辑。",
|
||||
tip: "但需要权衡灵活性与复杂度,需要用户具备一定的题词经验。"
|
||||
}
|
||||
],
|
||||
documentId: ''
|
||||
}
|
||||
isRedig: false,
|
||||
// 题词结果
|
||||
digRes: [],
|
||||
documentId: ""
|
||||
};
|
||||
},
|
||||
props: {
|
||||
documentList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
documentExtractId: {
|
||||
type: String,
|
||||
default: () => ""
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
filters: {},
|
||||
methods: {
|
||||
handleClick(index) {
|
||||
this.activeIndex = index
|
||||
this.activeIndex = index;
|
||||
if (index === 1) {
|
||||
this.$refs.customTable.init()
|
||||
this.$refs.customTable.init();
|
||||
} else {
|
||||
this.$refs.customTable.close()
|
||||
this.$refs.customTable.close();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -137,67 +171,67 @@ export default {
|
||||
let params = {
|
||||
documentId: documentId,
|
||||
beAuto: this.activeIndex === 0
|
||||
}
|
||||
let splitDocIds = documentId.split(',')
|
||||
};
|
||||
let splitDocIds = documentId.split(",");
|
||||
if (splitDocIds.length > 1) {
|
||||
params.documentId = undefined
|
||||
params.documentIds = splitDocIds
|
||||
params.documentId = undefined;
|
||||
params.documentIds = splitDocIds;
|
||||
}
|
||||
|
||||
if (!params.beAuto && this.$refs.customTable.ruleId) {
|
||||
params.rulesId = this.$refs.customTable.ruleId
|
||||
params.rulesId = this.$refs.customTable.ruleId;
|
||||
}
|
||||
|
||||
return params
|
||||
return params;
|
||||
},
|
||||
|
||||
// 执行题词操作
|
||||
async execExtractOperation(params) {
|
||||
if (!params.beAuto && !params.rulesId) {
|
||||
this.$message.error('请勾选数据')
|
||||
return false
|
||||
this.$message.error("请勾选数据");
|
||||
return false;
|
||||
}
|
||||
const res = await execExtract(params)
|
||||
if (res.content.result !== '0') {
|
||||
throw new Error(res.content.resultMessage || '执行题词失败')
|
||||
const res = await execExtract(params);
|
||||
if (res.content.result !== "0") {
|
||||
throw new Error(res.content.resultMessage || "执行题词失败");
|
||||
}
|
||||
|
||||
return res.content.content
|
||||
return res.content.content;
|
||||
},
|
||||
|
||||
// 显示预览
|
||||
showExtractPreview(results) {
|
||||
this.extractResults = results || []
|
||||
this.previewVisible = true
|
||||
this.extractResults = results || [];
|
||||
this.previewVisible = true;
|
||||
},
|
||||
|
||||
// 获取题词结果列表 - 修改后的方法
|
||||
async getExtractResultOperation(documentId) {
|
||||
if (documentId) {
|
||||
this.documentId = documentId
|
||||
this.documentId = this.documentExtractId;
|
||||
}
|
||||
this.previewLoading = true
|
||||
const params = { documentId }
|
||||
const res = await getExtractResultList(params)
|
||||
if (res.content.result !== '0') {
|
||||
throw new Error(res.content.resultMessage || '获取题词结果失败')
|
||||
// this.previewLoading = true
|
||||
const params = { documentId: this.documentExtractId };
|
||||
const res = await getExtractResultList(params);
|
||||
if (res.content.result !== "0") {
|
||||
throw new Error(res.content.resultMessage || "获取题词结果失败");
|
||||
}
|
||||
|
||||
const results = res.content.content || []
|
||||
this.digRes = res.content.content || [];
|
||||
|
||||
// 显示预览弹窗
|
||||
this.showExtractPreview(results)
|
||||
// this.showExtractPreview(results)
|
||||
},
|
||||
// 处理预览确认
|
||||
handlePreviewConfirm(extractResults) {
|
||||
this.$router.push({
|
||||
path: '/knowledge/reviewKnowledge',
|
||||
path: "/knowledge/reviewKnowledge",
|
||||
query: {
|
||||
documentId: this.documentId,
|
||||
datasetId: this.$route.query.datasetId,
|
||||
active: '3'
|
||||
active: "3"
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
// this.saveContentToDocumentOperation(this.documentId, extractResults)
|
||||
},
|
||||
@@ -210,55 +244,99 @@ export default {
|
||||
attribute: item.attribute,
|
||||
attributeContent: item.attributeContent
|
||||
}))
|
||||
}
|
||||
const res = await saveContentToDocument(params)
|
||||
};
|
||||
const res = await saveContentToDocument(params);
|
||||
// 使用 push 的方式返回,防止出现页面异常跳转的问题
|
||||
// this.$router.go(-1)
|
||||
this.$router.push({
|
||||
path: '/knowledge/detail',
|
||||
path: "/knowledge/detail",
|
||||
query: { ...this.$route.query }
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
// 主方法
|
||||
nextStep(documentId) {
|
||||
this.documentId = documentId
|
||||
async nextStep(documentId) {
|
||||
this.documentId = documentId;
|
||||
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
// 1. 执行题词
|
||||
const params = this.buildExecExtractParams(documentId)
|
||||
this.execExtractOperation(params).then(async res => {
|
||||
if (res) {
|
||||
// await this.getExtractResultOperation(documentId)
|
||||
// 显示预览弹窗
|
||||
this.showExtractPreview(res)
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('题词操作失败:', error)
|
||||
reject({
|
||||
success: false,
|
||||
message: error.message || '题词操作失败'
|
||||
})
|
||||
this.$router.push({
|
||||
path: "/knowledge/detail/create",
|
||||
query: {
|
||||
...this.$route.query,
|
||||
documentId: this.documentId,
|
||||
activeLevel: this.isRedig ? 1 : 2
|
||||
}
|
||||
})
|
||||
});
|
||||
// return new Promise(async (resolve, reject) => {
|
||||
// try {
|
||||
// // 1. 执行题词
|
||||
// const params = this.buildExecExtractParams(documentId)
|
||||
// this.execExtractOperation(params).then(async res => {
|
||||
// if (res) {
|
||||
// await this.getExtractResultOperation(documentId)
|
||||
// // 显示预览弹窗
|
||||
// // this.showExtractPreview(res)
|
||||
// }
|
||||
// })
|
||||
// } catch (error) {
|
||||
// console.error('题词操作失败:', error)
|
||||
// reject({
|
||||
// success: false,
|
||||
// message: error.message || '题词操作失败'
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
},
|
||||
redig() {
|
||||
this.isRedig = !this.isRedig;
|
||||
}
|
||||
},
|
||||
created() {},
|
||||
mounted() {},
|
||||
computed: {}
|
||||
}
|
||||
created() {
|
||||
this.getExtractResultOperation();
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
computed: {
|
||||
columns: vm => {
|
||||
return [
|
||||
{
|
||||
prop: "attribute",
|
||||
label: "属性",
|
||||
width: 90
|
||||
},
|
||||
{
|
||||
prop: "attributeContent",
|
||||
label: "题词内容",
|
||||
render: (h, p) => {
|
||||
return h("el-input", {
|
||||
props: {
|
||||
value: p.row.attributeContent,
|
||||
size: "medium",
|
||||
disabled: !vm.isEdit
|
||||
},
|
||||
on: {
|
||||
input: value => {
|
||||
p.row.attributeContent = value;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
<style scoped lang='scss'>
|
||||
@import '@/assets/sass/renderSass/theme.scss';
|
||||
|
||||
.splitConfig {
|
||||
.title {
|
||||
font-size: 20px;
|
||||
margin: 10px 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding: 10px;
|
||||
@@ -276,17 +354,21 @@ export default {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.block {
|
||||
margin-left: 20px;
|
||||
|
||||
h3 {
|
||||
margin-bottom: 20px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.tips {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
border: 1px solid var(--color-primary);
|
||||
//background: #fefefe;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<div class="icon-text" v-else>2</div>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="题词拆分配置">
|
||||
<el-step title="直接上传至知识库">
|
||||
<template slot="icon">
|
||||
<div class="icon-text" v-if="active === 2">STEP3</div>
|
||||
<div class="icon-text" v-else>3</div>
|
||||
@@ -64,15 +64,22 @@
|
||||
@handleReUpload="handleReUpload"
|
||||
:documentId="documentId"
|
||||
></step-split-config>
|
||||
<step-words
|
||||
ref="words"
|
||||
<!-- <step-words-->
|
||||
<!-- ref="words"-->
|
||||
<!-- v-if="active === 2"-->
|
||||
<!-- :documentList="this.documentList"-->
|
||||
<!-- ></step-words>-->
|
||||
<review-knowledge
|
||||
:documentId="documentId"
|
||||
ref="reviewKnowledge"
|
||||
v-if="active === 2"
|
||||
:documentList="this.documentList"
|
||||
></step-words>
|
||||
>
|
||||
</review-knowledge>
|
||||
</transition>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-bottom text-right">
|
||||
<div class="card-bottom text-right" v-if="active < 2">
|
||||
<el-button size="medium" @click="$router.history.go(-1)">取消</el-button>
|
||||
<el-button size="medium" @click="active--" v-if="active > 1"
|
||||
>上一步</el-button
|
||||
@@ -127,6 +134,8 @@ import SplitConfig from '@/views/knowledge/detail/components/split/Index.vue'
|
||||
import Words from '@/views/knowledge/detail/components/words/Index.vue'
|
||||
import magic from '@/assets/images/konwledge/magic.png'
|
||||
import { datasetDocumentEx, directEmbedding } from '@/api/generatedApi'
|
||||
import ReviewKnowledge from '@/views/knowledge/detail/reviewKnowledge.vue'
|
||||
import router from '@/router'
|
||||
// import StepC
|
||||
export default {
|
||||
name: 'create',
|
||||
@@ -143,6 +152,7 @@ export default {
|
||||
props: {},
|
||||
watch: {},
|
||||
components: {
|
||||
ReviewKnowledge,
|
||||
StepSplitConfig: SplitConfig,
|
||||
StepPreprocessing,
|
||||
StepWords: Words
|
||||
@@ -219,6 +229,7 @@ export default {
|
||||
},
|
||||
|
||||
async nextStep() {
|
||||
this.updateRouteParams()
|
||||
if (this.active === 0) {
|
||||
this.$refs.stepPreProcessing.uploadFiled()
|
||||
} else if (this.active === 1) {
|
||||
@@ -227,6 +238,15 @@ export default {
|
||||
await this.$refs.words.nextStep(this.documentId)
|
||||
}
|
||||
},
|
||||
updateRouteParams() {
|
||||
this.$router.replace({
|
||||
query: {
|
||||
...this.$route.query, // 保留当前所有查询参数
|
||||
documentId: this.documentId, // 修改你需要的参数
|
||||
active: this.active
|
||||
}
|
||||
})
|
||||
},
|
||||
// 预览完成
|
||||
handlePreviewConfirm() {
|
||||
this.active = 2
|
||||
@@ -253,6 +273,7 @@ export default {
|
||||
this.documentId = documentId
|
||||
await this.getDocumentId(documentId)
|
||||
}
|
||||
// TODO case 2 控制台报错 Cannot read properties of undefined (reading 'getExtractResultOperation'
|
||||
if (activeLevel !== undefined) {
|
||||
this.active = Number(activeLevel)
|
||||
switch (this.active) {
|
||||
|
||||
@@ -256,6 +256,20 @@
|
||||
</el-drawer>
|
||||
<!--检索设置弹窗-->
|
||||
<search-setting ref="searchSetting"></search-setting>
|
||||
<!--知识挖掘抽屉-->
|
||||
<el-drawer
|
||||
:title="knowledgeMiningDrawer.title"
|
||||
:visible.sync="knowledgeMiningDrawer.visible"
|
||||
size="45%"
|
||||
:wrapperClosable="false"
|
||||
>
|
||||
<words
|
||||
ref="words"
|
||||
@openMetaDrawer="handleMetaData"
|
||||
@close="close"
|
||||
:document-extract-id="documentExtractId"
|
||||
></words>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -281,6 +295,7 @@ import MetaData from '@/views/knowledge/detail/components/metaData/Index.vue'
|
||||
import MetadataOperator from '@/views/knowledge/detail/components/metaData/MetadataOperator.vue'
|
||||
import SearchSetting from '@/views/knowledge/detail/components/SearchSetting/Index.vue'
|
||||
import { displayStatus } from '@/assets/js/utils/utilOptions'
|
||||
import Words from '@/views/knowledge/detail/components/words/Index.vue'
|
||||
export default {
|
||||
name: 'index',
|
||||
// 父子组件共享
|
||||
@@ -306,6 +321,10 @@ export default {
|
||||
title: '标注元数据',
|
||||
visible: false
|
||||
},
|
||||
knowledgeMiningDrawer: {
|
||||
title: '知识挖掘',
|
||||
visible: false
|
||||
},
|
||||
activeName: -1,
|
||||
drawer: false,
|
||||
drawerForm: false,
|
||||
@@ -336,7 +355,8 @@ export default {
|
||||
documentDetail: {
|
||||
splitRules: '',
|
||||
extractRules: ''
|
||||
}
|
||||
},
|
||||
documentExtractId: ''
|
||||
}
|
||||
},
|
||||
props: {},
|
||||
@@ -347,7 +367,8 @@ export default {
|
||||
hitTest,
|
||||
knowledgeForm,
|
||||
DocumentDrawer,
|
||||
MetadataOperator
|
||||
MetadataOperator,
|
||||
Words
|
||||
},
|
||||
methods: {
|
||||
getUserData() {
|
||||
@@ -521,6 +542,18 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 知识挖掘操作
|
||||
handleKnoledgeMining(row) {
|
||||
this.knowledgeMiningDrawer.visible = true
|
||||
this.documentExtractId = row.id
|
||||
// this.$nextTick(() => {
|
||||
// if (this.$refs.metadataOperator) {
|
||||
// // 如果需要初始化或传递数据,可以在这里处理
|
||||
// // 例如传递当前行数据
|
||||
// this.$refs.metadataOperator.init(row.id)
|
||||
// }
|
||||
// })
|
||||
},
|
||||
// 获取文档详细信息(包含分词规则和词频规则)
|
||||
getDocumentExInfo(documentId) {
|
||||
datasetDocumentEx({ documentId })
|
||||
@@ -813,6 +846,24 @@ export default {
|
||||
}
|
||||
// '标注元数据'
|
||||
),
|
||||
params.row.optStatus > 1
|
||||
? h(
|
||||
'el-button',
|
||||
{
|
||||
class: 'floatSpan',
|
||||
props: {
|
||||
type: 'primary',
|
||||
size: 'mini',
|
||||
icon: 'el-icon-cpu',
|
||||
title: '知识挖掘'
|
||||
},
|
||||
on: {
|
||||
click: () => this.handleKnoledgeMining(params.row)
|
||||
}
|
||||
}
|
||||
// '知识挖掘'
|
||||
)
|
||||
: '',
|
||||
params.row.optStatus < 4
|
||||
? h(
|
||||
'el-button',
|
||||
|
||||
@@ -132,6 +132,12 @@
|
||||
</div>
|
||||
|
||||
<div class="buttons text-right">
|
||||
<el-button class="line-button" size="medium" @click="saveUs"
|
||||
>保存并处理拆分内容</el-button
|
||||
>
|
||||
<el-button class="line-button" size="medium" @click="saveUs"
|
||||
>保存并处理题词内容</el-button
|
||||
>
|
||||
<el-button class="line-button" size="medium" @click="saveUs"
|
||||
>保存并处理</el-button
|
||||
>
|
||||
@@ -236,8 +242,8 @@ import {
|
||||
segmentEstimate,
|
||||
preprocessSegmentEstimate,
|
||||
splitSegmentEstimate,
|
||||
extractSegmentEstimate
|
||||
} from '@/api/generatedApi/embedding'
|
||||
extractSegmentEstimate, splitAndExtractEmbedding, splitAndExtractSegmentEstimate
|
||||
} from "@/api/generatedApi/embedding";
|
||||
|
||||
import MarkdownIt from 'markdown-it'
|
||||
import markdownItKatex from 'markdown-it-katex'
|
||||
@@ -313,6 +319,9 @@ export default {
|
||||
case '3':
|
||||
api = extractSegmentEstimate
|
||||
break
|
||||
case '4':
|
||||
api = splitAndExtractSegmentEstimate
|
||||
break
|
||||
}
|
||||
api({
|
||||
documentId: splitDocIds[this.activeIndex],
|
||||
@@ -369,6 +378,9 @@ export default {
|
||||
case '3':
|
||||
api = extractEmbedding
|
||||
break
|
||||
case '4':
|
||||
api = splitAndExtractEmbedding
|
||||
break
|
||||
}
|
||||
|
||||
let params = {
|
||||
|
||||
Reference in New Issue
Block a user