Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
5ad06d27
提交
5ad06d27
authored
1月 09, 2024
作者:
ChenShiQiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
commit temp
上级
862304bd
全部展开
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
157 行增加
和
22 行删除
+157
-22
RedisConfig.java
src/main/java/com/zzsn/knowbase/config/RedisConfig.java
+32
-0
KnowInterceptor.java
...com/zzsn/knowbase/config/interceptor/KnowInterceptor.java
+12
-12
KnowledgeController.java
...ava/com/zzsn/knowbase/controller/KnowledgeController.java
+17
-3
Knowledge.java
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
+1
-0
IKnowledgeService.java
...ain/java/com/zzsn/knowbase/service/IKnowledgeService.java
+2
-0
KnowledgeServiceImpl.java
.../com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
+87
-2
RedisUtil.java
src/main/java/com/zzsn/knowbase/util/RedisUtil.java
+0
-0
KnowledgeParam.java
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
+4
-2
application.yml
src/main/resources/application.yml
+2
-3
没有找到文件。
src/main/java/com/zzsn/knowbase/config/RedisConfig.java
0 → 100644
浏览文件 @
5ad06d27
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
src/main/java/com/zzsn/knowbase/config/interceptor/KnowInterceptor.java
浏览文件 @
5ad06d27
...
@@ -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
;
}
}
...
...
src/main/java/com/zzsn/knowbase/controller/KnowledgeController.java
浏览文件 @
5ad06d27
...
@@ -35,8 +35,8 @@ public class KnowledgeController {
...
@@ -35,8 +35,8 @@ public class KnowledgeController {
@Autowired
@Autowired
private
IKnowledgeService
knowledgeService
;
private
IKnowledgeService
knowledgeService
;
@Value
(
"${python.
I
ntelligentQaUrl:}"
)
@Value
(
"${python.
i
ntelligentQaUrl:}"
)
private
String
I
ntelligentQaUrl
;
private
String
i
ntelligentQaUrl
;
/**
/**
* 分页列表查询
* 分页列表查询
...
@@ -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
(
I
ntelligentQaUrl
,
params
,
120000
);
String
result
=
HttpUtil
.
doPost
(
i
ntelligentQaUrl
,
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"
));
...
...
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
浏览文件 @
5ad06d27
...
@@ -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
;
/**
/**
* 审核状态
* 审核状态
*/
*/
...
...
src/main/java/com/zzsn/knowbase/service/IKnowledgeService.java
浏览文件 @
5ad06d27
...
@@ -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
);
}
}
src/main/java/com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
浏览文件 @
5ad06d27
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
+
"#"
;
}
}
}
src/main/java/com/zzsn/knowbase/util/RedisUtil.java
0 → 100644
浏览文件 @
5ad06d27
差异被折叠。
点击展开。
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
浏览文件 @
5ad06d27
...
@@ -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
type
s
;
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
;
}
}
src/main/resources/application.yml
浏览文件 @
5ad06d27
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论