提交 5ad06d27 作者: ChenShiQiang

commit temp

上级 862304bd
package com.zzsn.knowbase.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* redisConfig
*
* @author ShiQiangChen
* @date 2024/1/8
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, ?> getRedisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, ?> template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setEnableTransactionSupport(true);
template.setConnectionFactory(factory);
return template;
}
}
\ No newline at end of file
...@@ -26,18 +26,18 @@ import java.util.Map; ...@@ -26,18 +26,18 @@ import java.util.Map;
public class KnowInterceptor implements HandlerInterceptor { public class KnowInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前进行调用(Controller方法调用之前) // // 在请求处理之前进行调用(Controller方法调用之前)
// 返回true才会继续执行后续的Interceptor和Controller // // 返回true才会继续执行后续的Interceptor和Controller
// 返回false则取消当前请求 // // 返回false则取消当前请求
String token = request.getHeader("X-Access-Token"); // String token = request.getHeader("X-Access-Token");
//
KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class); // KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class);
Result<?> result = userService.doCheck(token); // Result<?> result = userService.doCheck(token);
/**第三方用户验证未通过,直接拦截请求并返回提示*/ // /**第三方用户验证未通过,直接拦截请求并返回提示*/
if (!result.isSuccess()){ // if (!result.isSuccess()){
doRes(request,response); // doRes(request,response);
return false; // return false;
} // }
return true; return true;
} }
......
...@@ -35,8 +35,8 @@ public class KnowledgeController { ...@@ -35,8 +35,8 @@ public class KnowledgeController {
@Autowired @Autowired
private IKnowledgeService knowledgeService; private IKnowledgeService knowledgeService;
@Value("${python.IntelligentQaUrl:}") @Value("${python.intelligentQaUrl:}")
private String IntelligentQaUrl; private String intelligentQaUrl;
/** /**
* 分页列表查询 * 分页列表查询
...@@ -51,6 +51,20 @@ public class KnowledgeController { ...@@ -51,6 +51,20 @@ public class KnowledgeController {
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* 分页列表查询
*/
@GetMapping(value = "/listFromPython")
public Result<?> listFromPython(KnowledgeParam knowledgeParam,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "column", defaultValue = "common") String column,
@RequestParam(name = "order", defaultValue = "desc") String order) {
IPage<KnowledgeVO> pageList = knowledgeService.listFromPython(knowledgeParam, pageNo, pageSize, column, order);
return Result.OK(pageList);
}
/** /**
* 添加 * 添加
* *
...@@ -108,7 +122,7 @@ public class KnowledgeController { ...@@ -108,7 +122,7 @@ public class KnowledgeController {
JSONObject params = new JSONObject(); JSONObject params = new JSONObject();
params.put("question",intelligentQaParam.getQuestion()); params.put("question",intelligentQaParam.getQuestion());
params.put("knowledge_base_id",Arrays.asList(intelligentQaParam.getKnowledgeProjectIds().split(","))); params.put("knowledge_base_id",Arrays.asList(intelligentQaParam.getKnowledgeProjectIds().split(",")));
String result = HttpUtil.doPost(IntelligentQaUrl, params, 120000); String result = HttpUtil.doPost(intelligentQaUrl, params, 120000);
if(!result.isEmpty()){ if(!result.isEmpty()){
JSONObject jsonObject= JSON.parseObject(result); JSONObject jsonObject= JSON.parseObject(result);
return Result.OK(jsonObject.get("result")); return Result.OK(jsonObject.get("result"));
......
...@@ -78,6 +78,7 @@ public class Knowledge implements Serializable { ...@@ -78,6 +78,7 @@ public class Knowledge implements Serializable {
* 发布时间 * 发布时间
*/ */
private String publishDate; private String publishDate;
private String verifyTime;
/** /**
* 审核状态 * 审核状态
*/ */
......
...@@ -41,4 +41,6 @@ public interface IKnowledgeService { ...@@ -41,4 +41,6 @@ public interface IKnowledgeService {
* @return * @return
*/ */
IPage<KnowledgeVO> queryPageList(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order); IPage<KnowledgeVO> queryPageList(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order);
IPage<KnowledgeVO> listFromPython(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order);
} }
package com.zzsn.knowbase.service.impl; package com.zzsn.knowbase.service.impl;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.knowbase.constant.Constants; import com.zzsn.knowbase.constant.Constants;
...@@ -28,7 +30,9 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; ...@@ -28,7 +30,9 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import springfox.documentation.spring.web.json.Json;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
...@@ -38,6 +42,8 @@ import java.util.Date; ...@@ -38,6 +42,8 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.apache.commons.lang3.StringUtils.split;
/** /**
* @Description: 知识 * @Description: 知识
* @Author: chenshiqiang * @Author: chenshiqiang
...@@ -53,6 +59,11 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -53,6 +59,11 @@ class KnowledgeServiceImpl implements IKnowledgeService {
private CodeGenerateUtil codeGenerateUtil; private CodeGenerateUtil codeGenerateUtil;
@Autowired @Autowired
private ProduceInfo produceInfo; private ProduceInfo produceInfo;
@Value("${python.searchUrl:}")
private String searchUrl;
@Autowired
private RedisUtil redisUtil;
@Override @Override
public void addKnowledge(HttpServletRequest httpServletRequest, Knowledge knowledge) { public void addKnowledge(HttpServletRequest httpServletRequest, Knowledge knowledge) {
...@@ -186,7 +197,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -186,7 +197,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} else { } else {
multiMatchQueryBuilder.field("title", 60); multiMatchQueryBuilder.field("title", 60);
BoolQueryBuilder nestedBoolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder nestedBoolQueryBuilder = QueryBuilders.boolQuery();
multiMatchQueryBuilder.field("contents.content",20); multiMatchQueryBuilder.field("contents.content", 20);
nestedBoolQueryBuilder.must(multiMatchQueryBuilder); nestedBoolQueryBuilder.must(multiMatchQueryBuilder);
NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery("contents", nestedBoolQueryBuilder, ScoreMode.None); NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery("contents", nestedBoolQueryBuilder, ScoreMode.None);
boolQuery.must(nestedQueryBuilder); boolQuery.must(nestedQueryBuilder);
...@@ -203,7 +214,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -203,7 +214,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} else { } else {
multiMatchQueryBuilder.field("title", 3); multiMatchQueryBuilder.field("title", 3);
BoolQueryBuilder nestedBoolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder nestedBoolQueryBuilder = QueryBuilders.boolQuery();
multiMatchQueryBuilder.field("contents.content",1); multiMatchQueryBuilder.field("contents.content", 1);
nestedBoolQueryBuilder.must(multiMatchQueryBuilder); nestedBoolQueryBuilder.must(multiMatchQueryBuilder);
NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery("contents", nestedBoolQueryBuilder, ScoreMode.None); NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery("contents", nestedBoolQueryBuilder, ScoreMode.None);
boolQuery.must(nestedQueryBuilder); boolQuery.must(nestedQueryBuilder);
...@@ -257,4 +268,78 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -257,4 +268,78 @@ class KnowledgeServiceImpl implements IKnowledgeService {
return pageData; return pageData;
} }
@Override
public IPage<KnowledgeVO> listFromPython(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order) {
Object data = redisUtil.get(genKey(knowledgeParam));
// if (org.springframework.util.StringUtils.isEmpty(data)) {
if (true) {
JSONObject params = new JSONObject();
params.put("type", null == knowledgeParam.getTypes() ? null : Arrays.asList(knowledgeParam.getTypes().split(",")));
params.put("startTime", knowledgeParam.getStartTime());
params.put("endTime", knowledgeParam.getEndTime());
params.put("author", knowledgeParam.getAuthor());
params.put("origin", knowledgeParam.getOrigin());
params.put("verifierName", knowledgeParam.getVerifierName());
params.put("verifyStatus", knowledgeParam.getVerifyStatus());
params.put("verifyStartTime", knowledgeParam.getVerifyStartTime());
params.put("knowledge_base_id", knowledgeParam.getKnowledgeProjectId());
params.put("verifyEndTime", knowledgeParam.getVerifyEndTime());
params.put("score_threshold", 600);//score
params.put("vector_search_top_k", 100);//number
if (knowledgeParam.getSearchScope().equals(2)) {
params.put("question", knowledgeParam.getSearchInfo());
}
String result = null;
try {
result = HttpUtil.doPost(searchUrl, params, 120000);
} catch (IOException e) {
e.printStackTrace();
}
if (result == null||!result.contains("results")) {
return null;
}
JSONObject jsonObject = JSONObject.parseObject(result);
data=jsonObject.get("results");
redisUtil.set(genKey(knowledgeParam), data,100000000);
}
JSONArray jsonArray = JSONObject.parseArray(data.toString());
List<Knowledge> knowledgeList=new ArrayList<>(jsonArray.size());
for (Object o : jsonArray) {
JSONObject one = JSONObject.parseObject(o.toString());
knowledgeList.add(Knowledge.builder()
.id((String) one.get("id"))
.build());
}
return null;
}
private String genKey(KnowledgeParam knowledgeParam) {
String type = (knowledgeParam.getTypes() == null ? "" : knowledgeParam.getTypes());
String knowledgeProjectId = (knowledgeParam.getKnowledgeProjectId() == null ? "" : knowledgeParam.getKnowledgeProjectId());
String startTime = (knowledgeParam.getStartTime() == null ? "" : knowledgeParam.getStartTime());
String endTime = (knowledgeParam.getEndTime() == null ? "" : knowledgeParam.getEndTime());
String author = (knowledgeParam.getAuthor() == null ? "" : knowledgeParam.getAuthor());
String origin = (knowledgeParam.getOrigin() == null ? "" : knowledgeParam.getOrigin());
String verifierName = (knowledgeParam.getVerifierName() == null ? "" : knowledgeParam.getVerifierName());
String verifyStatus = (knowledgeParam.getVerifyStatus() == null ? "" : String.valueOf(knowledgeParam.getVerifyStatus()));
String verifyStartTime = (knowledgeParam.getVerifyStartTime() == null ? "" : knowledgeParam.getVerifyStartTime());
String verifyEndTime = (knowledgeParam.getVerifyEndTime() == null ? "" : knowledgeParam.getVerifyEndTime());
String searchInfo = (knowledgeParam.getSearchInfo() == null ? "" : knowledgeParam.getSearchInfo());
return type + "#" +
knowledgeProjectId + "#" +
startTime + "#" +
endTime + "#" +
author + "#" +
origin + "#" +
verifierName + "#" +
verifyStatus + "#" +
verifyStartTime + "#" +
verifyEndTime + "#" +
searchInfo + "#";
}
} }
...@@ -24,7 +24,7 @@ public class KnowledgeParam { ...@@ -24,7 +24,7 @@ public class KnowledgeParam {
/** /**
* 作者 * 作者
*/ */
private Integer author; private String author;
/** /**
* 发布时间 * 发布时间
*/ */
...@@ -48,12 +48,14 @@ public class KnowledgeParam { ...@@ -48,12 +48,14 @@ public class KnowledgeParam {
/** /**
* 类型 * 类型
*/ */
private String type; private String types;
private String startTime; private String startTime;
private String endTime; private String endTime;
private String searchInfo; private String searchInfo;
private Integer searchScope; private Integer searchScope;
private String searchAccuracy; private String searchAccuracy;
private String verifyStartTime;
private String verifyEndTime;
} }
...@@ -18,8 +18,6 @@ spring: ...@@ -18,8 +18,6 @@ spring:
brokers: 114.115.159.144:9092 brokers: 114.115.159.144:9092
zkNodes: 114.115.159.144:2181 zkNodes: 114.115.159.144:2181
requiredAcks: 1 requiredAcks: 1
redis: redis:
database: 0 database: 0
host: 114.115.236.206 host: 114.115.236.206
...@@ -39,7 +37,8 @@ mybatis-plus: ...@@ -39,7 +37,8 @@ mybatis-plus:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
python: python:
IntelligentQaUrl: http://116.63.179.212:7862/platform/chat intelligentQaUrl: http://116.63.179.212:7862/platform/chat
searchUrl: http://114.115.172.99:10013/platform/search
know: know:
thirdpartyurl: thirdpartyurl:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论