Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
tech_typer_v2
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
tech_typer_v2
Commits
4d76d831
提交
4d76d831
authored
9月 12, 2025
作者:
caijian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
生成结论&创建超图..
上级
3df44f93
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
143 行增加
和
53 行删除
+143
-53
graphApi.js
src/api/graphApi.js
+30
-6
request.js
src/api/request.js
+1
-1
graph.js
src/store/modules/graph.js
+1
-1
index.vue
src/views/home/index.vue
+9
-5
ConclusionList.vue
src/views/mechanism/component/ConclusionList.vue
+4
-4
MechanismAnalysis.vue
src/views/mechanism/component/MechanismAnalysis.vue
+84
-30
RagDialog.vue
src/views/mechanism/component/RagDialog.vue
+10
-2
TablePagination.vue
src/views/themeList/components/TablePagination.vue
+1
-1
importDataStep.vue
src/views/themeList/createTheme/importDataStep.vue
+0
-0
index.vue
src/views/themeList/createTheme/index.vue
+3
-3
没有找到文件。
src/api/graphApi.js
浏览文件 @
4d76d831
...
...
@@ -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 文件,表单数据
...
...
src/api/request.js
浏览文件 @
4d76d831
...
...
@@ -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: {
...
...
src/store/modules/graph.js
浏览文件 @
4d76d831
...
...
@@ -2,7 +2,7 @@ const state = {
// 专题生成--步骤数据
create_graph_form
:
{},
activeSteps
:
0
,
// 当前
stepList
:
[
"创建专题"
,
"数据导入"
,
"定义关系"
,
"专题生成"
],
stepList
:
[
"创建专题"
,
"数据导入"
,
/*"定义关系",*/
"专题生成"
],
graph_name
:
""
,
graph_id
:
""
,
maxStepsTotal
:
3
,
// 步骤总条数
...
...
src/views/home/index.vue
浏览文件 @
4d76d831
...
...
@@ -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) => {
...
...
src/views/mechanism/component/ConclusionList.vue
浏览文件 @
4d76d831
...
...
@@ -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
;
...
...
src/views/mechanism/component/MechanismAnalysis.vue
浏览文件 @
4d76d831
...
...
@@ -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;
}
...
...
src/views/mechanism/component/RagDialog.vue
浏览文件 @
4d76d831
...
...
@@ -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
}
}
...
...
src/views/themeList/components/TablePagination.vue
浏览文件 @
4d76d831
...
...
@@ -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>
...
...
src/views/themeList/createTheme/importDataStep.vue
浏览文件 @
4d76d831
差异被折叠。
点击展开。
src/views/themeList/createTheme/index.vue
浏览文件 @
4d76d831
...
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论