Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sl-ai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhouwei
sl-ai
Commits
77b29670
Commit
77b29670
authored
Apr 17, 2025
by
zhouwei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
修改和新增新闻标签 See merge request
!6
parents
36a6440c
561080e6
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
82 additions
and
156 deletions
+82
-156
pom.xml
pom.xml
+0
-31
DatasourceConfig.java
...java/com/nanyan/securitylink/config/DatasourceConfig.java
+0
-18
MybatisPlusConfig.java
...ava/com/nanyan/securitylink/config/MybatisPlusConfig.java
+0
-19
WechatMsgMapper.java
.../java/com/nanyan/securitylink/mapper/WechatMsgMapper.java
+0
-9
WechatMsgDO.java
src/main/java/com/nanyan/securitylink/model/WechatMsgDO.java
+0
-20
AIServiceImpl.java
...a/com/nanyan/securitylink/service/impl/AIServiceImpl.java
+82
-59
No files found.
pom.xml
View file @
77b29670
...
...
@@ -155,43 +155,12 @@
<version>
1.19.0
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
<version>
8.0.30
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid-spring-boot-starter
</artifactId>
<version>
1.2.6
</version>
</dependency>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<version>
2.1.4
</version>
</dependency>
<dependency>
<groupId>
software.amazon.awssdk
</groupId>
<artifactId>
s3
</artifactId>
<version>
2.20.0
</version>
</dependency>
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
<version>
3.4.3
</version>
</dependency>
<dependency>
<groupId>
com.github.pagehelper
</groupId>
<artifactId>
pagehelper-spring-boot-starter
</artifactId>
<version>
1.4.1
</version>
</dependency>
<dependency>
<groupId>
io.jsonwebtoken
</groupId>
...
...
src/main/java/com/nanyan/securitylink/config/DatasourceConfig.java
deleted
100644 → 0
View file @
36a6440c
package
com
.
nanyan
.
securitylink
.
config
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.sql.DataSource
;
@Configuration
public
class
DatasourceConfig
{
@Bean
@ConfigurationProperties
(
prefix
=
"spring.datasource.druid"
)
public
DataSource
druidDataSource
()
{
return
new
DruidDataSource
();
}
}
src/main/java/com/nanyan/securitylink/config/MybatisPlusConfig.java
deleted
100644 → 0
View file @
36a6440c
package
com
.
nanyan
.
securitylink
.
config
;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
@Configuration
@MapperScan
(
"com.nanyan.securitylink.mapper"
)
public
class
MybatisPlusConfig
{
@Bean
public
MybatisPlusInterceptor
mybatisPlusInterceptor
()
{
MybatisPlusInterceptor
interceptor
=
new
MybatisPlusInterceptor
();
// 添加分页插件
interceptor
.
addInnerInterceptor
(
new
PaginationInnerInterceptor
());
return
interceptor
;
}
}
src/main/java/com/nanyan/securitylink/mapper/WechatMsgMapper.java
deleted
100644 → 0
View file @
36a6440c
package
com
.
nanyan
.
securitylink
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.nanyan.securitylink.model.WechatMsgDO
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
WechatMsgMapper
extends
BaseMapper
<
WechatMsgDO
>
{
}
src/main/java/com/nanyan/securitylink/model/WechatMsgDO.java
deleted
100644 → 0
View file @
36a6440c
package
com
.
nanyan
.
securitylink
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@TableName
(
"wechat_msg"
)
public
class
WechatMsgDO
{
@TableId
(
type
=
IdType
.
AUTO
)
Integer
id
;
String
msg
;
//状态 0:未发送 1:发送
Integer
status
;
Date
createTime
;
Date
updateTime
;
}
src/main/java/com/nanyan/securitylink/service/impl/AIServiceImpl.java
View file @
77b29670
...
...
@@ -40,39 +40,68 @@ public class AIServiceImpl implements AIService {
private
static
final
Map
<
String
,
String
>
NATURAL_DISASTER_LABEL_MAP
=
new
HashMap
<>();
static
{
NEWS_LABEL_MAP
.
put
(
"枪击"
,
"TagShooting"
);
NEWS_LABEL_MAP
.
put
(
"抢劫"
,
"TagRobbery"
);
NEWS_LABEL_MAP
.
put
(
"爆炸"
,
"TagExplosion"
);
NEWS_LABEL_MAP
.
put
(
"恐怖袭击"
,
"TagTerroristAttack"
);
NEWS_LABEL_MAP
.
put
(
"纵火"
,
"TagArson"
);
NEWS_LABEL_MAP
.
put
(
"大规模伤亡事件"
,
"TagMassCasualtyIncident"
);
NEWS_LABEL_MAP
.
put
(
"人质事件"
,
"TagHostageSituation"
);
NEWS_LABEL_MAP
.
put
(
"毒气泄漏"
,
"TagToxicGasLeak"
);
NEWS_LABEL_MAP
.
put
(
"生物危害"
,
"TagBiologicalHazard"
);
NEWS_LABEL_MAP
.
put
(
"交通意外"
,
"TagTrafficAccident"
);
NEWS_LABEL_MAP
.
put
(
"建筑物倒塌"
,
"TagBuildingCollapse"
);
NEWS_LABEL_MAP
.
put
(
"食品安全"
,
"TagFoodSafety"
);
NEWS_LABEL_MAP
.
put
(
"社会冲突"
,
"TagSocialConflict"
);
NEWS_LABEL_MAP
.
put
(
"群体性事件"
,
"TagMassGatheringIncident"
);
NEWS_LABEL_MAP
.
put
(
"环境污染"
,
"TagEnvironmentalPollution"
);
NEWS_LABEL_MAP
.
put
(
"重大事故"
,
"TagMajorAccident"
);
NEWS_LABEL_MAP
.
put
(
"抗议示威"
,
"TagProtestDemonstration"
);
NEWS_LABEL_MAP
.
put
(
"集体维权"
,
"TagCollectiveAdvocacy"
);
NEWS_LABEL_MAP
.
put
(
"活动失控骚乱"
,
"TagUncontrolledEventRiot"
);
NEWS_LABEL_MAP
.
put
(
"地域冲突"
,
"TagTerritorialConflict"
);
NEWS_LABEL_MAP
.
put
(
"性别冲突"
,
"TagGenderConflict"
);
NEWS_LABEL_MAP
.
put
(
"宗教冲突"
,
"TagReligiousConflict"
);
NEWS_LABEL_MAP
.
put
(
"民族冲突"
,
"TagEthnicConflict"
);
NEWS_LABEL_MAP
.
put
(
"阶级冲突"
,
"TagClassConflict"
);
NEWS_LABEL_MAP
.
put
(
"食物中毒"
,
"TagFoodPoisoning"
);
NEWS_LABEL_MAP
.
put
(
"公共卫生事件"
,
"PublicHealthEmergency"
);
NEWS_LABEL_MAP
.
put
(
"工业事故"
,
"IndustriaAccident"
);
NEWS_LABEL_MAP
.
put
(
"核事故"
,
"NuclearAccident"
);
NEWS_LABEL_MAP
.
put
(
"矿难"
,
"MiningAccident"
);
NEWS_LABEL_MAP
.
put
(
"游行抗议"
,
"Protest"
);
NEWS_LABEL_MAP
.
put
(
"水坝溃坝"
,
"DamBurst"
);
NEWS_LABEL_MAP
.
put
(
"油轮泄漏"
,
"OilSpill"
);
NEWS_LABEL_MAP
.
put
(
"火灾"
,
"Fire"
);
NEWS_LABEL_MAP
.
put
(
"枪击"
,
"TagShooting"
);
NEWS_LABEL_MAP
.
put
(
"抢劫"
,
"TagRobbery"
);
NEWS_LABEL_MAP
.
put
(
"事故爆炸"
,
"TagExplosion"
);
NEWS_LABEL_MAP
.
put
(
"恐怖袭击"
,
"TagTerroristAttack"
);
NEWS_LABEL_MAP
.
put
(
"纵火"
,
"TagArson"
);
NEWS_LABEL_MAP
.
put
(
"大规模伤亡事件"
,
"TagMassCasualtyIncident"
);
NEWS_LABEL_MAP
.
put
(
"人质事件"
,
"TagHostageSituation"
);
NEWS_LABEL_MAP
.
put
(
"毒气泄漏"
,
"TagToxicGasLeak"
);
NEWS_LABEL_MAP
.
put
(
"生物危害"
,
"TagBiologicalHazard"
);
NEWS_LABEL_MAP
.
put
(
"交通事故"
,
"TagTrafficAccident"
);
NEWS_LABEL_MAP
.
put
(
"建筑物倒塌"
,
"TagBuildingCollapse"
);
NEWS_LABEL_MAP
.
put
(
"食品安全事件"
,
"TagFoodSafety"
);
NEWS_LABEL_MAP
.
put
(
"社会冲突"
,
"TagSocialConflict"
);
NEWS_LABEL_MAP
.
put
(
"群体性事件"
,
"TagMassGatheringIncident"
);
NEWS_LABEL_MAP
.
put
(
"环境污染"
,
"TagEnvironmentalPollution"
);
NEWS_LABEL_MAP
.
put
(
"抗议示威"
,
"TagProtestDemonstration"
);
NEWS_LABEL_MAP
.
put
(
"集体维权"
,
"TagCollectiveAdvocacy"
);
NEWS_LABEL_MAP
.
put
(
"活动失控骚乱"
,
"TagUncontrolledEventRiot"
);
NEWS_LABEL_MAP
.
put
(
"地域冲突"
,
"TagTerritorialConflict"
);
NEWS_LABEL_MAP
.
put
(
"性别冲突"
,
"TagGenderConflict"
);
NEWS_LABEL_MAP
.
put
(
"宗教冲突"
,
"TagReligiousConflict"
);
NEWS_LABEL_MAP
.
put
(
"民族冲突"
,
"TagEthnicConflict"
);
NEWS_LABEL_MAP
.
put
(
"阶级冲突"
,
"TagClassConflict"
);
NEWS_LABEL_MAP
.
put
(
"食物中毒"
,
"TagFoodPoisoning"
);
NEWS_LABEL_MAP
.
put
(
"地震"
,
"TagEarthquake"
);
NEWS_LABEL_MAP
.
put
(
"火山爆发"
,
"TagVolcanicEruption"
);
NEWS_LABEL_MAP
.
put
(
"山体滑坡"
,
"TagLandslide"
);
NEWS_LABEL_MAP
.
put
(
"泥石流"
,
"TagMudslide"
);
NEWS_LABEL_MAP
.
put
(
"雪崩"
,
"TagAvalanche"
);
NEWS_LABEL_MAP
.
put
(
"水坝决口"
,
"TagDamBreach"
);
NEWS_LABEL_MAP
.
put
(
"水坝溃坝"
,
"TagDamBurst"
);
NEWS_LABEL_MAP
.
put
(
"台风/飓风"
,
"TagTyphoonHurricane"
);
NEWS_LABEL_MAP
.
put
(
"龙卷风"
,
"TagTornadoWarning"
);
NEWS_LABEL_MAP
.
put
(
"暴雨"
,
"TagRainstorm"
);
NEWS_LABEL_MAP
.
put
(
"洪水"
,
"TagFlood"
);
NEWS_LABEL_MAP
.
put
(
"寒潮"
,
"TagColdWave"
);
NEWS_LABEL_MAP
.
put
(
"高温热浪"
,
"TagHeatWave"
);
NEWS_LABEL_MAP
.
put
(
"干旱"
,
"TagDrought"
);
NEWS_LABEL_MAP
.
put
(
"沙尘暴"
,
"TagDustStorm"
);
NEWS_LABEL_MAP
.
put
(
"冻雨"
,
"TagFreezingRain"
);
NEWS_LABEL_MAP
.
put
(
"冰雹"
,
"TagHail"
);
NEWS_LABEL_MAP
.
put
(
"雷暴"
,
"TagThunderstormWarning"
);
NEWS_LABEL_MAP
.
put
(
"大风"
,
"TagHighWind"
);
NEWS_LABEL_MAP
.
put
(
"山林火灾"
,
"TagForestFire"
);
NEWS_LABEL_MAP
.
put
(
"冰川融化"
,
"TagGlacialMelting"
);
NEWS_LABEL_MAP
.
put
(
"海啸"
,
"TagTsunami"
);
NEWS_LABEL_MAP
.
put
(
"霾"
,
"TagHazeWarning"
);
NEWS_LABEL_MAP
.
put
(
"化学品泄漏"
,
"TagChemicalSpill"
);
NEWS_LABEL_MAP
.
put
(
"核事故"
,
"TagNuclearAccident"
);
NEWS_LABEL_MAP
.
put
(
"矿难"
,
"TagMiningAccident"
);
NEWS_LABEL_MAP
.
put
(
"油轮泄漏"
,
"TagOilSpill"
);
NEWS_LABEL_MAP
.
put
(
"火灾"
,
"TagFire"
);
NEWS_LABEL_MAP
.
put
(
"工业污染"
,
"TagIndustrialPollution"
);
NEWS_LABEL_MAP
.
put
(
"工业事故"
,
"TagIndustriaAccident"
);
NEWS_LABEL_MAP
.
put
(
"传染病爆发"
,
"TagDiseaseOutbreak"
);
NEWS_LABEL_MAP
.
put
(
"公共卫生事件"
,
"TagPublicHealthEmergency"
);
NEWS_LABEL_MAP
.
put
(
"持刀伤人"
,
"TagKnifeAttack"
);
NEWS_LABEL_MAP
.
put
(
"恐怖爆炸"
,
"TerroristBombing"
);
NEWS_LABEL_MAP
.
put
(
"暴力冲突"
,
"TagViolentClashes"
);
NEWS_LABEL_MAP
.
put
(
"战争"
,
"TagWar"
);
NEWS_LABEL_MAP
.
put
(
"游行抗议"
,
"TagProtest"
);
NATURAL_DISASTER_LABEL_MAP
.
put
(
"地震"
,
"earthquake"
);
NATURAL_DISASTER_LABEL_MAP
.
put
(
"火山爆发"
,
"volcanicEruption"
);
...
...
@@ -339,44 +368,38 @@ public class AIServiceImpl implements AIService {
systemRole
.
setRole
(
"system"
);
systemRole
.
setContent
(
"```xml\n"
+
"<instruction>\n"
+
"对
多条新闻内容进行打标签,标签分别为枪击、抢劫、爆炸、恐怖袭击、纵火、大规模伤亡事件、人质事件、毒气泄漏、自然灾害、生物危害、交通意外、建筑物倒塌、食品安全、社会冲突、群体性事件等。请按照以下步骤完成任务:
\n"
+
"对
新闻内容进行标签分类,仅当标签评分达到或超过80分时才应用该标签。可选的标签包括:枪击,抢劫,事故爆炸,恐怖袭击,纵火,大规模伤亡事件,人质事件,毒气泄漏,生物危害,交通事故,建筑物倒塌,食品安全事件,社会冲突,群体性事件,环境污染,抗议示威,集体维权,活动失控骚乱,地域冲突,性别冲突,宗教冲突,民族冲突,阶级冲突,食物中毒,地震,火山爆发,山体滑坡,泥石流,雪崩,水坝决口,水坝溃坝,台风/飓风,龙卷风,暴雨,洪水,寒潮,高温热浪,干旱,沙尘暴,冻雨,冰雹,雷暴,大风,山林火灾,冰川融化,海啸,霾,化学品泄漏,核事故,矿难,油轮泄漏,火灾,工业污染,工业事故,传染病爆发,公共卫生事件,持刀伤人,恐怖爆炸,暴力冲突,战争,游行抗议,其他。
\n"
+
"\n"
+
"1. 仔细阅读每条新闻内容,理解其核心事件。\n"
+
"2. 根据新闻描述的事件类型,从给定的标签列表中选择最匹配的一个或多个标签。\n"
+
"3. 确保标签与新闻内容高度相关,避免主观臆断。\n"
+
"4. 如果新闻内容涉及多个事件类型,可以分配多个标签,但需确保每个标签都准确反映新闻内容。\n"
+
"5. 输出结果时,仅列出标签名称,不要包含任何XML标签或其他无关内容。\n"
+
"<instructions>\n"
+
"1. 仔细阅读新闻内容,理解其核心事件和背景。\n"
+
"2. 根据新闻内容,评估每个标签的适用性,并为每个标签打分(0-100分)。\n"
+
"3. 仅选择评分达到或超过80分的标签作为最终标签。\n"
+
"4. 如果新闻内容与任何标签的匹配度均低于80分,则输出“其他”。\n"
+
"5. 确保输出结果不包含任何XML标签,仅列出适用的标签名称,多个标签用逗号分隔。\n"
+
"6. 如果新闻内容涉及多个高评分标签,则按相关性从高到低排序。\n"
+
"\n"
+
"<examples>\n"
+
"<example>\n"
+
"<输入>\n"
+
"\"昨日凌晨,某市一家银行发生持枪抢劫案,歹徒与警方交火后逃离现场,造成两名保安受伤。\"\n"
+
"<输出>\n"
+
"枪击, 抢劫\n"
+
"输入:某市发生一起持枪抢劫银行事件,造成3人死亡,5人受伤。\n"
+
"输出:枪击, 抢劫, 大规模伤亡事件\n"
+
"</example>\n"
+
"\n"
+
"<example>\n"
+
"<输入>\n"
+
"\"今日上午,某化工厂发生毒气泄漏事故,附近居民已被紧急疏散,暂无人员伤亡报告。\"\n"
+
"<输出>\n"
+
"毒气泄漏\n"
+
"输入:某工厂发生化学气体泄漏,导致附近居民出现中毒症状。\n"
+
"输出:毒气泄漏\n"
+
"</example>\n"
+
"\n"
+
"<example>\n"
+
"<输入>\n"
+
"\"近日,某地因征地问题引发大规模抗议活动,数百名民众与警方发生冲突,导致多人受伤。\"\n"
+
"<输出>\n"
+
"社会冲突, 群体性事件\n"
+
"输入:某地区因土地纠纷引发大规模抗议活动,警方与示威者发生冲突。\n"
+
"输出:社会冲突, 群体性事件\n"
+
"</example>\n"
+
"</examples>\n"
+
"\n"
+
"注意事项:\n"
+
"- 标签必须严格从给定的列表中选择,不得自行添加或修改标签名称。\n"
+
"- 如果新闻内容与任何标签都不匹配,则输出\"\"。\n"
+
"- 输出时标签之间用逗号分隔,不要使用编号或项目符号。\n"
+
"- 确保标签的准确性和一致性,避免歧义或模糊分类。\n"
+
"\n"
+
"请严格按照上述要求完成任务,确保输出结果简洁、准确且符合规范。\n"
+
"<note>\n"
+
"1. 标签评分必须严格遵循80分的阈值,低于80分的标签不得使用。\n"
+
"2. 确保标签的准确性和相关性,避免过度标记或遗漏重要标签。\n"
+
"3. 对于模糊或不确定的内容,优先选择最相关的标签,避免猜测。\n"
+
"4. 输出结果必须简洁明了,仅包含适用的标签名称。\n"
+
"</note>\n"
+
"</instruction>\n"
+
"```"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment