Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
d91f5549
Commit
d91f5549
authored
Feb 20, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:Agent应用-知识库高级配置
parent
7d2bfad0
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
181 additions
and
11 deletions
+181
-11
BizKnowledgeInfoConvert.java
...cn/com/poc/knowledge/convert/BizKnowledgeInfoConvert.java
+4
-0
BizKnowledgeInfoDto.java
...in/java/cn/com/poc/knowledge/dto/BizKnowledgeInfoDto.java
+15
-2
BizKnowledgeInfoEntity.java
...a/cn/com/poc/knowledge/entity/BizKnowledgeInfoEntity.java
+16
-1
BizKnowledgeInfoModel.java
...ava/cn/com/poc/knowledge/model/BizKnowledgeInfoModel.java
+15
-0
KnowledgeInfosQuery.sql
...n/java/cn/com/poc/knowledge/query/KnowledgeInfosQuery.sql
+2
-0
KnowledgeInfosQueryCondition.java
...com/poc/knowledge/query/KnowledgeInfosQueryCondition.java
+10
-1
KnowledgeInfosQueryItem.java
...a/cn/com/poc/knowledge/query/KnowledgeInfosQueryItem.java
+16
-0
KnowledgeRestImpl.java
...ava/cn/com/poc/knowledge/rest/impl/KnowledgeRestImpl.java
+4
-2
DemandKnowledgeService.java
.../resource/demand/ai/aggregate/DemandKnowledgeService.java
+6
-4
DemandKnowledgeServiceImpl.java
.../demand/ai/aggregate/impl/DemandKnowledgeServiceImpl.java
+7
-1
SearchKnowledgeRequest.java
...ce/demand/ai/entity/knowledge/SearchKnowledgeRequest.java
+10
-0
VectorSearchConfig.java
...source/demand/ai/entity/knowledge/VectorSearchConfig.java
+39
-0
KnowledgeServiceTest.java
src/test/java/cn/com/poc/knowledge/KnowledgeServiceTest.java
+37
-0
No files found.
src/main/java/cn/com/poc/knowledge/convert/BizKnowledgeInfoConvert.java
View file @
d91f5549
...
...
@@ -11,6 +11,7 @@ public class BizKnowledgeInfoConvert {
BizKnowledgeInfoEntity
entity
=
new
BizKnowledgeInfoEntity
();
entity
.
setId
(
model
.
getId
());
entity
.
setKnowledgeName
(
model
.
getKnowledgeName
());
entity
.
setKnowledgeType
(
model
.
getKnowledgeType
());
entity
.
setMemberId
(
model
.
getMemberId
());
entity
.
setKdIds
(
model
.
getKdIds
());
entity
.
setTrainStatus
(
model
.
getTrainStatus
());
...
...
@@ -28,6 +29,7 @@ public class BizKnowledgeInfoConvert {
public
static
BizKnowledgeInfoModel
entityToModel
(
BizKnowledgeInfoEntity
entity
)
{
BizKnowledgeInfoModel
model
=
new
BizKnowledgeInfoModel
();
model
.
setId
(
entity
.
getId
());
model
.
setKnowledgeType
(
entity
.
getKnowledgeType
());
model
.
setKnowledgeName
(
entity
.
getKnowledgeName
());
model
.
setMemberId
(
entity
.
getMemberId
());
model
.
setKdIds
(
entity
.
getKdIds
());
...
...
@@ -47,6 +49,7 @@ public class BizKnowledgeInfoConvert {
BizKnowledgeInfoDto
dto
=
new
BizKnowledgeInfoDto
();
dto
.
setId
(
entity
.
getId
());
dto
.
setKnowledgeName
(
entity
.
getKnowledgeName
());
dto
.
setKnowledgeType
(
entity
.
getKnowledgeType
());
dto
.
setMemberId
(
entity
.
getMemberId
());
dto
.
setIsOpen
(
entity
.
getIsOpen
());
dto
.
setKdIds
(
entity
.
getKdIds
());
...
...
@@ -59,6 +62,7 @@ public class BizKnowledgeInfoConvert {
public
static
BizKnowledgeInfoEntity
dtoToEntity
(
BizKnowledgeInfoDto
dto
)
{
BizKnowledgeInfoEntity
entity
=
new
BizKnowledgeInfoEntity
();
entity
.
setId
(
dto
.
getId
());
entity
.
setKnowledgeType
(
dto
.
getKnowledgeType
());
entity
.
setKnowledgeName
(
dto
.
getKnowledgeName
());
entity
.
setMemberId
(
dto
.
getMemberId
());
entity
.
setKdIds
(
dto
.
getKdIds
());
...
...
src/main/java/cn/com/poc/knowledge/dto/BizKnowledgeInfoDto.java
View file @
d91f5549
package
cn
.
com
.
poc
.
knowledge
.
dto
;
import
javax.persistence.Column
;
public
class
BizKnowledgeInfoDto
{
/**
...
...
@@ -32,6 +30,21 @@ public class BizKnowledgeInfoDto {
this
.
knowledgeName
=
knowledgeName
;
}
/**
* knowledge_type
* 知识库类型 Base-基础 QA-问答
*/
private
String
knowledgeType
;
public
String
getKnowledgeType
()
{
return
this
.
knowledgeType
;
}
public
void
setKnowledgeType
(
String
knowledgeType
)
{
this
.
knowledgeType
=
knowledgeType
;
}
/**
* member_id
* 用户ID
...
...
src/main/java/cn/com/poc/knowledge/entity/BizKnowledgeInfoEntity.java
View file @
d91f5549
...
...
@@ -28,7 +28,22 @@ public class BizKnowledgeInfoEntity {
public
void
setKnowledgeName
(
java
.
lang
.
String
knowledgeName
){
this
.
knowledgeName
=
knowledgeName
;
}
/** member_id
/**
* knowledge_type
* 知识库类型 QA-问答 Base-基础
*/
private
String
knowledgeType
;
public
String
getKnowledgeType
()
{
return
knowledgeType
;
}
public
void
setKnowledgeType
(
String
knowledgeType
)
{
this
.
knowledgeType
=
knowledgeType
;
}
/** member_id
*用户ID
*/
private
java
.
lang
.
String
memberId
;
...
...
src/main/java/cn/com/poc/knowledge/model/BizKnowledgeInfoModel.java
View file @
d91f5549
...
...
@@ -63,6 +63,21 @@ public class BizKnowledgeInfoModel extends BaseModelClass implements Serializabl
super
.
addValidField
(
"knowledgeName"
);
}
/**
* knowledge_type
* 知识库类型 QA-问答 Base-基础
*/
private
String
knowledgeType
;
@Column
(
name
=
"knowledge_type"
,
length
=
5
)
public
String
getKnowledgeType
()
{
return
this
.
knowledgeType
;
}
public
void
setKnowledgeType
(
String
knowledgeType
)
{
this
.
knowledgeType
=
knowledgeType
;
super
.
addValidField
(
"knowledgeType"
);
}
/**
* member_id
...
...
src/main/java/cn/com/poc/knowledge/query/KnowledgeInfosQuery.sql
View file @
d91f5549
select
id
,
knowledge_name
,
knowledge_type
,
member_id
,
kd_ids
,
train_status
,
...
...
@@ -18,4 +19,5 @@ where
<<
and
member_id
=
:
memberId
>>
<<
and
LOCATE
(:
query
,
knowledge_name
)
>>
<<
and
train_status
=
:
trainStatus
>>
<<
and
knowledge_type
=
:
knowledgeType
>>
order
by
MODIFIED_TIME
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/query/KnowledgeInfosQueryCondition.java
View file @
d91f5549
...
...
@@ -40,5 +40,14 @@ public class KnowledgeInfosQueryCondition implements Serializable{
public
void
setTrainStatus
(
java
.
lang
.
String
trainStatus
){
this
.
trainStatus
=
trainStatus
;
}
private
java
.
lang
.
String
knowledgeType
;
public
String
getKnowledgeType
()
{
return
knowledgeType
;
}
public
void
setKnowledgeType
(
String
knowledgeType
)
{
this
.
knowledgeType
=
knowledgeType
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/knowledge/query/KnowledgeInfosQueryItem.java
View file @
d91f5549
...
...
@@ -44,6 +44,22 @@ public class KnowledgeInfosQueryItem extends BaseItemClass implements Serializab
this
.
knowledgeName
=
knowledgeName
;
}
/**
* knowledge_type
* knowledge_type
*/
private
java
.
lang
.
String
knowledgeType
;
@Column
(
name
=
"knowledge_type"
)
public
String
getKnowledgeType
()
{
return
knowledgeType
;
}
public
void
setKnowledgeType
(
String
knowledgeType
)
{
this
.
knowledgeType
=
knowledgeType
;
}
/**
* member_id
* member_id
...
...
src/main/java/cn/com/poc/knowledge/rest/impl/KnowledgeRestImpl.java
View file @
d91f5549
...
...
@@ -260,12 +260,14 @@ public class KnowledgeRestImpl implements KnowledgeRest {
@Override
public
BizKnowledgeInfoDto
createKnowledge
(
BizKnowledgeInfoDto
dto
)
throws
Exception
{
Assert
.
notNull
(
dto
.
getKnowledgeName
(),
I18nUtils
.
message
(
"assert/knowledge.name.null"
));
if
(
StringUtils
.
isBlank
(
dto
.
getKnowledgeType
()))
{
dto
.
setKnowledgeType
(
KnowledgeConstant
.
KnowledgeType
.
BASE
);
}
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
// checkEquity(userBaseEntity);
BizKnowledgeInfoEntity
bizKnowledgeInfoEntity
=
new
BizKnowledgeInfoEntity
();
bizKnowledgeInfoEntity
.
setKnowledgeName
(
dto
.
getKnowledgeName
());
bizKnowledgeInfoEntity
.
setMemberId
(
userBaseEntity
.
getUserId
().
toString
());
bizKnowledgeInfoEntity
.
setKnowledgeType
(
dto
.
getKnowledgeType
());
bizKnowledgeInfoEntity
.
setTrainStatus
(
KnowledgeConstant
.
TrainStatus
.
UNOPENED
);
bizKnowledgeInfoEntity
.
setKnowledgeDesc
(
dto
.
getDesc
());
BizKnowledgeInfoEntity
entity
=
bizKnowledgeInfoService
.
save
(
bizKnowledgeInfoEntity
);
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/DemandKnowledgeService.java
View file @
d91f5549
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
aggregate
;
import
cn.com.poc.thirdparty.resource.demand.ai.constants.KnowledgeSearchTypeEnum
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.GetKnowledgeChunkInfoResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.SegmentationConfigRequest
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
...
...
@@ -45,12 +46,13 @@ public interface DemandKnowledgeService {
/**
* 知识库查询
*
* @param query 查询文本
* @param knowledgeIds 知识库id
* @param topK 返回个数
* @param query 查询文本
* @param knowledgeIds 知识库id
* @param topK 返回个数
* @param searchTypeEnum 查询类型
* @return 查询结果
*/
List
<
String
>
searchKnowledge
(
String
query
,
List
<
String
>
knowledgeIds
,
Integer
topK
);
List
<
String
>
searchKnowledge
(
String
query
,
List
<
String
>
knowledgeIds
,
Integer
topK
,
KnowledgeSearchTypeEnum
searchTypeEnum
);
/**
* 获取知识库分片
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/impl/DemandKnowledgeServiceImpl.java
View file @
d91f5549
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
aggregate
.
impl
;
import
cn.com.poc.thirdparty.resource.demand.ai.constants.KnowledgeSearchTypeEnum
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient
;
import
cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.aggregate.DemandKnowledgeService
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.*
;
import
cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService
;
import
cn.com.yict.framemax.core.config.Config
;
import
cn.com.yict.framemax.core.i18n.I18nMessageException
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.hutool.core.lang.Assert
;
...
...
@@ -77,7 +79,7 @@ public class DemandKnowledgeServiceImpl implements DemandKnowledgeService {
}
@Override
public
List
<
String
>
searchKnowledge
(
String
query
,
List
<
String
>
knowledgeIds
,
Integer
topK
)
{
public
List
<
String
>
searchKnowledge
(
String
query
,
List
<
String
>
knowledgeIds
,
Integer
topK
,
KnowledgeSearchTypeEnum
searchTypeEnum
)
{
Assert
.
notBlank
(
query
);
if
(
CollectionUtils
.
isEmpty
(
knowledgeIds
))
{
return
new
ArrayList
<
String
>();
...
...
@@ -89,6 +91,10 @@ public class DemandKnowledgeServiceImpl implements DemandKnowledgeService {
searchKnowledgeRequest
.
setQuery
(
query
);
searchKnowledgeRequest
.
setKnowLedgeIds
(
knowledgeIds
);
searchKnowledgeRequest
.
setTopK
(
topK
);
VectorSearchConfig
vectorSearchConfig
=
new
VectorSearchConfig
();
vectorSearchConfig
.
setSearchType
(
searchTypeEnum
);
vectorSearchConfig
.
setApiKey
(
Config
.
get
(
"large-model.apikey"
));
searchKnowledgeRequest
.
setVectorSearchConfig
(
vectorSearchConfig
);
SearchKnowledgeResult
searchKnowledgeResult
=
dgToolsAbstractHttpClient
.
doRequest
(
DgtoolsApiRoute
.
DgtoolsAI
.
SEARCH_KNOWLEDGE
,
searchKnowledgeRequest
,
getHeaders
());
if
(
null
==
searchKnowledgeResult
)
{
throw
new
I18nMessageException
(
"exception/query.knowledge.base.exception"
);
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/knowledge/SearchKnowledgeRequest.java
View file @
d91f5549
...
...
@@ -12,6 +12,8 @@ public class SearchKnowledgeRequest extends AbstractRequest<SearchKnowledgeResul
private
List
<
String
>
knowLedgeIds
;
private
Integer
topK
;
private
VectorSearchConfig
vectorSearchConfig
;
public
String
getQuery
()
{
return
query
;
}
...
...
@@ -36,6 +38,14 @@ public class SearchKnowledgeRequest extends AbstractRequest<SearchKnowledgeResul
this
.
topK
=
topK
;
}
public
VectorSearchConfig
getVectorSearchConfig
()
{
return
vectorSearchConfig
;
}
public
void
setVectorSearchConfig
(
VectorSearchConfig
vectorSearchConfig
)
{
this
.
vectorSearchConfig
=
vectorSearchConfig
;
}
@Override
public
String
getMethod
()
throws
Exception
{
return
null
;
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/knowledge/VectorSearchConfig.java
0 → 100644
View file @
d91f5549
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
knowledge
;
import
cn.com.poc.thirdparty.resource.demand.ai.constants.KnowledgeSearchTypeEnum
;
/**
* @author alex.yao
* @date 2025/2/18
*/
public
class
VectorSearchConfig
{
/**
* apiKey
*/
private
String
apiKey
;
/**
* 语义查询,关键字查询,混合查询
*/
private
KnowledgeSearchTypeEnum
searchType
;
public
String
getApiKey
()
{
return
apiKey
;
}
public
void
setApiKey
(
String
apiKey
)
{
this
.
apiKey
=
apiKey
;
}
public
KnowledgeSearchTypeEnum
getSearchType
()
{
return
searchType
;
}
public
void
setSearchType
(
KnowledgeSearchTypeEnum
searchType
)
{
this
.
searchType
=
searchType
;
}
}
src/test/java/cn/com/poc/knowledge/KnowledgeServiceTest.java
0 → 100644
View file @
d91f5549
package
cn
.
com
.
poc
.
knowledge
;
import
cn.com.poc.knowledge.aggregate.KnowledgeService
;
import
cn.com.yict.framemax.core.spring.SingleContextInitializer
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.web.WebAppConfiguration
;
import
javax.annotation.Resource
;
/**
* @author alex.yao
* @date 2025/2/6
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
initializers
=
SingleContextInitializer
.
class
)
@WebAppConfiguration
public
class
KnowledgeServiceTest
{
@Resource
private
KnowledgeService
knowledgeService
;
@Before
public
void
setUp
()
{
MockitoAnnotations
.
initMocks
(
this
);
}
@Test
public
void
test_delDocument
()
{
knowledgeService
.
delDocument
(
138
,
1071
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment