Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
32282b3a
提交
32282b3a
authored
1月 11, 2024
作者:
chenshiqiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add column
上级
f3739005
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
82 行增加
和
46 行删除
+82
-46
KnowledgeController.java
...ava/com/zzsn/knowbase/controller/KnowledgeController.java
+6
-4
Knowledge.java
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
+4
-0
KbKnowledgeProjectService.java
.../com/zzsn/knowbase/service/KbKnowledgeProjectService.java
+9
-0
KbKnowledgeProjectServiceImpl.java
.../knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
+42
-33
KnowledgeServiceImpl.java
.../com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
+18
-5
IntelligentQaParam.java
src/main/java/com/zzsn/knowbase/vo/IntelligentQaParam.java
+1
-4
KnowledgeParam.java
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
+1
-0
KnowledgeVO.java
src/main/java/com/zzsn/knowbase/vo/KnowledgeVO.java
+1
-0
没有找到文件。
src/main/java/com/zzsn/knowbase/controller/KnowledgeController.java
浏览文件 @
32282b3a
...
...
@@ -3,10 +3,12 @@ package com.zzsn.knowbase.controller;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.zzsn.knowbase.entity.KbKnowledgeProject
;
import
com.zzsn.knowbase.entity.KnowFile
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
com.zzsn.knowbase.service.IKnowledgeService
;
import
com.zzsn.knowbase.service.ILocalFileService
;
import
com.zzsn.knowbase.service.KbKnowledgeProjectService
;
import
com.zzsn.knowbase.util.DocUtil
;
import
com.zzsn.knowbase.util.HttpUtil
;
import
com.zzsn.knowbase.vo.IntelligentQaParam
;
...
...
@@ -25,9 +27,7 @@ import org.springframework.web.util.WebUtils;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -48,6 +48,8 @@ public class KnowledgeController {
@Autowired
private
ILocalFileService
localFileService
;
@Autowired
private
KbKnowledgeProjectService
knowledgeProjectService
;
/**
* 分页列表查询
...
...
@@ -153,7 +155,7 @@ public class KnowledgeController {
public
Result
<?>
intelligentQa
(
IntelligentQaParam
intelligentQaParam
)
throws
IOException
{
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"question"
,
intelligentQaParam
.
getQuestion
());
params
.
put
(
"k
nowledge_base_id"
,
Arrays
.
asList
(
intelligentQaParam
.
getKnowledgeProjectIds
().
split
(
","
)
));
params
.
put
(
"k
bKnowledgeIds"
,
intelligentQaParam
.
getKbKnowledgeIds
().
split
(
","
));
String
result
=
HttpUtil
.
doPost
(
intelligentQaUrl
,
params
,
120000
);
if
(!
result
.
isEmpty
())
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
result
);
...
...
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
浏览文件 @
32282b3a
...
...
@@ -99,6 +99,10 @@ public class Knowledge implements Serializable {
*/
private
String
knowledgeProjectId
;
/**
* 知识库id
*/
private
String
kbKnowledgeId
;
/**
* 类型
*/
private
String
typeId
;
...
...
src/main/java/com/zzsn/knowbase/service/KbKnowledgeProjectService.java
浏览文件 @
32282b3a
...
...
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.zzsn.knowbase.entity.KbKnowledgeProject
;
import
com.zzsn.knowbase.vo.Result
;
import
java.util.List
;
/**
* <p>
* 服务类
...
...
@@ -28,4 +30,11 @@ public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject>
Result
<?>
del
(
String
id
);
Result
<?>
lists
(
String
sign
,
String
projectId
,
String
category
);
/**
* 通过id获取子节点列表
* @param id id
* @return
*/
List
<
KbKnowledgeProject
>
getTreeListBy
(
String
id
);
}
src/main/java/com/zzsn/knowbase/service/impl/KbKnowledgeProjectServiceImpl.java
浏览文件 @
32282b3a
...
...
@@ -3,6 +3,7 @@ package com.zzsn.knowbase.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.zzsn.knowbase.entity.KbKnowledgeProject
;
...
...
@@ -19,7 +20,7 @@ import java.util.List;
/**
* <p>
*
服务实现类
* 服务实现类
* </p>
*
* @author obcy
...
...
@@ -31,11 +32,11 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
@Override
@Transactional
public
Result
<?>
add
(
KbKnowledgeProject
knowledgeProject
)
{
if
(
StringUtils
.
isBlank
(
knowledgeProject
.
getPid
())){
if
(
StringUtils
.
isBlank
(
knowledgeProject
.
getPid
()))
{
knowledgeProject
.
setPid
(
KbKnowledgeProjectService
.
ROOT_PID_VALUE
);
}
else
{
}
else
{
KbKnowledgeProject
parent
=
super
.
getById
(
knowledgeProject
.
getPid
());
if
(
parent
!=
null
&&
!
KbKnowledgeProjectService
.
HASCHILD
.
equals
(
parent
.
getHasChild
()))
{
if
(
parent
!=
null
&&
!
KbKnowledgeProjectService
.
HASCHILD
.
equals
(
parent
.
getHasChild
()))
{
parent
.
setHasChild
(
KbKnowledgeProjectService
.
HASCHILD
);
super
.
updateById
(
parent
);
}
...
...
@@ -46,11 +47,11 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
knowledgeProject
.
setFullPath
(
"0"
);
knowledgeProject
.
setCreateTime
(
new
Date
());
super
.
save
(
knowledgeProject
);
if
(
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
knowledgeProject
.
getPid
())){
if
(
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
knowledgeProject
.
getPid
()))
{
knowledgeProject
.
setFullPath
(
knowledgeProject
.
getId
().
toString
());
}
else
{
}
else
{
KbKnowledgeProject
parent
=
super
.
getById
(
knowledgeProject
.
getPid
());
knowledgeProject
.
setFullPath
(
parent
.
getFullPath
()
+
","
+
knowledgeProject
.
getId
());
knowledgeProject
.
setFullPath
(
parent
.
getFullPath
()
+
","
+
knowledgeProject
.
getId
());
}
super
.
updateById
(
knowledgeProject
);
return
Result
.
OK
();
...
...
@@ -60,47 +61,47 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
@Transactional
public
Result
<?>
edit
(
KbKnowledgeProject
knowledgeProject
)
{
KbKnowledgeProject
byId
=
super
.
getById
(
knowledgeProject
.
getId
());
if
(
ObjectUtils
.
isEmpty
(
byId
)){
if
(
ObjectUtils
.
isEmpty
(
byId
))
{
return
Result
.
error
(
"未找到对应的知识库"
);
}
String
oldPid
=
byId
.
getPid
();
String
newPid
=
knowledgeProject
.
getPid
();
if
(!
oldPid
.
equals
(
newPid
))
{
if
(!
oldPid
.
equals
(
newPid
))
{
/**处理之前父节点的hasChild字段*/
updateOldParentNode
(
oldPid
);
if
(
StringUtils
.
isBlank
(
newPid
)
||
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
newPid
))
{
if
(
StringUtils
.
isBlank
(
newPid
)
||
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
newPid
))
{
knowledgeProject
.
setPid
(
KbKnowledgeProjectService
.
ROOT_PID_VALUE
);
newPid
=
knowledgeProject
.
getPid
();
}
/**处理新的父节点的hasChild字段*/
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
knowledgeProject
.
getPid
()))
{
super
.
update
(
Wrappers
.<
KbKnowledgeProject
>
lambdaUpdate
().
set
(
KbKnowledgeProject:
:
getHasChild
,
KbKnowledgeProjectService
.
HASCHILD
).
eq
(
KbKnowledgeProject:
:
getId
,
newPid
));
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
knowledgeProject
.
getPid
()))
{
super
.
update
(
Wrappers
.<
KbKnowledgeProject
>
lambdaUpdate
().
set
(
KbKnowledgeProject:
:
getHasChild
,
KbKnowledgeProjectService
.
HASCHILD
).
eq
(
KbKnowledgeProject:
:
getId
,
newPid
));
}
knowledgeProject
.
setUpdateTime
(
new
Date
());
super
.
updateById
(
knowledgeProject
);
/**处理本节点的所有子节点的绝对路径*/
List
<
KbKnowledgeProject
>
list
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
like
(
KbKnowledgeProject:
:
getFullPath
,
knowledgeProject
.
getId
()));
if
(
CollectionUtil
.
isNotEmpty
(
list
)){
List
<
KbKnowledgeProject
>
list
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
like
(
KbKnowledgeProject:
:
getFullPath
,
knowledgeProject
.
getId
()));
if
(
CollectionUtil
.
isNotEmpty
(
list
))
{
String
finalNewPid
=
newPid
;
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
finalNewPid
))
{
/**非根节点 移动到其他非根节点*/
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
oldPid
))
{
list
.
forEach
(
e
->
{
list
.
forEach
(
e
->
{
e
.
setFullPath
(
e
.
getFullPath
().
replace
(
oldPid
,
finalNewPid
));
});
}
else
{
}
else
{
/**根节点 移动到其他非根节点*/
list
.
forEach
(
e
->
{
e
.
setFullPath
(
finalNewPid
+
","
+
e
.
getFullPath
());
list
.
forEach
(
e
->
{
e
.
setFullPath
(
finalNewPid
+
","
+
e
.
getFullPath
());
});
}
}
else
{
}
else
{
/**移动到根节点*/
list
.
forEach
(
e
->
{
e
.
setFullPath
(
e
.
getFullPath
().
replace
(
oldPid
+
","
,
""
));
list
.
forEach
(
e
->
{
e
.
setFullPath
(
e
.
getFullPath
().
replace
(
oldPid
+
","
,
""
));
});
}
}
...
...
@@ -113,8 +114,8 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
@Override
public
Result
<?>
del
(
String
id
)
{
KbKnowledgeProject
byId
=
super
.
getById
(
id
);
super
.
remove
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
like
(
KbKnowledgeProject:
:
getFullPath
,
id
));
if
(
StringUtils
.
isNotBlank
(
byId
.
getPid
())
&&!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
byId
.
getPid
()))
{
super
.
remove
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
like
(
KbKnowledgeProject:
:
getFullPath
,
id
));
if
(
StringUtils
.
isNotBlank
(
byId
.
getPid
())
&&
!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
byId
.
getPid
()))
{
updateOldParentNode
(
byId
.
getPid
());
}
return
Result
.
OK
();
...
...
@@ -122,28 +123,36 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
@Override
public
Result
<?>
lists
(
String
sign
,
String
projectId
,
String
category
)
{
List
<
KbKnowledgeProject
>
kbKnowledgeProjects
;
if
(
"1"
.
equals
(
sign
)
&&
StringUtils
.
isBlank
(
projectId
))
{
List
<
KbKnowledgeProject
>
kbKnowledgeProjects
;
if
(
"1"
.
equals
(
sign
)
&&
StringUtils
.
isBlank
(
projectId
))
{
kbKnowledgeProjects
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
eq
(
KbKnowledgeProject:
:
getPid
,
KbKnowledgeProjectService
.
ROOT_PID_VALUE
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
}
else
{
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
}
else
{
kbKnowledgeProjects
=
super
.
list
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
()
.
eq
(
KbKnowledgeProject:
:
getPid
,
projectId
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
.
eq
(
KbKnowledgeProject:
:
getPid
,
projectId
)
.
eq
(
StrUtil
.
isNotBlank
(
category
),
KbKnowledgeProject:
:
getCategory
,
category
));
}
return
Result
.
OK
(
kbKnowledgeProjects
);
}
@Override
public
List
<
KbKnowledgeProject
>
getTreeListBy
(
String
id
)
{
return
baseMapper
.
selectList
(
new
LambdaQueryWrapper
<
KbKnowledgeProject
>()
.
like
(
KbKnowledgeProject:
:
getFullPath
,
id
)
);
}
/**
* 根据所传pid查询旧的父级节点的子节点并修改相应状态值
*
* @param pid
*/
private
void
updateOldParentNode
(
String
pid
)
{
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
pid
))
{
Integer
count
=
baseMapper
.
selectCount
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
eq
(
KbKnowledgeProject:
:
getPid
,
pid
));
if
(
count
==
null
||
count
<=
1
)
{
super
.
update
(
Wrappers
.<
KbKnowledgeProject
>
lambdaUpdate
().
set
(
KbKnowledgeProject:
:
getHasChild
,
KbKnowledgeProjectService
.
NOCHILD
).
eq
(
KbKnowledgeProject:
:
getId
,
pid
));
if
(!
KbKnowledgeProjectService
.
ROOT_PID_VALUE
.
equals
(
pid
))
{
Integer
count
=
baseMapper
.
selectCount
(
Wrappers
.<
KbKnowledgeProject
>
lambdaQuery
().
eq
(
KbKnowledgeProject:
:
getPid
,
pid
));
if
(
count
==
null
||
count
<=
1
)
{
super
.
update
(
Wrappers
.<
KbKnowledgeProject
>
lambdaUpdate
().
set
(
KbKnowledgeProject:
:
getHasChild
,
KbKnowledgeProjectService
.
NOCHILD
).
eq
(
KbKnowledgeProject:
:
getId
,
pid
));
}
}
}
...
...
src/main/java/com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
浏览文件 @
32282b3a
...
...
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.zzsn.knowbase.constant.Constants
;
import
com.zzsn.knowbase.entity.Content
;
import
com.zzsn.knowbase.entity.KbKnowledgeProject
;
import
com.zzsn.knowbase.entity.KnowFile
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
com.zzsn.knowbase.enums.KnowTypeEnum
;
...
...
@@ -15,6 +16,7 @@ import com.zzsn.knowbase.kafka.message.KnowledgeMessage;
import
com.zzsn.knowbase.kafka.producer.ProduceInfo
;
import
com.zzsn.knowbase.service.IKnowledgeService
;
import
com.zzsn.knowbase.service.ILocalFileService
;
import
com.zzsn.knowbase.service.KbKnowledgeProjectService
;
import
com.zzsn.knowbase.util.*
;
import
com.zzsn.knowbase.vo.KnowledgeParam
;
import
com.zzsn.knowbase.vo.KnowledgeVO
;
...
...
@@ -62,6 +64,8 @@ class KnowledgeServiceImpl implements IKnowledgeService {
@Autowired
private
CodeGenerateUtil
codeGenerateUtil
;
@Autowired
private
KbKnowledgeProjectService
knowledgeProjectService
;
@Autowired
private
ProduceInfo
produceInfo
;
@Value
(
"${python.searchUrl:}"
)
private
String
searchUrl
;
...
...
@@ -162,8 +166,11 @@ class KnowledgeServiceImpl implements IKnowledgeService {
@Override
public
IPage
<
KnowledgeVO
>
queryPageList
(
KnowledgeParam
knowledgeParam
,
Integer
pageNo
,
Integer
pageSize
,
String
column
,
String
order
)
{
List
<
KbKnowledgeProject
>
treeList
=
knowledgeProjectService
.
getTreeListBy
(
knowledgeParam
.
getKnowledgeProjectId
());
if
(
treeList
.
isEmpty
()){
return
null
;
}
List
<
Long
>
catList
=
treeList
.
stream
().
map
(
KbKnowledgeProject:
:
getId
).
collect
(
Collectors
.
toList
());
SearchRequest
searchRequest
=
new
SearchRequest
(
Constants
.
ES_DATA_FOR_KNOWLEDGE
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
//设置分页参数
...
...
@@ -254,9 +261,11 @@ class KnowledgeServiceImpl implements IKnowledgeService {
if
(
StringUtils
.
isNotEmpty
(
knowledgeParam
.
getId
()))
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"id"
,
knowledgeParam
.
getId
()));
}
if
(!
catList
.
isEmpty
())
{
boolQuery
.
must
(
QueryBuilders
.
termsQuery
(
"knowledgeProjectId"
,
catList
));
}
if
(
null
!=
knowledgeParam
.
getVerifyStatus
())
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"verifyStatus"
,
knowledgeParam
.
getVerifyStatus
()));
}
//时间过滤筛选
...
...
@@ -295,10 +304,14 @@ class KnowledgeServiceImpl implements IKnowledgeService {
@Override
public
IPage
<
KnowledgeVO
>
listFromPython
(
KnowledgeParam
knowledgeParam
,
Integer
pageNo
,
Integer
pageSize
,
String
column
,
String
order
)
{
Object
data
=
redisUtil
.
get
(
genKey
(
knowledgeParam
));
Object
data
=
redisUtil
.
get
(
genKey
(
knowledgeParam
));
// if (org.springframework.util.StringUtils.isEmpty(data)) {
if
(
true
)
{
List
<
KbKnowledgeProject
>
treeList
=
knowledgeProjectService
.
getTreeListBy
(
knowledgeParam
.
getKnowledgeProjectId
());
if
(
treeList
.
isEmpty
()){
return
null
;
}
StringBuilder
typeNames
=
new
StringBuilder
();
if
(
null
!=
knowledgeParam
.
getTypeIds
()){
for
(
String
type
:
knowledgeParam
.
getTypeIds
().
split
(
","
))
{
...
...
@@ -314,7 +327,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
params
.
put
(
"verifierName"
,
knowledgeParam
.
getVerifierName
());
params
.
put
(
"verifyStatus"
,
knowledgeParam
.
getVerifyStatus
());
params
.
put
(
"verifyStartTime"
,
knowledgeParam
.
getVerifyStartTime
());
params
.
put
(
"knowledge_base_id"
,
knowledgeParam
.
getKnowledgeProjectId
()
);
params
.
put
(
"knowledge_base_id"
,
treeList
);
params
.
put
(
"verifyEndTime"
,
knowledgeParam
.
getVerifyEndTime
());
params
.
put
(
"score_threshold"
,
600
);
//score
params
.
put
(
"vector_search_top_k"
,
100
);
//number
...
...
src/main/java/com/zzsn/knowbase/vo/IntelligentQaParam.java
浏览文件 @
32282b3a
...
...
@@ -14,9 +14,6 @@ public class IntelligentQaParam {
* 问题
*/
private
String
question
;
/**
* 知识库ids
*/
private
String
knowledgeProjectIds
;
private
String
kbKnowledgeIds
;
}
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
浏览文件 @
32282b3a
...
...
@@ -77,5 +77,6 @@ public class KnowledgeParam {
* 审核结束时间
*/
private
String
verifyEndTime
;
private
String
kbKnowledgeId
;
}
src/main/java/com/zzsn/knowbase/vo/KnowledgeVO.java
浏览文件 @
32282b3a
...
...
@@ -26,6 +26,7 @@ public class KnowledgeVO {
private
String
verifyTime
;
private
String
publishDate
;
private
String
createTime
;
private
String
kbKnowledgeId
;
private
String
type
;
private
String
verifierName
;
private
Integer
score
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论