提交 4d76d831 authored 作者: caijian's avatar caijian

生成结论&创建超图..

上级 3df44f93
......@@ -2,10 +2,8 @@ import request from './request'
//创建超图
export const createGraph = async (params) => {
let {
data
} = await request.post('/api/hypergraph/create')
return data
let res = await request.post('/api/hypergraph/create', params)
return res
}
//超图列表
......@@ -42,9 +40,13 @@ export const insertEntityIntoHypergraph = async (params) => {
//实体列表
export const getEntityList = async (params) => {
let url = `/api/entity/search_pagination?page=${params.page}`
if (params.query) {
url += `&query=${params.query}`
}
let {
data
} = await request.get('/api/entity/get_list')
} = await request.get(url)
return data
}
......@@ -66,9 +68,13 @@ export const createItem = async (params) => {
//新闻列表
export const getItemList = async (params) => {
let url = `/api/news/search_pagination?page=${params.page}`
if (params.query) {
url += `&query=${params.query}`
}
let {
data
} = await request.get('/api/news/get_list')
} = await request.get(url)
return data
}
......@@ -253,6 +259,24 @@ export const getEventData = async (params) => {
return data
}
// http://8.140.26.4:10006/tech_hyper/api/analysis/conclude_chart_in_rag?hyper_id=1
export const getChartConclusion = async (params) => {
let data = await request.get('/api/analysis/conclude_chart_in_rag?hyper_id=' + params.hyper_id)
return data
}
//
// http://8.140.26.4:10006/tech_hyper/api/analysis/conclude_event_relation_in_rag?hyper_id=1
export const getEventRelationConclusion = async (params) => {
let data = await request.get('/api/analysis/conclude_event_relation_in_rag?hyper_id=' + params.hyper_id)
return data
}
// http://8.140.26.4:10006/tech_hyper/api/analysis/conclude_matrix_in_rag?hyper_id=1
export const getMatrixConclusion = async (params) => {
let data = await request.get('/api/analysis/conclude_matrix_in_rag?hyper_id=' + params.hyper_id)
return data
}
/**
* 上传文件,后端解析Excel文件
* @param file 文件,表单数据
......
......@@ -9,7 +9,7 @@ const BASE_API = "/"
// 创建axios实例
const service = axios.create({
baseURL: BASE_API, //所有的后端接口请求地址前缀部分(没有后端请求不用写)
timeout: 50000 // 请求超时时间,这里15秒
timeout: 60000*5 // 请求超时时间,这里15秒
//withCredentials: true,// 异步请求携带cookie,true为携带,false为不携带
//请求头里面设置通用传参类型
/*headers: {
......
......@@ -2,7 +2,7 @@ const state = {
// 专题生成--步骤数据
create_graph_form: {},
activeSteps: 0, // 当前
stepList: ["创建专题", "数据导入", "定义关系", "专题生成"],
stepList: ["创建专题", "数据导入", /*"定义关系",*/ "专题生成"],
graph_name: "",
graph_id: "",
maxStepsTotal: 3, // 步骤总条数
......
......@@ -51,7 +51,7 @@
</template>
<script setup>
import { ref, onMounted } from "vue";
import { ref, onMounted, getCurrentInstance } from "vue";
import router from "@/router/index.js";
import { getGraphList } from "@/api/graphApi";
......@@ -62,6 +62,9 @@ import logo3 from "./assets/images/icon3.svg";
import logo4 from "./assets/images/icon4.svg";
import logo5 from "./assets/images/icon5.svg";
const { appContext } = getCurrentInstance();
const globalProxy = appContext.config.globalProperties;
const largeModelList = ref([
// {
// logo: logo1,
......@@ -121,10 +124,11 @@ const handleDelte = (id) => {
// 确认删除
const handleConfirm = () => {
if (id == event_graph_id.value) {
event_graph_id.value = null;
event_graph_name.value = null;
}
// 弹窗提示 暂未支持删除接口
globalProxy.$message.warning("暂未支持删除接口");
return
const deleteIndex = largeModelList.value.findIndex(item => item.id == activeModelId.value);
largeModelList.value.splice(deleteIndex, 1);
// requestDeleteEntityById({
// entity_id: id
// }).then((res) => {
......
......@@ -4,10 +4,10 @@
<div class="conclusions-main-right-content">
<div class="conclusions-main-right-content-title">
<div style="display: flex">
<div class="conclusions-main-right-content-title-span">{{item.title}}</div>
<div class="conclusions-main-right-content-title-span" v-if="item.title">{{item.title}}</div>
</div>
<div class="conclusions-main-right-content-text" :title="item.content">
{{item.content}}
<div class="conclusions-main-right-content-text" :title="item.content" v-if="item.content || item">
{{item.content || item}}
</div>
</div>
</div>
......@@ -33,7 +33,7 @@ let props = defineProps({
<style lang="scss" scoped>
.conclusions-main-right-content-panel {
height: 100%;
height: 95%;
overflow-y: auto;
overflow-x: hidden;
......
......@@ -32,7 +32,7 @@
<div class="conclusionlist-title">
<span>结论</span>
</div>
<ConclusionList :conclusionsArr="conclusionsList" class="conclusion-list"></ConclusionList>
<ConclusionList :conclusionsArr="conclusionsList" class="conclusion-list" v-loading="conclusionLoading" element-loading-background="rgba(0, 0, 0, 0.2)"></ConclusionList>
</div>
<el-button type="primary" class="edit-button" @click="editDataFun()">编辑</el-button>
</div>
......@@ -60,11 +60,12 @@
<DataList :list="newsListChartBubble" class="bubble-datalist"></DataList>
<div class="bottom-button-group">
<el-button type="primary" @click="bubbleDrawing()">气泡图绘制</el-button>
<el-button type="primary" @click="modelScaleAnalysis()">模型规模分析</el-button>
<el-button type="primary" @click="lagAnalysis()">滞后性分析</el-button>
<el-button type="primary" @click="generateConclusionBubble()">生成结论</el-button>
<!-- <el-button type="primary" @click="modelScaleAnalysis()">模型规模分析</el-button>
<el-button type="primary" @click="lagAnalysis()">滞后性分析</el-button> -->
</div>
</div>
<div class="bubble-box">
<div class="bubble-box" v-loading="graphMatrixLoading" element-loading-background="rgba(0, 0, 0, 0.2)">
<div class="bubble-item" v-for="(item,index) in targetList" :key="index">
<div class="info">
<div style="display: flex;flex-direction: column;justify-content: center;height: 10%;">
......@@ -96,11 +97,11 @@
<div class="conclusionlist-title">
<span>模型规模分析结论</span>
</div>
<ConclusionList :conclusionsArr="conListBubble" class="conclusion-list"></ConclusionList>
<div class="conclusionlist-title-bottom">
<ConclusionList :conclusionsArr="conListBubble" class="conclusion-list" v-loading="conclusionBubbleLoading" element-loading-background="rgba(0, 0, 0, 0.2)"></ConclusionList>
<!-- <div class="conclusionlist-title-bottom">
<span>滞后性分析结论</span>
</div>
<ConclusionList :conclusionsArr="conListBubbleBottom" class="conclusion-list-bottom"></ConclusionList>
<ConclusionList :conclusionsArr="conListBubbleBottom" class="conclusion-list-bottom"></ConclusionList> -->
</div>
</div>
......@@ -226,7 +227,10 @@ import {
getMatrixNewsList,
getMatrixData,
getEventNewsList,
getEventData
getEventData,
getChartConclusion,
getEventRelationConclusion,
getMatrixConclusion
} from "@/api/graphApi";
const {
......@@ -1082,22 +1086,48 @@ function curvatureAnalysis(){
}
}
const conclusionLoading = ref(false)
function generateConclusion(){
conclusionsList.value = [{
title: "结论一",
content: "2017年与2023年,国外AI的技术性能均有大幅度提升,2017年全年处于急速上升的状态,但2023年前半年提升较慢,下半年飞速提升,创建了第二次飞速发展的阶段"
},{
title: "结论二",
content: "我国的AI技术,在2018年得到了很大的提升,缩短了与国外AI技术的差距,在2024年我国再一次大幅度提升AI技术,并最终非常拉近了与国外的距离"
},{
title: "结论三",
content: "我国的两次AI技术提升,均晚于国外,说明AI技术提升,我国还是受国外影响较多,但近十年我国整体提升幅度相交国外更明显,处于追赶与拉近距离的地位"
}]
conclusionLoading.value = true;
getChartConclusion({
hyper_id: hyperId.value
}).then((res) => {
if (res.code === 1) {
conclusionsList.value = res.data;
}
conclusionLoading.value = false;
}).catch((err) => {
conclusionLoading.value = false;
})
// conclusionsList.value = [{
// title: "结论一",
// content: "2017年与2023年,国外AI的技术性能均有大幅度提升,2017年全年处于急速上升的状态,但2023年前半年提升较慢,下半年飞速提升,创建了第二次飞速发展的阶段"
// },{
// title: "结论二",
// content: "我国的AI技术,在2018年得到了很大的提升,缩短了与国外AI技术的差距,在2024年我国再一次大幅度提升AI技术,并最终非常拉近了与国外的距离"
// },{
// title: "结论三",
// content: "我国的两次AI技术提升,均晚于国外,说明AI技术提升,我国还是受国外影响较多,但近十年我国整体提升幅度相交国外更明显,处于追赶与拉近距离的地位"
// }]
}
function bubbleDrawing(){
initMatrix();
}
const conclusionBubbleLoading = ref(false);
function generateConclusionBubble(){
conclusionBubbleLoading.value = true;
getMatrixConclusion({
hyper_id: hyperId.value
}).then((res) => {
if (res.code === 1) {
conListBubble.value = res.data;
}
conclusionBubbleLoading.value = false;
}).catch((err) => {
conclusionBubbleLoading.value = false;
})
}
function modelScaleAnalysis(){
conListBubble.value = [{
......@@ -1134,19 +1164,31 @@ function createGraphA(){
}
function generateConclusionG6(){
conListG6.value = [{
title: "结论一",
content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
},{
title: "结论二",
content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
},{
title: "结论三",
content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
}]
conclusionLoading.value = true;
getEventRelationConclusion({
hyper_id: hyperId.value
}).then((res) => {
if (res.code === 1) {
conListG6.value = res.data;
}
conclusionLoading.value = false;
}).catch((err) => {
conclusionLoading.value = false;
})
// conListG6.value = [{
// title: "结论一",
// content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
// },{
// title: "结论二",
// content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
// },{
// title: "结论三",
// content: "人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能人工智能"
// }]
}
const graphMatrixLoading = ref(false);
function initMatrix() {
graphMatrixLoading.value = true;
getMatrixData({ hyper_id: hyperId.value }).then((res) => {
if (res.code === 1 && res.data && res.data.length > 0) {
// 更新数据结构,将title改为event_title以匹配模板
......@@ -1155,7 +1197,9 @@ function initMatrix() {
event_title: item.title
}));
}
graphMatrixLoading.value = false;
}).catch((error) => {
graphMatrixLoading.value = false;
console.error('获取矩阵数据失败:', error);
globalProxy.$message({
type: "error",
......@@ -1234,6 +1278,17 @@ function openRagDialog(tabType) {
function handleRagSubmit(prompt) {
console.log('RAG请求提交:', prompt);
// 这里可以添加额外的处理逻辑
switch(focusBotton.value) {
case "0":
getNewsList();
break;
case "1":
getMatrixNews();
break;
case "2":
getEventNews();
break;
}
}
function superLongTextHandle(str, maxWidth, fontSize) {
......@@ -2011,7 +2066,6 @@ function addArrow(rectCenterX, rectBottomY, minY, arrowEndY, arrowWidth, labelOf
}
.conclusion-list {
height: calc(50% - 60px);
margin-top: 10px;
}
......
......@@ -13,7 +13,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleSubmit">确定</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading">确定</el-button>
</span>
</template>
</el-dialog>
......@@ -58,6 +58,7 @@ const saveUrlMap = {
}
const emit = defineEmits(['update:modelValue', 'submit'])
const loading = ref(false)
const visible = ref(false)
const form = ref({
prompt: ''
......@@ -86,6 +87,7 @@ function handleClose() {
// 获取prompt数据
async function fetchPromptData() {
try {
loading.value = true
const params = {
hyper_id: props.hyperId
}
......@@ -99,6 +101,8 @@ async function fetchPromptData() {
message: '获取prompt数据失败',
type: 'error'
})
} finally {
loading.value = false
}
}
......@@ -117,9 +121,10 @@ async function savePromptData() {
}
}
async function handleSubmit() {
console.log('RAG请求参数:', form.value.prompt)
loading.value = true
if (!form.value.prompt.trim()) {
globalProxy.$message({
message: '请输入prompt内容',
......@@ -129,6 +134,7 @@ async function handleSubmit() {
}
try {
loading.value = true
globalProxy.$message({
message: '正在保存prompt...',
type: 'info'
......@@ -148,6 +154,8 @@ async function handleSubmit() {
message: '保存prompt失败',
type: 'error'
})
} finally {
loading.value = false
}
}
......
......@@ -9,7 +9,7 @@
</el-table-column>
<el-table-column :label="operationLabel" :width="operationMinWidth" :align="operationAlign" v-if="operationLabelShow">
<template v-slot="scope">
<slot></slot>
<slot :row="scope.row" :column="scope.column" :$index="scope.$index"></slot>
</template>
</el-table-column>
</el-table>
......
......@@ -9,9 +9,9 @@
<!-- 数据导入 -->
<ImportDataStep ref="importDataStepRef" :currentStep="activeSteps" v-if="activeSteps == 1" @handleCancelCreate="handleCancelCreate"></ImportDataStep>
<!-- 定义关系 -->
<DefineRelationsStep ref="importDataStepRef" :currentStep="activeSteps" v-if="activeSteps == 2" @handleCancelCreate="handleCancelCreate"></DefineRelationsStep>
<!-- <DefineRelationsStep ref="importDataStepRef" :currentStep="activeSteps" v-if="activeSteps == 2" @handleCancelCreate="handleCancelCreate"></DefineRelationsStep> -->
<!-- 专题生成 -->
<div v-if="activeSteps == 3" class="graph-generation">
<div v-if="activeSteps == 2" class="graph-generation">
<div class="icon-success">
<span class="icon el-icon-success"></span>
<div class="success-tips">创建成功!</div>
......@@ -79,7 +79,7 @@ function toViewGraph() {
// 删除主题
function handleCancelCreate(type) {
// 图谱未创建完成离开删除创建的主题
if (activeSteps.value !== 3) {
if (activeSteps.value !== 2) {
clearCache();
if (type !== "destroy") {
toViewGraph();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论