Commit 2fdb0aae authored by alex yao's avatar alex yao

feat:新增知识库训练

parent cbc9d777
...@@ -107,6 +107,12 @@ ...@@ -107,6 +107,12 @@
<version>8.0.28</version> <version>8.0.28</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<!-- ES --> <!-- ES -->
<dependency> <dependency>
<groupId>org.elasticsearch.client</groupId> <groupId>org.elasticsearch.client</groupId>
...@@ -239,12 +245,21 @@ ...@@ -239,12 +245,21 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>4.1.2</version> <version>4.1.2</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId> <artifactId>log4j-core</artifactId>
...@@ -412,15 +427,15 @@ ...@@ -412,15 +427,15 @@
</plugins> </plugins>
</build> </build>
<repositories> <repositories>
<repository>
<id>aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
<repository> <repository>
<id>yict</id> <id>yict</id>
<name>Nexus ISD</name> <name>Nexus ISD</name>
<url>http://nexus3.gsstcloud.com:8090/nexus/repository/public/</url> <url>http://nexus3.gsstcloud.com:8090/nexus/repository/public/</url>
</repository> </repository>
<repository>
<id>aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories> </repositories>
</project> </project>
package cn.com.poc.common.utils;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.hutool.core.io.FileUtil;
import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
//import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.util.Assert;
import java.io.*;
import java.nio.file.Files;
public class DocumentLoad {
/**
* 读取文档
*
* @param file
* @return
*/
public static String documentToText(File file) {
Assert.notNull(file);
String fileName = FileUtil.getName(file);
String type = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
try {
switch (type) {
case "docx":
return loadWordDocx(file);
case "doc":
return loadWordDocx(file);
case "md":
return loadMarkDown(file);
case "pdf":
return loadPDF(file);
case "txt":
return loadTxt(file);
default:
throw new BusinessException(type + " format is not yet supported");
}
} catch (IOException e) {
throw new BusinessException(e.getMessage());
}
}
public static String loadMarkDown(File file) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
return stringBuilder.toString();
}
public static String loadWordDocx(File file) throws IOException {
XWPFDocument xwpfDocument = new XWPFDocument(Files.newInputStream(file.toPath()));
XWPFWordExtractor xwpfWordExtractor = new XWPFWordExtractor(xwpfDocument);
return xwpfWordExtractor.getText();
}
// public static String loadWordDoc(File file) throws IOException {
// FileInputStream fis = new FileInputStream(file);
// HWPFDocument doc = new HWPFDocument(fis);
// fis.close();
// return doc.getText().toString();
// }
public static String loadTxt(File file) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
return stringBuilder.toString();
}
public static String loadPDF(File file) throws IOException {
PDFParser parser = new PDFParser(new RandomAccessBufferedFileInputStream(file));
parser.parse();
PDDocument doc = parser.getPDDocument();
PDFTextStripper textStripper = new PDFTextStripper();
StringBuilder stringBuilder = new StringBuilder();
textStripper.setStartPage(1);
textStripper.setEndPage(doc.getNumberOfPages());
textStripper.setSortByPosition(true);
stringBuilder.append(textStripper.getText(doc));
doc.close();
return stringBuilder.toString();
}
}
package cn.com.poc.expose.rest;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@Permission(value = Access.Safety)
public interface AgentApplicationRest extends BaseRest {
/**
* 调用 Agent应用
*/
void callAgentApplication(@RequestParam("agentId") String agentId, @RequestBody Object obj);
}
package cn.com.poc.expose.rest.impl;
import cn.com.poc.expose.rest.AgentApplicationRest;
import org.springframework.stereotype.Component;
@Component
public class AgentApplicationRestImpl implements AgentApplicationRest {
@Override
public void callAgentApplication(String agentId, Object obj) {
// 获取流程
// 输入获取
// 数据处理
// 输出返回
}
}
package cn.com.poc.knowledge.aggregate;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
public interface KnowledgeService {
/**
* 上传文档
*
* @param documentFiles 文档
* @return 是否成功
*/
List<BizKnowledgeDocumentEntity> uploadDocument(MultipartFile[] documentFiles) throws Exception;
/**
* 删除文档
*
* @param kdId 主键ID
* @return 是否成功
*/
Boolean delDocument(Integer kdId);
/**
* 重命名
*
* @param kdId
* @param rename
* @return
*/
Boolean renameDocument(Integer kdId, String rename) throws Exception;
/**
* 启用 / 关闭
*/
String enableKnowledge(Integer kdId) throws Exception;
/**
* 开启训练
*/
Boolean trainKnowledge(List<Integer> kdId) throws Exception;
/**
* 获取用户知识库
*/
List<BizKnowledgeDocumentEntity> getList(String search, String trainStatus, PagingInfo pagingInfo) throws Exception;
/**
* 获取用户知识库
*/
List<BizKnowledgeDocumentEntity> getListByKdIds(List<Integer> kdIds);
}
package cn.com.poc.knowledge.constant;
public interface KnowledgeConstant {
interface KnowledgeType { //知识库类型 QA-问答、Base-基础
String QA = "QA";
String BASE = "BASE";
}
interface Owner {//拥有者:System-系统 、User-用户
String SYSTEM = "System";
String USER = "User";
}
interface TrainStatus { //状态:未执行-Unopened、 排队-Line 、训练中-Training、 完成-Complete、失败-Fail
String UNOPENED = "Unopened";
String LINE = "Line";
String TRAINING = "Training";
String COMPLETE = "Complete";
String FAIL = "Fail";
}
interface MemberType {
String CORP = "corp"; //企业用户
String MEMBER = "member"; //微信用户
}
}
package cn.com.poc.knowledge.convert;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.model.BizKnowledgeDocumentModel;
public class KnowledgeDocumentConvert {
public static BizKnowledgeDocumentEntity modelToEntity(BizKnowledgeDocumentModel model) {
BizKnowledgeDocumentEntity bizKnowledgeDocumentEntity = new BizKnowledgeDocumentEntity();
bizKnowledgeDocumentEntity.setKdId(model.getKdId());
bizKnowledgeDocumentEntity.setOwner(model.getOwner());
bizKnowledgeDocumentEntity.setKnowledgeType(model.getKnowledgeType());
bizKnowledgeDocumentEntity.setDocumentName(model.getDocumentName());
bizKnowledgeDocumentEntity.setDocumentUrl(model.getDocumentUrl());
bizKnowledgeDocumentEntity.setCharCount(model.getCharCount());
bizKnowledgeDocumentEntity.setUploadTime(model.getUploadTime());
bizKnowledgeDocumentEntity.setIsEnable(model.getIsEnable());
bizKnowledgeDocumentEntity.setKnowledgeId(model.getKnowledgeId());
bizKnowledgeDocumentEntity.setTrainStatus(model.getTrainStatus());
bizKnowledgeDocumentEntity.setIsDeleted(model.getIsDeleted());
bizKnowledgeDocumentEntity.setCreator(model.getCreator());
bizKnowledgeDocumentEntity.setCreatedTime(model.getCreatedTime());
bizKnowledgeDocumentEntity.setModifier(model.getModifier());
bizKnowledgeDocumentEntity.setModifiedTime(model.getModifiedTime());
bizKnowledgeDocumentEntity.setSysVersion(model.getSysVersion());
return bizKnowledgeDocumentEntity;
}
public static BizKnowledgeDocumentModel entityToModel(BizKnowledgeDocumentEntity entity) {
BizKnowledgeDocumentModel bizKnowledgeDocumentModel = new BizKnowledgeDocumentModel();
bizKnowledgeDocumentModel.setKdId(entity.getKdId());
bizKnowledgeDocumentModel.setOwner(entity.getOwner());
bizKnowledgeDocumentModel.setKnowledgeType(entity.getKnowledgeType());
bizKnowledgeDocumentModel.setDocumentName(entity.getDocumentName());
bizKnowledgeDocumentModel.setDocumentUrl(entity.getDocumentUrl());
bizKnowledgeDocumentModel.setCharCount(entity.getCharCount());
bizKnowledgeDocumentModel.setUploadTime(entity.getUploadTime());
bizKnowledgeDocumentModel.setIsEnable(entity.getIsEnable());
bizKnowledgeDocumentModel.setKnowledgeId(entity.getKnowledgeId());
bizKnowledgeDocumentModel.setTrainStatus(entity.getTrainStatus());
bizKnowledgeDocumentModel.setIsDeleted(entity.getIsDeleted());
bizKnowledgeDocumentModel.setCreator(entity.getCreator());
bizKnowledgeDocumentModel.setCreatedTime(entity.getCreatedTime());
bizKnowledgeDocumentModel.setModifier(entity.getModifier());
bizKnowledgeDocumentModel.setModifiedTime(entity.getModifiedTime());
bizKnowledgeDocumentModel.setSysVersion(entity.getSysVersion());
return bizKnowledgeDocumentModel;
}
}
package cn.com.poc.knowledge.convert;
import cn.com.poc.knowledge.entity.BizKnowledgeTrainLogEntity;
import cn.com.poc.knowledge.model.BizKnowledgeTrainLogModel;
public class KnowledgeTrainLogConvert {
public static BizKnowledgeTrainLogEntity modelToEntity(BizKnowledgeTrainLogModel model) {
BizKnowledgeTrainLogEntity bizKnowledgeTrainLogEntity = new BizKnowledgeTrainLogEntity();
bizKnowledgeTrainLogEntity.setId(model.getId());
bizKnowledgeTrainLogEntity.setKdId(model.getKdId());
bizKnowledgeTrainLogEntity.setTimestamp(model.getTimestamp());
bizKnowledgeTrainLogEntity.setTrainStatus(model.getTrainStatus());
bizKnowledgeTrainLogEntity.setFailureLog(model.getFailureLog());
bizKnowledgeTrainLogEntity.setIsDeleted(model.getIsDeleted());
bizKnowledgeTrainLogEntity.setCreator(model.getCreator());
bizKnowledgeTrainLogEntity.setCreatedTime(model.getCreatedTime());
bizKnowledgeTrainLogEntity.setModifier(model.getModifier());
bizKnowledgeTrainLogEntity.setModifiedTime(model.getModifiedTime());
bizKnowledgeTrainLogEntity.setSysVersion(model.getSysVersion());
return bizKnowledgeTrainLogEntity;
}
public static BizKnowledgeTrainLogModel entityToModel(BizKnowledgeTrainLogEntity entity) {
BizKnowledgeTrainLogModel bizKnowledgeTrainLogModel = new BizKnowledgeTrainLogModel();
bizKnowledgeTrainLogModel.setId(entity.getId());
bizKnowledgeTrainLogModel.setKdId(entity.getKdId());
bizKnowledgeTrainLogModel.setTimestamp(entity.getTimestamp());
bizKnowledgeTrainLogModel.setTrainStatus(entity.getTrainStatus());
bizKnowledgeTrainLogModel.setFailureLog(entity.getFailureLog());
bizKnowledgeTrainLogModel.setIsDeleted(entity.getIsDeleted());
bizKnowledgeTrainLogModel.setCreator(entity.getCreator());
bizKnowledgeTrainLogModel.setCreatedTime(entity.getCreatedTime());
bizKnowledgeTrainLogModel.setModifier(entity.getModifier());
bizKnowledgeTrainLogModel.setModifiedTime(entity.getModifiedTime());
bizKnowledgeTrainLogModel.setSysVersion(entity.getSysVersion());
return bizKnowledgeTrainLogModel;
}
}
package cn.com.poc.knowledge.convert;
import cn.com.poc.knowledge.entity.BizMemberKnowledgeRelationEntity;
import cn.com.poc.knowledge.model.BizMemberKnowledgeRelationModel;
public class MemberKnowledgeRelationConvert {
public static BizMemberKnowledgeRelationEntity modelToEntity(BizMemberKnowledgeRelationModel model) {
BizMemberKnowledgeRelationEntity bizMemberKnowledgeRelationEntity = new BizMemberKnowledgeRelationEntity();
bizMemberKnowledgeRelationEntity.setId(model.getId());
bizMemberKnowledgeRelationEntity.setMemberId(model.getMemberId());
bizMemberKnowledgeRelationEntity.setMemberType(model.getMemberType());
bizMemberKnowledgeRelationEntity.setKdId(model.getKdId());
bizMemberKnowledgeRelationEntity.setIsDeleted(model.getIsDeleted());
bizMemberKnowledgeRelationEntity.setCreator(model.getCreator());
bizMemberKnowledgeRelationEntity.setCreatedTime(model.getCreatedTime());
bizMemberKnowledgeRelationEntity.setModifier(model.getModifier());
bizMemberKnowledgeRelationEntity.setModifiedTime(model.getModifiedTime());
bizMemberKnowledgeRelationEntity.setSysVersion(model.getSysVersion());
return bizMemberKnowledgeRelationEntity;
}
public static BizMemberKnowledgeRelationModel entityToModel(BizMemberKnowledgeRelationEntity entity) {
BizMemberKnowledgeRelationModel bizMemberKnowledgeRelationModel = new BizMemberKnowledgeRelationModel();
bizMemberKnowledgeRelationModel.setId(entity.getId());
bizMemberKnowledgeRelationModel.setMemberId(entity.getMemberId());
bizMemberKnowledgeRelationModel.setMemberType(entity.getMemberType());
bizMemberKnowledgeRelationModel.setKdId(entity.getKdId());
bizMemberKnowledgeRelationModel.setIsDeleted(entity.getIsDeleted());
bizMemberKnowledgeRelationModel.setCreator(entity.getCreator());
bizMemberKnowledgeRelationModel.setCreatedTime(entity.getCreatedTime());
bizMemberKnowledgeRelationModel.setModifier(entity.getModifier());
bizMemberKnowledgeRelationModel.setModifiedTime(entity.getModifiedTime());
bizMemberKnowledgeRelationModel.setSysVersion(entity.getSysVersion());
return bizMemberKnowledgeRelationModel;
}
}
package cn.com.poc.knowledge.dto;
/**
* Model class for biz_knowledge_document
* 知识库文件表
*/
public class BizKnowledgeDocumentDto {
/** kd_id
*主键
*/
private Integer kdId;
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
/** owner
*拥有者:System-系统 、User-用户
*/
private String owner;
public String getOwner(){
return this.owner;
}
public void setOwner(String owner){
this.owner = owner;
}
/** knowledge_type
*知识库类型 QA-问答、Base-基础
*/
private String knowledgeType;
public String getKnowledgeType(){
return this.knowledgeType;
}
public void setKnowledgeType(String knowledgeType){
this.knowledgeType = knowledgeType;
}
/** document_name
*文档名
*/
private String documentName;
public String getDocumentName(){
return this.documentName;
}
public void setDocumentName(String documentName){
this.documentName = documentName;
}
/** document_url
*文件下载地址
*/
private String documentUrl;
public String getDocumentUrl(){
return this.documentUrl;
}
public void setDocumentUrl(String documentUrl){
this.documentUrl = documentUrl;
}
/** char_count
*文档字符数
*/
private Long charCount;
public Long getCharCount(){
return this.charCount;
}
public void setCharCount(Long charCount){
this.charCount = charCount;
}
/** upload_time
*上传时间
*/
private java.util.Date uploadTime;
public java.util.Date getUploadTime(){
return this.uploadTime;
}
public void setUploadTime(java.util.Date uploadTime){
this.uploadTime = uploadTime;
}
/** is_enable
*是否启用 N-不启用 Y-启用
*/
private String isEnable;
public String getIsEnable(){
return this.isEnable;
}
public void setIsEnable(String isEnable){
this.isEnable = isEnable;
}
/** knowledge_id
*中台知识库ID
*/
private String knowledgeId;
public String getKnowledgeId(){
return this.knowledgeId;
}
public void setKnowledgeId(String knowledgeId){
this.knowledgeId = knowledgeId;
}
/** train_status
*状态:未执行-Unopened、 排队-Line 、训练中-Training、 完成-Complete、失败-Fail
*/
private String trainStatus;
public String getTrainStatus(){
return this.trainStatus;
}
public void setTrainStatus(String trainStatus){
this.trainStatus = trainStatus;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.dto;
/**
* Model class for biz_member_knowledge_relation
* 用户-知识库关联
*/
public class BizMemberKnowledgeRelationDto {
/** id
*主键
*/
private Integer id;
public Integer getId(){
return this.id;
}
public void setId(Integer id){
this.id = id;
}
/** member_id
*aigc用户关联ID
*/
private String memberId;
public String getMemberId(){
return this.memberId;
}
public void setMemberId(String memberId){
this.memberId = memberId;
}
/** member_type
*用户类型 corp-企业 member-用户
*/
private String memberType;
public String getMemberType(){
return this.memberType;
}
public void setMemberType(String memberType){
this.memberType = memberType;
}
/** kd_id
*知识库ID
*/
private Integer kdId;
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private String isDeleted;
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private String creator;
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private String modifier;
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private Integer sysVersion;
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.entity;
/**
* Model class for biz_knowledge_document
* 知识库文件表
*/
public class BizKnowledgeDocumentEntity{
/** kd_id
*主键
*/
private Integer kdId;
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
/** owner
*拥有者:System-系统 、User-用户
*/
private String owner;
public String getOwner(){
return this.owner;
}
public void setOwner(String owner){
this.owner = owner;
}
/** knowledge_type
*知识库类型 QA-问答、Base-基础
*/
private String knowledgeType;
public String getKnowledgeType(){
return this.knowledgeType;
}
public void setKnowledgeType(String knowledgeType){
this.knowledgeType = knowledgeType;
}
/** document_name
*文档名
*/
private String documentName;
public String getDocumentName(){
return this.documentName;
}
public void setDocumentName(String documentName){
this.documentName = documentName;
}
/** document_url
*文件下载地址
*/
private String documentUrl;
public String getDocumentUrl(){
return this.documentUrl;
}
public void setDocumentUrl(String documentUrl){
this.documentUrl = documentUrl;
}
/** char_count
*文档字符数
*/
private Long charCount;
public Long getCharCount(){
return this.charCount;
}
public void setCharCount(Long charCount){
this.charCount = charCount;
}
/** upload_time
*上传时间
*/
private java.util.Date uploadTime;
public java.util.Date getUploadTime(){
return this.uploadTime;
}
public void setUploadTime(java.util.Date uploadTime){
this.uploadTime = uploadTime;
}
/** is_enable
*是否启用 N-不启用 Y-启用
*/
private String isEnable;
public String getIsEnable(){
return this.isEnable;
}
public void setIsEnable(String isEnable){
this.isEnable = isEnable;
}
/** knowledge_id
*中台知识库ID
*/
private String knowledgeId;
public String getKnowledgeId(){
return this.knowledgeId;
}
public void setKnowledgeId(String knowledgeId){
this.knowledgeId = knowledgeId;
}
/** train_status
*状态:未执行-Unopened、 排队-Line 、训练中-Training、 完成-Complete、失败-Fail
*/
private String trainStatus;
public String getTrainStatus(){
return this.trainStatus;
}
public void setTrainStatus(String trainStatus){
this.trainStatus = trainStatus;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private String isDeleted;
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private String creator;
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private String modifier;
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private Integer sysVersion;
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.entity;
import javax.persistence.Column;
/**
* Model class for biz_knowledge_train_log
* 知识库训练日志
*/
public class BizKnowledgeTrainLogEntity {
/**
* id
* 主键
*/
private Integer id;
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
/**
* kd_id
* biz_knowledge_document 主键ID
*/
private Integer kdId;
public Integer getKdId() {
return this.kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
/**
* timestamp
* 时间
*/
private Long timestamp;
public Long getTimestamp() {
return this.timestamp;
}
public void setTimestamp(Long timestamp) {
this.timestamp = timestamp;
}
/**
* train_status
* 训练状态 SUCCESS-成功,FAIL-失败
*/
private String trainStatus;
@Column(name = "train_status", length = 100)
public String getTrainStatus() {
return this.trainStatus;
}
public void setTrainStatus(String trainStatus) {
this.trainStatus = trainStatus;
}
/**
* failure_log
* 失败日志
*/
private String failureLog;
public String getFailureLog() {
return this.failureLog;
}
public void setFailureLog(String failureLog) {
this.failureLog = failureLog;
}
/**
* is_deleted
* 是否删除
*/
private String isDeleted;
public String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted;
}
/**
* CREATOR
* 创建人
*/
private String creator;
public String getCreator() {
return this.creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
}
/**
* MODIFIER
* 修改人
*/
private String modifier;
public String getModifier() {
return this.modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
/**
* SYS_VERSION
* 版本号
*/
private Integer sysVersion;
public Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion) {
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.entity;
/**
* Model class for biz_member_knowledge_relation
* 用户-知识库关联
*/
public class BizMemberKnowledgeRelationEntity {
/** id
*主键
*/
private Integer id;
public Integer getId(){
return this.id;
}
public void setId(Integer id){
this.id = id;
}
/** member_id
*aigc用户关联ID
*/
private String memberId;
public String getMemberId(){
return this.memberId;
}
public void setMemberId(String memberId){
this.memberId = memberId;
}
/** member_type
*用户类型 corp-企业 member-用户
*/
private String memberType;
public String getMemberType(){
return this.memberType;
}
public void setMemberType(String memberType){
this.memberType = memberType;
}
/** kd_id
*知识库ID
*/
private Integer kdId;
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private String isDeleted;
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private String creator;
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private String modifier;
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private Integer sysVersion;
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.model;
import cn.com.yict.framemax.data.model.BaseModelClass;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
/**
* Model class for biz_knowledge_document
* 知识库文件表
*/
@Entity
@Table(name = "biz_knowledge_document")
@DynamicInsert
@DynamicUpdate
public class BizKnowledgeDocumentModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** kd_id
*主键
*/
private Integer kdId;
@Column(name = "kd_id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Integer getKdId(){
return this.kdId;
}
public void setKdId(Integer kdId){
this.kdId = kdId;
super.addValidField("kdId");
}
/** owner
*拥有者:System-系统 、User-用户
*/
private String owner;
@Column(name = "owner",length = 10)
public String getOwner(){
return this.owner;
}
public void setOwner(String owner){
this.owner = owner;
super.addValidField("owner");
}
/** knowledge_type
*知识库类型 QA-问答、Base-基础
*/
private String knowledgeType;
@Column(name = "knowledge_type",length = 10)
public String getKnowledgeType(){
return this.knowledgeType;
}
public void setKnowledgeType(String knowledgeType){
this.knowledgeType = knowledgeType;
super.addValidField("knowledgeType");
}
/** document_name
*文档名
*/
private String documentName;
@Column(name = "document_name",length = 100)
public String getDocumentName(){
return this.documentName;
}
public void setDocumentName(String documentName){
this.documentName = documentName;
super.addValidField("documentName");
}
/** document_url
*文件下载地址
*/
private String documentUrl;
@Column(name = "document_url",length = 225)
public String getDocumentUrl(){
return this.documentUrl;
}
public void setDocumentUrl(String documentUrl){
this.documentUrl = documentUrl;
super.addValidField("documentUrl");
}
/** char_count
*文档字符数
*/
private Long charCount;
@Column(name = "char_count",length = 19)
public Long getCharCount(){
return this.charCount;
}
public void setCharCount(Long charCount){
this.charCount = charCount;
super.addValidField("charCount");
}
/** upload_time
*上传时间
*/
private java.util.Date uploadTime;
@Column(name = "upload_time",length = 19)
public java.util.Date getUploadTime(){
return this.uploadTime;
}
public void setUploadTime(java.util.Date uploadTime){
this.uploadTime = uploadTime;
super.addValidField("uploadTime");
}
/** is_enable
*是否启用 N-不启用 Y-启用
*/
private String isEnable;
@Column(name = "is_enable",length = 1)
public String getIsEnable(){
return this.isEnable;
}
public void setIsEnable(String isEnable){
this.isEnable = isEnable;
super.addValidField("isEnable");
}
/** knowledge_id
*中台知识库ID
*/
private String knowledgeId;
@Column(name = "knowledge_id",length = 225)
public String getKnowledgeId(){
return this.knowledgeId;
}
public void setKnowledgeId(String knowledgeId){
this.knowledgeId = knowledgeId;
super.addValidField("knowledgeId");
}
/** train_status
*状态:未执行-Unopened、 排队-Line 、训练中-Training、 完成-Complete、失败-Fail
*/
private String trainStatus;
@Column(name = "train_status",length = 15)
public String getTrainStatus(){
return this.trainStatus;
}
public void setTrainStatus(String trainStatus){
this.trainStatus = trainStatus;
super.addValidField("trainStatus");
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private String isDeleted;
@Column(name = "is_deleted",length = 1)
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** CREATOR
*创建人
*/
private String creator;
@Column(name = "CREATOR",length = 50)
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
super.addValidField("creator");
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19)
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/** MODIFIER
*修改人
*/
private String modifier;
@Column(name = "MODIFIER",length = 50)
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier){
this.modifier = modifier;
super.addValidField("modifier");
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19)
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*乐观锁,版本号
*/
private Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
package cn.com.poc.knowledge.model;
import cn.com.yict.framemax.data.model.BaseModelClass;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
/**
* Model class for biz_knowledge_train_log
* 知识库训练日志
*/
@Entity
@Table(name = "biz_knowledge_train_log")
@DynamicInsert
@DynamicUpdate
public class BizKnowledgeTrainLogModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** id
*主键
*/
private Integer id;
@Column(name = "id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId(){
return this.id;
}
public void setId(Integer id){
this.id = id;
super.addValidField("id");
}
/** kd_id
*biz_knowledge_document 主键ID
*/
private Integer kdId;
@Column(name = "kd_id",length = 10)
public Integer getKdId(){
return this.kdId;
}
public void setKdId(Integer kdId){
this.kdId = kdId;
super.addValidField("kdId");
}
/** timestamp
*时间
*/
private Long timestamp;
@Column(name = "timestamp",length = 19)
public Long getTimestamp(){
return this.timestamp;
}
public void setTimestamp(Long timestamp){
this.timestamp = timestamp;
super.addValidField("timestamp");
}
/** train_status
*训练状态 SUCCESS-成功,FAIL-失败
*/
private String trainStatus;
@Column(name = "train_status",length = 100)
public String getTrainStatus(){
return this.trainStatus;
}
public void setTrainStatus(String trainStatus){
this.trainStatus = trainStatus;
super.addValidField("trainStatus");
}
/** failure_log
*失败日志
*/
private String failureLog;
@Column(name = "failure_log",length = 65535)
public String getFailureLog(){
return this.failureLog;
}
public void setFailureLog(String failureLog){
this.failureLog = failureLog;
super.addValidField("failureLog");
}
/** is_deleted
*是否删除
*/
private String isDeleted;
@Column(name = "is_deleted",length = 1)
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** CREATOR
*创建人
*/
private String creator;
@Column(name = "CREATOR",length = 50)
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
super.addValidField("creator");
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19)
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/** MODIFIER
*修改人
*/
private String modifier;
@Column(name = "MODIFIER",length = 50)
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier){
this.modifier = modifier;
super.addValidField("modifier");
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19)
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*版本号
*/
private Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
package cn.com.poc.knowledge.model;
import cn.com.yict.framemax.data.model.BaseModelClass;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
/**
* Model class for biz_member_knowledge_relation
* 用户-知识库关联
*/
@Entity
@Table(name = "biz_member_knowledge_relation")
@DynamicInsert
@DynamicUpdate
public class BizMemberKnowledgeRelationModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** id
*主键
*/
private Integer id;
@Column(name = "id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId(){
return this.id;
}
public void setId(Integer id){
this.id = id;
super.addValidField("id");
}
/** member_id
*aigc用户关联ID
*/
private String memberId;
@Column(name = "member_id",length = 100)
public String getMemberId(){
return this.memberId;
}
public void setMemberId(String memberId){
this.memberId = memberId;
super.addValidField("memberId");
}
/** member_type
*用户类型 corp-企业 member-用户
*/
private String memberType;
@Column(name = "member_type",length = 100)
public String getMemberType(){
return this.memberType;
}
public void setMemberType(String memberType){
this.memberType = memberType;
super.addValidField("memberType");
}
/** kd_id
*知识库ID
*/
private Integer kdId;
@Column(name = "kd_id",length = 10)
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
super.addValidField("kdId");
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private String isDeleted;
@Column(name = "is_deleted",length = 1)
public String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** CREATOR
*创建人
*/
private String creator;
@Column(name = "CREATOR",length = 50)
public String getCreator(){
return this.creator;
}
public void setCreator(String creator){
this.creator = creator;
super.addValidField("creator");
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19)
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/** MODIFIER
*修改人
*/
private String modifier;
@Column(name = "MODIFIER",length = 50)
public String getModifier(){
return this.modifier;
}
public void setModifier(String modifier){
this.modifier = modifier;
super.addValidField("modifier");
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19)
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*乐观锁,版本号
*/
private Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
select
bkd.kd_id,
bkd.owner,
bkd.knowledge_type,
bkd.document_name,
bkd.document_url,
bkd.char_count,
bkd.upload_time,
bkd.is_enable,
bkd.knowledge_id,
bkd.train_status
from
biz_knowledge_document bkd
left join biz_member_knowledge_relation bmkr on bkd.kd_id = bmkr.kd_id and bmkr.is_deleted = 'N'
where bkd.is_deleted = 'N'
<<and bmkr.member_id = :memberId>>
<<and bkd.document_name = :documentName>>
<<and bkd.train_status =:trainStatus>>
<<and locate(:searchDocumentName,bkd.document_name) >>
order by bkd.upload_time desc
\ No newline at end of file
package cn.com.poc.knowledge.query;
import java.io.Serializable;
/**
* Query Condition class for KnowledgeQuery
*/
public class KnowledgeQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private String memberId;
public String getMemberId(){
return this.memberId;
}
public void setMemberId(String memberId){
this.memberId = memberId;
}
private String documentName;
public String getDocumentName() {
return documentName;
}
public void setDocumentName(String documentName) {
this.documentName = documentName;
}
private String trainStatus;
public String getTrainStatus() {
return trainStatus;
}
public void setTrainStatus(String trainStatus) {
this.trainStatus = trainStatus;
}
private String searchDocumentName;
public String getSearchDocumentName() {
return searchDocumentName;
}
public void setSearchDocumentName(String searchDocumentName) {
this.searchDocumentName = searchDocumentName;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.query;
import cn.com.yict.framemax.data.model.BaseItemClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.io.Serializable;
/**
* Query Item class for KnowledgeQuery
*/
@Entity
public class KnowledgeQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** kd_id
*kd_id
*/
private Integer kdId;
@Column(name = "kd_id")
public Integer getKdId(){
return this.kdId;
}
public void setKdId(Integer kdId){
this.kdId = kdId;
}
/** owner
*owner
*/
private String owner;
@Column(name = "owner")
public String getOwner(){
return this.owner;
}
public void setOwner(String owner){
this.owner = owner;
}
/** knowledge_type
*knowledge_type
*/
private String knowledgeType;
@Column(name = "knowledge_type")
public String getKnowledgeType(){
return this.knowledgeType;
}
public void setKnowledgeType(String knowledgeType){
this.knowledgeType = knowledgeType;
}
/** document_name
*document_name
*/
private String documentName;
@Column(name = "document_name")
public String getDocumentName(){
return this.documentName;
}
public void setDocumentName(String documentName){
this.documentName = documentName;
}
/** document_url
*document_url
*/
private String documentUrl;
@Column(name = "document_url")
public String getDocumentUrl(){
return this.documentUrl;
}
public void setDocumentUrl(String documentUrl){
this.documentUrl = documentUrl;
}
/** char_count
*char_count
*/
private Long charCount;
@Column(name = "char_count")
public Long getCharCount(){
return this.charCount;
}
public void setCharCount(Long charCount){
this.charCount = charCount;
}
/** upload_time
*upload_time
*/
private java.util.Date uploadTime;
@Column(name = "upload_time")
public java.util.Date getUploadTime(){
return this.uploadTime;
}
public void setUploadTime(java.util.Date uploadTime){
this.uploadTime = uploadTime;
}
/** is_enable
*is_enable
*/
private String isEnable;
@Column(name = "is_enable")
public String getIsEnable(){
return this.isEnable;
}
public void setIsEnable(String isEnable){
this.isEnable = isEnable;
}
/** knowledge_id
*knowledge_id
*/
private String knowledgeId;
@Column(name = "knowledge_id")
public String getKnowledgeId(){
return this.knowledgeId;
}
public void setKnowledgeId(String knowledgeId){
this.knowledgeId = knowledgeId;
}
/** train_status
*train_status
*/
private String trainStatus;
@Column(name = "train_status")
public String getTrainStatus(){
return this.trainStatus;
}
public void setTrainStatus(String trainStatus){
this.trainStatus = trainStatus;
}
}
\ No newline at end of file
package cn.com.poc.knowledge.repository;
import cn.com.poc.knowledge.model.BizKnowledgeDocumentModel;
import cn.com.yict.framemax.data.repository.Repository;
public interface BizKnowledgeDocumentRepository extends Repository<BizKnowledgeDocumentModel, Integer> {
}
\ No newline at end of file
package cn.com.poc.knowledge.repository;
import cn.com.poc.knowledge.model.BizKnowledgeTrainLogModel;
import cn.com.yict.framemax.data.repository.Repository;
public interface BizKnowledgeTrainLogRepository extends Repository<BizKnowledgeTrainLogModel, Integer> {
}
\ No newline at end of file
package cn.com.poc.knowledge.repository;
import cn.com.poc.knowledge.model.BizMemberKnowledgeRelationModel;
import cn.com.yict.framemax.data.repository.Repository;
public interface BizMemberKnowledgeRelationRepository extends Repository<BizMemberKnowledgeRelationModel, Integer> {
}
\ No newline at end of file
package cn.com.poc.knowledge.rest;
import cn.com.poc.knowledge.dto.BizKnowledgeDocumentDto;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Permission(Access.Safety)
public interface KnowledgeRest extends BaseRest {
/**
* 上传文档
*
* @param documentFiles 文档
* @return 是否成功
*/
List<BizKnowledgeDocumentDto> uploadDocument(@RequestParam("documentFiles") MultipartFile[] documentFiles) throws Exception;
/**
* 删除文档
*
* @param kdId 主键ID
* @return 是否成功
*/
Boolean delDocument(@RequestParam Integer kdId);
/**
* 重命名
*/
Boolean renameDocument(@RequestParam Integer kdId, @RequestParam String rename) throws Exception;
/**
* 启用 / 关闭
*
* @
*/
String enableKnowledge(@RequestParam Integer kdId) throws Exception;
/**
* 开启训练
*/
Boolean trainKnowledge(@RequestBody List<Integer> kdIds) throws Exception;
/**
* 获取用户知识库
*/
List<BizKnowledgeDocumentDto> getList(@RequestParam(required = false) String search, @RequestParam(required = false) String trainStatus, PagingInfo pagingInfo) throws Exception;
/**
* 获取知识库
*
* @param kdIds
* @return
* @throws Exception
*/
List<BizKnowledgeDocumentDto> getListByKdIds(@RequestBody List<Integer> kdIds);
}
package cn.com.poc.knowledge.rest.impl;
import cn.com.poc.knowledge.aggregate.KnowledgeService;
import cn.com.poc.knowledge.dto.BizKnowledgeDocumentDto;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.rest.KnowledgeRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class KnowledgeRestImpl implements KnowledgeRest {
@Resource
private KnowledgeService knowledgeService;
@Override
public List<BizKnowledgeDocumentDto> uploadDocument(MultipartFile[] documentFiles) throws Exception {
Assert.notEmpty(documentFiles);
Assert.isTrue(documentFiles.length <= 5, "Uploaded files can be no larger than five");
List<BizKnowledgeDocumentDto> result = new ArrayList<>();
List<BizKnowledgeDocumentEntity> entities = knowledgeService.uploadDocument(documentFiles);
result = entities.stream().map(entity -> {
BizKnowledgeDocumentDto dto = new BizKnowledgeDocumentDto();
BeanUtil.copyProperties(entity, dto);
return dto;
}).collect(Collectors.toList());
return result;
}
@Override
public Boolean delDocument(Integer kdId) {
return knowledgeService.delDocument(kdId);
}
@Override
public Boolean renameDocument(Integer kdId, String rename) throws Exception {
return knowledgeService.renameDocument(kdId, rename);
}
@Override
public String enableKnowledge(Integer kdId) throws Exception {
return knowledgeService.enableKnowledge(kdId);
}
@Override
public Boolean trainKnowledge(List<Integer> kdIds) throws Exception {
//执行任务
knowledgeService.trainKnowledge(kdIds);
return true;
}
@Override
public List<BizKnowledgeDocumentDto> getList(String search,String trainStatus, PagingInfo pagingInfo) throws Exception {
List<BizKnowledgeDocumentDto> result = new ArrayList<>();
List<BizKnowledgeDocumentEntity> entities = knowledgeService.getList(search, trainStatus, pagingInfo);
if (CollectionUtils.isNotEmpty(entities)) {
result = entities.stream().map(entity -> {
BizKnowledgeDocumentDto dto = new BizKnowledgeDocumentDto();
BeanUtil.copyProperties(entity, dto);
return dto;
}).collect(Collectors.toList());
}
return result;
}
@Override
public List<BizKnowledgeDocumentDto> getListByKdIds(List<Integer> kdIds) {
List<BizKnowledgeDocumentDto> res = new ArrayList<>();
Assert.notEmpty(kdIds);
List<BizKnowledgeDocumentEntity> entities = knowledgeService.getListByKdIds(kdIds);
if (CollectionUtils.isNotEmpty(entities)) {
res = entities.stream().map(entity -> {
BizKnowledgeDocumentDto dto = new BizKnowledgeDocumentDto();
BeanUtil.copyProperties(entity, dto);
return dto;
}).collect(Collectors.toList());
}
return res;
}
}
package cn.com.poc.knowledge.service;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.query.KnowledgeQueryItem;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List;
public interface BizKnowledgeDocumentService extends BaseService {
BizKnowledgeDocumentEntity get(Integer kdId);
List<BizKnowledgeDocumentEntity> findByExample(BizKnowledgeDocumentEntity example, PagingInfo pagingInfo) throws Exception;
BizKnowledgeDocumentEntity save(BizKnowledgeDocumentEntity entity) throws Exception;
BizKnowledgeDocumentEntity update(Integer kdId, BizKnowledgeDocumentEntity entity) throws Exception;
Boolean deleted(Integer kdId);
List<KnowledgeQueryItem> searchKnowledge(String document,String trainStatus, String memberId, String documentName, PagingInfo pagingInfo);
}
\ No newline at end of file
package cn.com.poc.knowledge.service;
import cn.com.poc.knowledge.entity.BizKnowledgeTrainLogEntity;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List;
public interface BizKnowledgeTrainLogService extends BaseService {
BizKnowledgeTrainLogEntity get(Integer id) throws Exception;
List<BizKnowledgeTrainLogEntity> findByExample(BizKnowledgeTrainLogEntity entity, PagingInfo pagingInfo) throws Exception;
BizKnowledgeTrainLogEntity save(BizKnowledgeTrainLogEntity entity) throws Exception;
}
\ No newline at end of file
package cn.com.poc.knowledge.service;
import cn.com.poc.knowledge.entity.BizMemberKnowledgeRelationEntity;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List;
public interface BizMemberKnowledgeRelationService extends BaseService {
BizMemberKnowledgeRelationEntity get(Integer id) throws Exception;
List<BizMemberKnowledgeRelationEntity> findByExample(BizMemberKnowledgeRelationEntity example,PagingInfo pagingInfo) throws Exception;
BizMemberKnowledgeRelationEntity save(BizMemberKnowledgeRelationEntity entity) throws Exception;
Boolean deletedByKdId(Integer kdId);
}
\ No newline at end of file
package cn.com.poc.knowledge.service.impl;
import cn.com.poc.common.constant.MkpCommonConstant;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.knowledge.convert.KnowledgeDocumentConvert;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.model.BizKnowledgeDocumentModel;
import cn.com.poc.knowledge.query.KnowledgeQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeQueryItem;
import cn.com.poc.knowledge.repository.BizKnowledgeDocumentRepository;
import cn.com.poc.knowledge.service.BizKnowledgeDocumentService;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BizKnowledgeDocumentServiceImpl extends BaseServiceImpl
implements BizKnowledgeDocumentService {
@Resource
private BizKnowledgeDocumentRepository repository;
@Override
public BizKnowledgeDocumentEntity get(Integer kdId) {
BizKnowledgeDocumentModel bizKnowledgeDocumentModel = this.repository.get(kdId);
return KnowledgeDocumentConvert.modelToEntity(bizKnowledgeDocumentModel);
}
@Override
public List<BizKnowledgeDocumentEntity> findByExample(BizKnowledgeDocumentEntity example, PagingInfo pagingInfo) throws Exception {
List<BizKnowledgeDocumentEntity> result = new ArrayList<>();
BizKnowledgeDocumentModel model = KnowledgeDocumentConvert.entityToModel(example);
model.setIsDeleted(MkpCommonConstant.IsDeleted.N);//只能查询未删除
List<BizKnowledgeDocumentModel> models = this.repository.findByExample(model, pagingInfo);
if (!CollectionUtils.isEmpty(models)) {
result = models.stream().map(KnowledgeDocumentConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
@Override
public BizKnowledgeDocumentEntity save(BizKnowledgeDocumentEntity entity) throws Exception {
Assert.notNull(entity);
Assert.isTrue(entity.getKdId() == null, "cannot save ,because id is not null");
BizKnowledgeDocumentModel model = KnowledgeDocumentConvert.entityToModel(entity);
BizKnowledgeDocumentModel saveModel = this.repository.save(model);
return KnowledgeDocumentConvert.modelToEntity(saveModel);
}
@Override
public BizKnowledgeDocumentEntity update(Integer kdId, BizKnowledgeDocumentEntity entity) throws Exception {
Assert.notNull(kdId, "cannot update,because id is null");
Assert.notNull(entity, "update source cannot null");
BizKnowledgeDocumentModel bizKnowledgeDocumentModel = this.repository.get(kdId);
Assert.notNull(bizKnowledgeDocumentModel, "cannot find");
BeanUtil.copyProperties(entity, bizKnowledgeDocumentModel, new CopyOptions() {{
setIgnoreNullValue(true);
}});
BizKnowledgeDocumentModel updateModel = this.repository.save(bizKnowledgeDocumentModel);
return KnowledgeDocumentConvert.modelToEntity(updateModel);
}
@Override
public Boolean deleted(Integer kdId) {
Assert.notNull(kdId);
BizKnowledgeDocumentModel bizKnowledgeDocumentModel = this.repository.get(kdId);
if (null != bizKnowledgeDocumentModel) {
bizKnowledgeDocumentModel.setIsEnable(MkpCommonConstant.IsDeleted.N);
bizKnowledgeDocumentModel.setIsDeleted(MkpCommonConstant.IsDeleted.Y);
this.repository.save(bizKnowledgeDocumentModel);
}
return true;
}
@Override
public List<KnowledgeQueryItem> searchKnowledge(String searchDocumentName, String trainStatus, String memberId, String documentName, PagingInfo pagingInfo) {
KnowledgeQueryCondition condition = new KnowledgeQueryCondition();
condition.setMemberId(memberId);
condition.setDocumentName(documentName);
condition.setTrainStatus(trainStatus);
condition.setSearchDocumentName(searchDocumentName);
return this.sqlDao.query(condition, KnowledgeQueryItem.class, pagingInfo);
}
}
\ No newline at end of file
package cn.com.poc.knowledge.service.impl;
import cn.com.poc.common.utils.BeanUtils;
import cn.com.poc.knowledge.convert.KnowledgeTrainLogConvert;
import cn.com.poc.knowledge.entity.BizKnowledgeTrainLogEntity;
import cn.com.poc.knowledge.model.BizKnowledgeTrainLogModel;
import cn.com.poc.knowledge.repository.BizKnowledgeTrainLogRepository;
import cn.com.poc.knowledge.service.BizKnowledgeTrainLogService;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BizKnowledgeTrainLogServiceImpl extends BaseServiceImpl
implements BizKnowledgeTrainLogService {
@Resource
private BizKnowledgeTrainLogRepository repository;
@Override
public BizKnowledgeTrainLogEntity get(Integer id) throws Exception {
BizKnowledgeTrainLogModel bizKnowledgeTrainLogModel = this.repository.get(id);
return KnowledgeTrainLogConvert.modelToEntity(bizKnowledgeTrainLogModel);
}
@Override
public List<BizKnowledgeTrainLogEntity> findByExample(BizKnowledgeTrainLogEntity entity, PagingInfo pagingInfo) throws Exception {
List<BizKnowledgeTrainLogEntity> result = new ArrayList<>();
BizKnowledgeTrainLogModel bizKnowledgeTrainLogModel = KnowledgeTrainLogConvert.entityToModel(entity);
List<BizKnowledgeTrainLogModel> models = this.repository.findByExample(bizKnowledgeTrainLogModel, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(KnowledgeTrainLogConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
@Override
public BizKnowledgeTrainLogEntity save(BizKnowledgeTrainLogEntity entity) throws Exception {
BizKnowledgeTrainLogModel saveModel = new BizKnowledgeTrainLogModel();
if (entity.getId() != null) {
saveModel = this.repository.get(entity.getId());
BeanUtils.copyPropertiesIgnoreNull(entity, saveModel);
}
else{
saveModel = KnowledgeTrainLogConvert.entityToModel(entity);
}
return KnowledgeTrainLogConvert.modelToEntity(this.repository.save(saveModel));
}
}
\ No newline at end of file
package cn.com.poc.knowledge.service.impl;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.knowledge.convert.MemberKnowledgeRelationConvert;
import cn.com.poc.knowledge.entity.BizMemberKnowledgeRelationEntity;
import cn.com.poc.knowledge.model.BizMemberKnowledgeRelationModel;
import cn.com.poc.knowledge.repository.BizMemberKnowledgeRelationRepository;
import cn.com.poc.knowledge.service.BizMemberKnowledgeRelationService;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BizMemberKnowledgeRelationServiceImpl extends BaseServiceImpl
implements BizMemberKnowledgeRelationService {
@Resource
private BizMemberKnowledgeRelationRepository repository;
@Override
public BizMemberKnowledgeRelationEntity get(Integer id) throws Exception {
Assert.notNull(id, "id cant be null");
BizMemberKnowledgeRelationModel model = this.repository.get(id);
return MemberKnowledgeRelationConvert.modelToEntity(model);
}
@Override
public List<BizMemberKnowledgeRelationEntity> findByExample(BizMemberKnowledgeRelationEntity example, PagingInfo pagingInfo) throws Exception {
List<BizMemberKnowledgeRelationEntity> result = new ArrayList<>();
BizMemberKnowledgeRelationModel model = MemberKnowledgeRelationConvert.entityToModel(example);
List<BizMemberKnowledgeRelationModel> models = this.repository.findByExample(model, pagingInfo);
if (!CollectionUtils.isEmpty(models)) {
result = models.stream().map(MemberKnowledgeRelationConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
@Override
public BizMemberKnowledgeRelationEntity save(BizMemberKnowledgeRelationEntity entity) throws Exception {
Assert.notNull(entity);
BizMemberKnowledgeRelationModel model = MemberKnowledgeRelationConvert.entityToModel(entity);
BizMemberKnowledgeRelationModel saveModel = this.repository.save(model);
return MemberKnowledgeRelationConvert.modelToEntity(saveModel);
}
@Override
public Boolean deletedByKdId(Integer kdId) {
Assert.notNull(kdId);
BizMemberKnowledgeRelationModel bizMemberKnowledgeRelationModel = new BizMemberKnowledgeRelationModel();
bizMemberKnowledgeRelationModel.setKdId(kdId);
bizMemberKnowledgeRelationModel.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizMemberKnowledgeRelationModel> models = this.repository.findByExample(bizMemberKnowledgeRelationModel);
if (CollectionUtils.isEmpty(models)){
return true;
}
if (null != models.get(0)) {
BizMemberKnowledgeRelationModel model = models.get(0);
model.setIsDeleted(CommonConstant.IsDeleted.Y);
this.repository.save(model);
}
return true;
}
}
\ No newline at end of file
package cn.com.poc.message.entity;
import java.io.Serializable;
public class KnowledgeTrainStatusMessage implements Serializable {
private Integer kdId;
private String status;
private String knowledgeId;
public String getKnowledgeId() {
return knowledgeId;
}
public void setKnowledgeId(String knowledgeId) {
this.knowledgeId = knowledgeId;
}
public Integer getKdId() {
return kdId;
}
public void setKdId(Integer kdId) {
this.kdId = kdId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
package cn.com.poc.message.entity;
import java.io.Serializable;
import java.util.Map;
public class TrainKnowledgeMessage implements Serializable {
private Integer kid;
private String fileUrl;
private Map<Integer, Integer> reduced;
public Map<Integer, Integer> getReduced() {
return reduced;
}
public void setReduced(Map<Integer, Integer> reduced) {
this.reduced = reduced;
}
public Integer getKid() {
return kid;
}
public void setKid(Integer kid) {
this.kid = kid;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
@Override
public String toString() {
return "TrainKnowledgeMessage{" +
"kid=" + kid +
", fileUrl='" + fileUrl + '\'' +
", reduced=" + reduced +
'}';
}
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.KnowledgeTrainStatusMessage;
import cn.com.poc.message.entity.TrainKnowledgeMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface KnowledgeConsumerService extends BaseService {
/**
* 训练知识库
*
* @param message
* @return
*/
void trainKnowledge(TrainKnowledgeMessage message) throws Exception;
/**
* 训练状态更新
*/
void trainStatusUpdate(KnowledgeTrainStatusMessage message) throws Exception;
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.KnowledgeTrainStatusMessage;
import cn.com.poc.message.entity.TrainKnowledgeMessage;
import cn.com.yict.framemax.core.service.BaseService;
public interface KnowledgeProducerService extends BaseService {
/**
* 训练知识库
*
* @param message
* @return
*/
TrainKnowledgeMessage trainKnowledge(TrainKnowledgeMessage message);
/**
* 更新训练状态
*/
KnowledgeTrainStatusMessage trainStatusUpdate(KnowledgeTrainStatusMessage knowledgeTrainStatusMessage);
}
package cn.com.poc.message.service.impl;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.knowledge.constant.KnowledgeConstant;
import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.entity.BizKnowledgeTrainLogEntity;
import cn.com.poc.knowledge.entity.BizMemberKnowledgeRelationEntity;
import cn.com.poc.knowledge.service.BizKnowledgeDocumentService;
import cn.com.poc.knowledge.service.BizKnowledgeTrainLogService;
import cn.com.poc.knowledge.service.BizMemberKnowledgeRelationService;
import cn.com.poc.message.entity.KnowledgeTrainStatusMessage;
import cn.com.poc.message.entity.TrainKnowledgeMessage;
import cn.com.poc.message.service.KnowledgeConsumerService;
import cn.com.poc.message.service.KnowledgeProducerService;
import cn.com.poc.message.topic.KnowledgeTopic;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.DemandKnowledgeService;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.tumbleweed.client.annotation.Consumer;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
public class KnowledgeConsumerServiceImpl implements KnowledgeConsumerService {
final private Logger logger = LoggerFactory.getLogger(KnowledgeConsumerService.class);
@Resource
private BizKnowledgeTrainLogService bizKnowledgeTrainLogService;
@Resource
private BizKnowledgeDocumentService bizKnowledgeDocumentService;
@Resource
private DemandKnowledgeService demandKnowledgeService;
@Resource
private BizMemberKnowledgeRelationService bizMemberKnowledgeRelationService;
// @Resource
// private BizAiGcMemberUsageDetailsService bizAiGcMemberUsageDetailsService;
//
// @Resource
// private AiGcMemberFreqProducerService aiGcMemberFreqProducerService;
@Resource
private KnowledgeProducerService knowledgeProducerService;
/**
* 训练知识库
*
* @param message
* @return
*/
@Override
@Consumer(topic = KnowledgeTopic.TRAIN_KNOWLEDGE, scale = 5, retry = false)
public void trainKnowledge(TrainKnowledgeMessage message) throws Exception {
//修改训练状态
KnowledgeTrainStatusMessage trainStatusMessage = new KnowledgeTrainStatusMessage();
trainStatusMessage.setStatus(KnowledgeConstant.TrainStatus.TRAINING);
trainStatusMessage.setKdId(message.getKid());
knowledgeProducerService.trainStatusUpdate(trainStatusMessage);
try {
String knowledgeId = demandKnowledgeService.trainKnowledge(message.getFileUrl());
//训练日志
BizKnowledgeTrainLogEntity bizKnowledgeTrainLogEntity = new BizKnowledgeTrainLogEntity();
bizKnowledgeTrainLogEntity.setKdId(message.getKid());
bizKnowledgeTrainLogEntity.setTimestamp(System.currentTimeMillis());
bizKnowledgeTrainLogEntity.setTrainStatus(KnowledgeConstant.TrainStatus.COMPLETE);
bizKnowledgeTrainLogEntity.setFailureLog("");
bizKnowledgeTrainLogEntity.setIsDeleted(CommonConstant.IsDeleted.N);
bizKnowledgeTrainLogService.save(bizKnowledgeTrainLogEntity);
//训练完成
KnowledgeTrainStatusMessage completeMessage = new KnowledgeTrainStatusMessage();
completeMessage.setStatus(KnowledgeConstant.TrainStatus.COMPLETE);
completeMessage.setKdId(message.getKid());
completeMessage.setKnowledgeId(knowledgeId);
knowledgeProducerService.trainStatusUpdate(completeMessage);
//保存明细
// saveUsageDetailByKnowledgeTrain(message.getKid());
} catch (BusinessException e) {
logger.warn("--------------message:{},知识库训练失败:{}------------", message, e.getMessage());
//记录状态 训练失败
trainStatusMessage.setStatus(KnowledgeConstant.TrainStatus.FAIL);
trainStatusMessage.setKdId(message.getKid());
knowledgeProducerService.trainStatusUpdate(trainStatusMessage);
logger.warn("-------保存知识库训练失败状态----------");
//训练日志
BizKnowledgeTrainLogEntity bizKnowledgeTrainLogEntity = new BizKnowledgeTrainLogEntity();
bizKnowledgeTrainLogEntity.setKdId(message.getKid());
bizKnowledgeTrainLogEntity.setTimestamp(System.currentTimeMillis());
bizKnowledgeTrainLogEntity.setTrainStatus(KnowledgeConstant.TrainStatus.FAIL);
bizKnowledgeTrainLogEntity.setFailureLog(e.getMessage());
bizKnowledgeTrainLogEntity.setIsDeleted(CommonConstant.IsDeleted.N);
bizKnowledgeTrainLogService.save(bizKnowledgeTrainLogEntity);
logger.warn("-------保存知识库训练失败日志----------");
//次数回滚
// if (MapUtils.isNotEmpty(message.getReduced())) {
// logger.warn("----------知识库训练失败,训练次数回滚【开始】-------------");
// AiGcMemberFreqMessage aiGcMemberFreqMessage = new AiGcMemberFreqMessage();
// aiGcMemberFreqMessage.setReduceMap(message.getReduced());
// aiGcMemberFreqProducerService.rollbackNum(aiGcMemberFreqMessage);
// logger.warn("----------知识库训练失败,训练次数回滚【结束】-------------");
// }
}
}
@Override
@Consumer(topic = KnowledgeTopic.TRAIN_STATUS, scale = 1, retry = true)
public void trainStatusUpdate(KnowledgeTrainStatusMessage message) throws Exception {
BizKnowledgeDocumentEntity bizKnowledgeDocumentEntity = new BizKnowledgeDocumentEntity();
bizKnowledgeDocumentEntity.setTrainStatus(message.getStatus());
bizKnowledgeDocumentEntity.setKnowledgeId(message.getKnowledgeId());
bizKnowledgeDocumentService.update(message.getKdId(), bizKnowledgeDocumentEntity);
}
private void saveUsageDetailByKnowledgeTrain(Integer kdId) throws Exception {
BizMemberKnowledgeRelationEntity bizMemberKnowledgeRelationEntity = new BizMemberKnowledgeRelationEntity();
bizMemberKnowledgeRelationEntity.setMemberType("system");
bizMemberKnowledgeRelationEntity.setKdId(kdId);
bizMemberKnowledgeRelationEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizMemberKnowledgeRelationEntity> entities = bizMemberKnowledgeRelationService.findByExample(bizMemberKnowledgeRelationEntity, null);
// BizMemberKnowledgeRelationEntity memberKnowledgeRelationEntity = entities.get(0);
//
// BizKnowledgeDocumentEntity bizKnowledgeDocumentEntity = bizKnowledgeDocumentService.get(kdId);
// AiGcMemberUsageDetailsEntity aiGcMemberUsageDetailsEntity = new AiGcMemberUsageDetailsEntity();
// aiGcMemberUsageDetailsEntity.setRelationId(memberKnowledgeRelationEntity.getMemberId());
// aiGcMemberUsageDetailsEntity.setDomain(AiGcPaymentConfigurationConstant.DOMAIN.TRAIN);
// aiGcMemberUsageDetailsEntity.setTitile(bizKnowledgeDocumentEntity.getDocumentName());
// aiGcMemberUsageDetailsEntity.setDate(new Date());
// aiGcMemberUsageDetailsEntity.setScenes(null);
// aiGcMemberUsageDetailsEntity.setDetailType("知识库训练");
// aiGcMemberUsageDetailsEntity.setOperation(AiGcMemberUsageDetailsConstant.Operation.USE);
// aiGcMemberUsageDetailsEntity.setNum(bizKnowledgeDocumentEntity.getCharCount().intValue());
// aiGcMemberUsageDetailsEntity.setIsDeleted(MkpCommonConstant.IsDeleted.N);
// bizAiGcMemberUsageDetailsService.save(aiGcMemberUsageDetailsEntity);
}
}
package cn.com.poc.message.service.impl;
import cn.com.poc.message.entity.KnowledgeTrainStatusMessage;
import cn.com.poc.message.entity.TrainKnowledgeMessage;
import cn.com.poc.message.service.KnowledgeProducerService;
import cn.com.poc.message.topic.KnowledgeTopic;
import cn.com.yict.framemax.tumbleweed.client.annotation.Producer;
import cn.com.yict.framemax.tumbleweed.constant.PublishPoint;
import org.springframework.stereotype.Service;
@Service
public class KnowledgeProducerServiceImpl implements KnowledgeProducerService {
/**
* 训练知识库
*
* @param message
* @return
*/
@Override
@Producer(topic = KnowledgeTopic.TRAIN_KNOWLEDGE, publishPoint = PublishPoint.PUBLISH_REAL_TIME)
public TrainKnowledgeMessage trainKnowledge(TrainKnowledgeMessage message) {
return message;
}
@Override
@Producer(topic = KnowledgeTopic.TRAIN_STATUS, publishPoint = PublishPoint.PUBLISH_REAL_TIME)
public KnowledgeTrainStatusMessage trainStatusUpdate(KnowledgeTrainStatusMessage knowledgeTrainStatusMessage) {
return knowledgeTrainStatusMessage;
}
}
package cn.com.poc.message.topic;
public interface KnowledgeTopic {
String TRAIN_KNOWLEDGE = "TRAIN_KNOWLEDGE";
String TRAIN_STATUS = "TRAIN_STATUS";
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment