1. 初始化代码

main
xueqingkun 1 year ago
parent f662e3b1db
commit 159d00a852

1
.gitignore vendored

@ -37,3 +37,4 @@ out/
### VS Code ### ### VS Code ###
.vscode/ .vscode/
/asm-debug/com/supervision/

@ -87,6 +87,12 @@
<artifactId>jgrapht-core</artifactId> <artifactId>jgrapht-core</artifactId>
<version>1.4.0</version> <version>1.4.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.supervision</groupId>
<artifactId>kbqa-model</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>

@ -1,8 +1,10 @@
package com.supervision; package com.supervision;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan(basePackages = {"com.supervision.**.mapper"})
@SpringBootApplication(scanBasePackages = {"com.supervision.**","org.nebula"}) @SpringBootApplication(scanBasePackages = {"com.supervision.**","org.nebula"})
public class KnowledgeGraphApplication { public class KnowledgeGraphApplication {

@ -0,0 +1,40 @@
package com.supervision.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.model.KgInfo;
import com.supervision.qanything.dto.ChatResult;
import com.supervision.service.KGService;
import com.supervision.vo.kg.ChatReqVo;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/kg")
@RequiredArgsConstructor
public class KGController {
private final KGService kgService;
@ApiOperation("问答对话")
@PostMapping("/chat")
public ChatResult chat(@RequestBody ChatReqVo chatReqVo) {
return kgService.chat(chatReqVo.getQuestion());
}
@ApiOperation("问答对话")
@PostMapping("/hotKG")
public IPage<KgInfo> hotKG() {
return kgService.hotKG(new Page<>(1,10));
}
}

@ -21,4 +21,8 @@ public class ResultWrapper<T> {
private String requestId; private String requestId;
private T result; private T result;
public boolean isSuccess() {
return "0".equals(errorCode);
}
} }

@ -0,0 +1,12 @@
package com.supervision.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.model.KgInfo;
import com.supervision.qanything.dto.ChatResult;
public interface KGService {
ChatResult chat(String question);
IPage<KgInfo> hotKG(Page<KgInfo> page);
}

@ -0,0 +1,55 @@
package com.supervision.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.model.KgInfo;
import com.supervision.qanything.QanythingService;
import com.supervision.qanything.dto.ChatResult;
import com.supervision.qanything.dto.ResultWrapper;
import com.supervision.service.KGService;
import com.supervision.service.KgInfoService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.security.NoSuchAlgorithmException;
@Slf4j
@Service
@RequiredArgsConstructor
public class KGServiceImpl implements KGService {
@Value("${youdao.qanthing.kbId}")
private String kbId;
private final QanythingService qanythingService;
private final KgInfoService kgInfoService;
@Override
public ChatResult chat(String question) {
Assert.notEmpty(question, "问题不能为空");
try {
ResultWrapper<ChatResult> chat = qanythingService.chat(question, CollUtil.newArrayList(kbId));
if (chat.isSuccess()){
return chat.getResult();
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
return null;
}
@Override
public IPage<KgInfo> hotKG(Page<KgInfo> page) {
return kgInfoService.lambdaQuery().eq(KgInfo::getHotFlag,1).page(page);
}
}

@ -0,0 +1,9 @@
package com.supervision.vo.kg;
import lombok.Data;
@Data
public class ChatReqVo {
private String question;
}

@ -24,7 +24,7 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
druid: druid:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.10.137:3306/knowledge_report?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8 url: jdbc:mysql://192.168.10.137:3306/sz_hrm?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8
username: root username: root
password: '123456' password: '123456'
initial-size: 5 # 初始化大小 initial-size: 5 # 初始化大小
@ -106,3 +106,4 @@ youdao:
baseUrl: https://openapi.youdao.com baseUrl: https://openapi.youdao.com
appKey: 071053d9bc4b544c appKey: 071053d9bc4b544c
appSecret: nObcggsh0li2eGtyII6XOGtSCo6nFgdD appSecret: nObcggsh0li2eGtyII6XOGtSCo6nFgdD
kbId: KB249d43fdb96f4e1399340b8f95e1baa0_240328

@ -84,7 +84,7 @@ public class YoudaoTest {
@Test @Test
public void qanythingUploadUrlTest() throws NoSuchAlgorithmException { public void qanythingUploadUrlTest() throws NoSuchAlgorithmException {
ResultWrapper<List<UploadResult>> resultWrapper = qanythingService.uploadUrl("KB249d43fdb96f4e1399340b8f95e1baa0_240328","https://blog.csdn.net/kangli_zhang/article/details/131209634"); ResultWrapper<List<UploadResult>> resultWrapper = qanythingService.uploadUrl("KB249d43fdb96f4e1399340b8f95e1baa0_240328","https://blog.csdn.net/zxj20041003/article/details/137551140");
// {"errorCode":"0","msg":"SUCCESS","requestId":"30665c3a-ecc9-44d6-8f85-dc7f38bf3753","result":{"fileId":"96ea740652394b3a991ca336f4a678b2","fileName":"https://blog.csdn.net/kangli_zhang/article/details/131209634","status":"0"}} // {"errorCode":"0","msg":"SUCCESS","requestId":"30665c3a-ecc9-44d6-8f85-dc7f38bf3753","result":{"fileId":"96ea740652394b3a991ca336f4a678b2","fileName":"https://blog.csdn.net/kangli_zhang/article/details/131209634","status":"0"}}
System.out.println(resultWrapper.getResult()); System.out.println(resultWrapper.getResult());

@ -17,4 +17,26 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project> </project>

@ -0,0 +1,18 @@
package com.supervision.mapper;
import com.supervision.model.KgGuide;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Administrator
* @description kg_guide()Mapper
* @createDate 2024-04-15 17:40:13
* @Entity com.supervision.model.KgGuide
*/
public interface KgGuideMapper extends BaseMapper<KgGuide> {
}

@ -0,0 +1,18 @@
package com.supervision.mapper;
import com.supervision.model.KgInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Administrator
* @description kg_info()Mapper
* @createDate 2024-04-15 17:40:13
* @Entity com.supervision.model.KgInfo
*/
public interface KgInfoMapper extends BaseMapper<KgInfo> {
}

@ -0,0 +1,62 @@
package com.supervision.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName kg_guide
*/
@TableName(value ="kg_guide")
@Data
public class KgGuide implements Serializable {
/**
*
*/
@TableId
private String id;
/**
* id
*/
private String kgId;
/**
*
*/
private String titile;
/**
* url
*/
private String url;
/**
* ID
*/
private String createUserId;
/**
*
*/
private Date createTime;
/**
* ID
*/
private String updateUserId;
/**
*
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,82 @@
package com.supervision.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName kg_info
*/
@TableName(value ="kg_info")
@Data
public class KgInfo implements Serializable {
/**
*
*/
@TableId
private String id;
/**
*
*/
private String title;
/**
* 1 2 3
*/
private Integer classify;
/**
* 1: 2
*/
private Integer hotFlag;
/**
* 1 2 3
*/
private Integer contentType;
/**
* url
*/
private String preUrl;
/**
*
*/
private String content;
/**
*
*/
private String policyItem;
/**
* id
*/
private String createUserId;
/**
*
*/
private Date createTime;
/**
* id
*/
private String updateUserId;
/**
*
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,13 @@
package com.supervision.service;
import com.supervision.model.KgGuide;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Administrator
* @description kg_guide()Service
* @createDate 2024-04-15 17:40:13
*/
public interface KgGuideService extends IService<KgGuide> {
}

@ -0,0 +1,13 @@
package com.supervision.service;
import com.supervision.model.KgInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Administrator
* @description kg_info()Service
* @createDate 2024-04-15 17:40:13
*/
public interface KgInfoService extends IService<KgInfo> {
}

@ -0,0 +1,22 @@
package com.supervision.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.KgGuide;
import com.supervision.service.KgGuideService;
import com.supervision.mapper.KgGuideMapper;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description kg_guide()Service
* @createDate 2024-04-15 17:40:13
*/
@Service
public class KgGuideServiceImpl extends ServiceImpl<KgGuideMapper, KgGuide>
implements KgGuideService{
}

@ -0,0 +1,22 @@
package com.supervision.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.KgInfo;
import com.supervision.service.KgInfoService;
import com.supervision.mapper.KgInfoMapper;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description kg_info()Service
* @createDate 2024-04-15 17:40:13
*/
@Service
public class KgInfoServiceImpl extends ServiceImpl<KgInfoMapper, KgInfo>
implements KgInfoService{
}

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.mapper.KgGuideMapper">
<resultMap id="BaseResultMap" type="com.supervision.model.KgGuide">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="kgId" column="kg_id" jdbcType="VARCHAR"/>
<result property="titile" column="titile" jdbcType="VARCHAR"/>
<result property="url" column="url" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,kg_id,titile,
url,create_user_id,create_time,
update_user_id,update_time
</sql>
</mapper>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.mapper.KgInfoMapper">
<resultMap id="BaseResultMap" type="com.supervision.model.KgInfo">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="title" column="title" jdbcType="VARCHAR"/>
<result property="classify" column="classify" jdbcType="INTEGER"/>
<result property="hotFlag" column="hot_flag" jdbcType="INTEGER"/>
<result property="contentType" column="content_type" jdbcType="INTEGER"/>
<result property="preUrl" column="pre_url" jdbcType="VARCHAR"/>
<result property="content" column="content" jdbcType="VARCHAR"/>
<result property="policyItem" column="policy_item" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,title,classify,
content_type,hot_flag,pre_url,content,
policy_item,create_user_id,create_time,
update_user_id,update_time
</sql>
</mapper>
Loading…
Cancel
Save