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
1
Merge Requests
1
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
6cad786e
Commit
6cad786e
authored
Aug 22, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat[智能问答]:猜你想问优化数据
parent
b5de80f2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
13 deletions
+35
-13
AiDialoguesServiceImpl.java
...c/ai_dialogues/aggregate/impl/AiDialoguesServiceImpl.java
+35
-13
No files found.
src/main/java/cn/com/poc/ai_dialogues/aggregate/impl/AiDialoguesServiceImpl.java
View file @
6cad786e
package
cn
.
com
.
poc
.
ai_dialogues
.
aggregate
.
impl
;
import
cn.com.poc.agent_application.aggregate.AgentApplicationService
;
import
cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity
;
import
cn.com.poc.agent_application.query.AgentApplicationDialoguesRecordQueryItem
;
import
cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService
;
...
...
@@ -16,7 +17,9 @@ import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService;
import
cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService
;
import
cn.com.poc.ai_dialogues.service.BizAiDialoguesService
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.constant.XLangConstant
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.RedisService
;
import
cn.com.poc.common.utils.JsonUtils
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.expose.dto.DialoguesContextDto
;
...
...
@@ -34,10 +37,8 @@ import org.slf4j.LoggerFactory;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.security.SecureRandom
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -70,6 +71,9 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
@Resource
private
BizAgentApplicationGcConfigService
bizAgentApplicationGcConfigService
;
@Resource
private
RedisService
redisService
;
@Override
public
String
create
(
AiDialoguesTypeEnum
type
,
Long
userId
)
throws
Exception
{
return
bizAiDialoguesService
.
create
(
type
.
getType
(),
userId
);
...
...
@@ -232,15 +236,33 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
@Override
public
List
<
String
>
guessYouAsk
(
String
type
)
throws
Exception
{
List
<
BizAiDialoguesGuessYouAskEntity
>
entities
=
bizAiDialoguesGuessYouAskService
.
findByExample
(
new
BizAiDialoguesGuessYouAskEntity
(),
null
);
// 新增随机逻辑
if
(
CollectionUtils
.
isNotEmpty
(
entities
))
{
Collections
.
shuffle
(
entities
);
// 打乱顺序
return
entities
.
stream
()
.
limit
(
8
)
// 取前八个
.
map
(
BizAiDialoguesGuessYouAskEntity:
:
getQuestion
)
.
collect
(
Collectors
.
toList
());
//
String
redisKey
=
"AGENT_APPLICATION_RECOMMEND_QUESTIONS:"
+
XLangConstant
.
ZH_CN
;
long
size
=
redisService
.
lGetListSize
(
redisKey
);
if
(
size
<
8
)
{
redisService
.
del
(
redisKey
);
return
Collections
.
emptyList
();
}
return
Collections
.
emptyList
();
List
<
Object
>
lastRecomendIdSet
=
null
;
Set
<
Long
>
indexSet
=
new
HashSet
<>(
8
);
SecureRandom
secureRandom
=
new
SecureRandom
();
do
{
long
id
=
secureRandom
.
nextInt
((
int
)
size
);
if
(
CollectionUtils
.
isNotEmpty
(
lastRecomendIdSet
)
&&
lastRecomendIdSet
.
stream
().
anyMatch
(
v
->
String
.
valueOf
(
v
).
equals
(
String
.
valueOf
(
id
))))
{
continue
;
}
indexSet
.
add
(
id
);
}
while
(
indexSet
.
size
()
<
8
);
List
<
String
>
result
=
new
ArrayList
<>(
8
);
for
(
Long
index
:
indexSet
)
{
Object
str
=
redisService
.
lGetIndex
(
redisKey
,
index
);
result
.
add
(
str
.
toString
());
}
return
result
;
}
}
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