Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
event
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
陈世强
event
Commits
c01035b0
提交
c01035b0
authored
8月 20, 2025
作者:
925993793@qq.com
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
定制专题汇总摘要逻辑修改
上级
88b6c9b3
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
85 行增加
和
45 行删除
+85
-45
ExternalController.java
...om/zzsn/event/external/controller/ExternalController.java
+85
-45
没有找到文件。
src/main/java/com/zzsn/event/external/controller/ExternalController.java
浏览文件 @
c01035b0
...
...
@@ -2,6 +2,7 @@ package com.zzsn.event.external.controller;
import
cn.hutool.poi.excel.ExcelReader
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
com.alibaba.fastjson2.JSON
;
import
com.alibaba.fastjson2.JSONArray
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
...
...
@@ -282,7 +283,7 @@ public class ExternalController {
subjectInfoVO
.
setInfoSourceList
(
externalSubjectInfoSourceMapService
.
list
(
queryWrapper
));
try
{
HttpUtil
.
doPost
(
keywordCrawlerUrl
,
JSONObject
.
from
(
subjectInfoVO
),
30000
);
log
.
info
(
"【{}】-通知元搜索采集数据"
,
subjectDetailVO
.
getSubjectName
());
log
.
info
(
"【{}】-通知元搜索采集数据"
,
subjectDetailVO
.
getSubjectName
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -299,52 +300,32 @@ public class ExternalController {
*/
@GetMapping
(
"/gatherSummary"
)
public
Result
<?>
gatherSummary
(
@RequestParam
String
subjectId
,
@RequestParam
String
language
)
{
InfoDataSearchCondition
searchCondition
=
new
InfoDataSearchCondition
();
searchCondition
.
setSubjectId
(
subjectId
);
searchCondition
.
setCategory
(
2
);
searchCondition
.
setColumn
(
"score"
);
searchCondition
.
setPageSize
(
20
);
IPage
<
DisplayInfo
>
pageList
=
informationService
.
subjectPageList
(
searchCondition
);
List
<
DisplayInfo
>
records
=
pageList
.
getRecords
();
if
(
CollectionUtils
.
isNotEmpty
(
records
))
{
JSONObject
params
=
new
JSONObject
();
List
<
JSONObject
>
summaryList
=
new
ArrayList
<>();
records
.
forEach
(
record
->
{
JSONObject
summary
=
new
JSONObject
();
summary
.
put
(
"summary"
,
record
.
getSummary
());
summaryList
.
add
(
summary
);
});
Subject
subject
=
subjectService
.
getById
(
subjectId
);
params
.
put
(
"subject"
,
subject
.
getSubjectName
());
params
.
put
(
"summaryList"
,
summaryList
);
String
languageCN
=
"中文简体"
;
if
(
"zh-CN"
.
equals
(
language
))
{
languageCN
=
"中文简体"
;
}
else
if
(
"en"
.
equals
(
language
))
{
languageCN
=
"英文"
;
}
else
if
(
"ja"
.
equals
(
language
))
{
languageCN
=
"日文"
;
String
key
=
"GATHER_SUMMARY::"
+
subjectId
;
if
(
redisUtil
.
hasKey
(
key
))
{
Object
data
=
redisUtil
.
get
(
key
);
if
(
data
instanceof
Map
)
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
data
;
List
<
String
>
ids
=
JSON
.
parseArray
(
map
.
get
(
"idList"
).
toString
(),
String
.
class
);
InfoDataSearchCondition
searchCondition
=
new
InfoDataSearchCondition
();
searchCondition
.
setSubjectId
(
subjectId
);
searchCondition
.
setCategory
(
2
);
searchCondition
.
setColumn
(
"score"
);
searchCondition
.
setPageSize
(
20
);
IPage
<
DisplayInfo
>
pageList
=
informationService
.
subjectPageList
(
searchCondition
);
List
<
DisplayInfo
>
records
=
pageList
.
getRecords
();
if
(
CollectionUtils
.
isNotEmpty
(
records
))
{
List
<
String
>
idList
=
new
ArrayList
<>();
records
.
forEach
(
record
->
idList
.
add
(
record
.
getId
()));
if
(!
CollectionUtils
.
isEqualCollection
(
idList
,
ids
))
{
Map
<
String
,
Object
>
resultMap
=
generateSummary
(
subjectId
,
records
,
language
);
return
Result
.
OK
(
resultMap
);
}
}
}
String
prompt
=
"将用户上传的多篇资讯摘要文本和主题整合为一段连贯、精炼的综合摘要(约500字)。要求:\n"
+
"1)将输入的json解析,subject是主题,summary是摘要,提炼核心主题与高度共识的关键发现;\n"
+
"2)客观指出存在的分歧点及其原因;\n"
+
"3)简述观点或技术的演进趋势;\n"
+
"4)语言需严谨中性,直接输出整合后的段落,无需分节分段或小标题。\n"
+
"\n"
+
"约束:\n"
+
"1.输出禁止分段\n"
+
"2.必须输出"
+
languageCN
+
"的摘要\n"
+
"\n"
+
"使用示例:\n"
+
"输入:\n"
+
"{\"subject\":\"机器学习可解释性\",\"summaryList\":[{\"summary\":\"提出梯度解释法...验证准确率提升15%\"},{\"summary\":\"对比LIME与SHAP...指出计算效率缺陷\"},{\"summary\":\"医疗领域应用研究...模型透明度不足影响临床采纳\"}]}\n"
+
"输出(示例段落):\n"
+
"多篇关于机器学习可解释性(XAI)的研究聚焦于提升复杂模型透明度。核心共识在于有效解释技术(如梯度解释法、LIME、SHAP)能增强用户信任并提升决策准确率。然而,在方法实用性上存在分歧,部分研究指出主流技术存在显著计算效率缺陷,尤其在资源受限场景;同时,医疗领域应用突显透明度不足是阻碍临床采纳的关键瓶颈。研究趋势显示从开发基础解释方法(如早期梯度法)转向评估实际场景效能及效率优化。当前主要知识缺口在于缺乏统一标准评估解释的可靠性与临床相关性,亟需开发兼顾高效性和领域适配性的XAI解决方案。"
;
String
model
=
llmService
.
model
(
"qwen"
,
"qwen-max-latest"
,
prompt
,
JSONObject
.
toJSONString
(
params
));
redisUtil
.
set
(
"GATHER_SUMMARY::"
+
subjectId
,
model
);
return
Result
.
OK
(
model
);
return
Result
.
OK
(
data
);
}
else
{
return
Result
.
FAIL
(
"没有资讯信息"
);
List
<
DisplayInfo
>
dataList
=
getDataList
(
subjectId
);
return
Result
.
OK
(
generateSummary
(
subjectId
,
dataList
,
language
));
}
}
...
...
@@ -386,4 +367,63 @@ public class ExternalController {
}
return
Result
.
OK
(
data
);
}
private
List
<
DisplayInfo
>
getDataList
(
String
subjectId
){
InfoDataSearchCondition
searchCondition
=
new
InfoDataSearchCondition
();
searchCondition
.
setSubjectId
(
subjectId
);
searchCondition
.
setCategory
(
2
);
searchCondition
.
setColumn
(
"score"
);
searchCondition
.
setPageSize
(
20
);
IPage
<
DisplayInfo
>
pageList
=
informationService
.
subjectPageList
(
searchCondition
);
return
pageList
.
getRecords
();
}
private
Map
<
String
,
Object
>
generateSummary
(
String
subjectId
,
List
<
DisplayInfo
>
records
,
String
language
)
{
Map
<
String
,
Object
>
resultMap
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
records
))
{
JSONObject
params
=
new
JSONObject
();
List
<
String
>
idList
=
new
ArrayList
<>();
List
<
JSONObject
>
summaryList
=
new
ArrayList
<>();
records
.
forEach
(
record
->
{
idList
.
add
(
record
.
getId
());
JSONObject
summary
=
new
JSONObject
();
summary
.
put
(
"summary"
,
record
.
getSummary
());
summaryList
.
add
(
summary
);
});
Subject
subject
=
subjectService
.
getById
(
subjectId
);
params
.
put
(
"subject"
,
subject
.
getSubjectName
());
params
.
put
(
"summaryList"
,
summaryList
);
String
languageCN
=
"中文简体"
;
if
(
"zh-CN"
.
equals
(
language
))
{
languageCN
=
"中文简体"
;
}
else
if
(
"en"
.
equals
(
language
))
{
languageCN
=
"英文"
;
}
else
if
(
"ja"
.
equals
(
language
))
{
languageCN
=
"日文"
;
}
String
prompt
=
"将用户上传的多篇资讯摘要文本和主题整合为一段连贯、精炼的综合摘要(约500字)。要求:\n"
+
"1)将输入的json解析,subject是主题,summary是摘要,提炼核心主题与高度共识的关键发现;\n"
+
"2)客观指出存在的分歧点及其原因;\n"
+
"3)简述观点或技术的演进趋势;\n"
+
"4)语言需严谨中性,直接输出整合后的段落,无需分节分段或小标题。\n"
+
"\n"
+
"约束:\n"
+
"1.输出禁止分段\n"
+
"2.必须输出"
+
languageCN
+
"的摘要\n"
+
"\n"
+
"使用示例:\n"
+
"输入:\n"
+
"{\"subject\":\"机器学习可解释性\",\"summaryList\":[{\"summary\":\"提出梯度解释法...验证准确率提升15%\"},{\"summary\":\"对比LIME与SHAP...指出计算效率缺陷\"},{\"summary\":\"医疗领域应用研究...模型透明度不足影响临床采纳\"}]}\n"
+
"输出(示例段落):\n"
+
"多篇关于机器学习可解释性(XAI)的研究聚焦于提升复杂模型透明度。核心共识在于有效解释技术(如梯度解释法、LIME、SHAP)能增强用户信任并提升决策准确率。然而,在方法实用性上存在分歧,部分研究指出主流技术存在显著计算效率缺陷,尤其在资源受限场景;同时,医疗领域应用突显透明度不足是阻碍临床采纳的关键瓶颈。研究趋势显示从开发基础解释方法(如早期梯度法)转向评估实际场景效能及效率优化。当前主要知识缺口在于缺乏统一标准评估解释的可靠性与临床相关性,亟需开发兼顾高效性和领域适配性的XAI解决方案。"
;
String
model
=
llmService
.
model
(
"qwen"
,
"qwen-max-latest"
,
prompt
,
JSONObject
.
toJSONString
(
params
));
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"idList"
,
idList
);
resultMap
.
put
(
"language"
,
language
);
resultMap
.
put
(
"model"
,
model
);
redisUtil
.
set
(
"GATHER_SUMMARY::"
+
subjectId
,
JSONObject
.
toJSONString
(
resultMap
));
}
return
resultMap
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论