Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
elleai
Project
Project
Details
Activity
Releases
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
ai-tech
E
ellehuis-group
backend
elleai
Commits
e51a2e6c
Commit
e51a2e6c
authored
Oct 30, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保留原AI提问接口
parent
012c8d80
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
4 deletions
+73
-4
AppChatCompletionService.java
.../elleai/application/service/AppChatCompletionService.java
+61
-1
ChatCompletionMobileController.java
...leai/controller/front/ChatCompletionMobileController.java
+12
-3
No files found.
src/main/java/cn/breeze/elleai/application/service/AppChatCompletionService.java
View file @
e51a2e6c
...
...
@@ -329,7 +329,67 @@ public class AppChatCompletionService {
* @param request
* @return
*/
public
Flux
<
ServerSentEvent
<
UserAskResultMobileDto
>>
userAsk
(
UserPrincipal
userPrincipal
,
UserQaMobileRequestDto
request
)
{
public
UserAskResultMobileDto
userAsk
(
UserPrincipal
userPrincipal
,
UserQaMobileRequestDto
request
)
{
UserAskResultMobileDto
result
=
new
UserAskResultMobileDto
();
// 获取会话详情
UserQaRequestModel
requestModel
=
new
UserQaRequestModel
();
requestModel
.
setChatCompletionId
(
request
.
getChatCompletionId
());
requestModel
.
setUserId
(
userPrincipal
.
getUserId
());
UserChatCompletionResponseModel
ccModel
=
chatCompletionService
.
userQaDetail
(
requestModel
);
String
sessionId
=
""
;
if
(
Objects
.
nonNull
(
ccModel
)
&&
StrUtil
.
isNotEmpty
(
ccModel
.
getSessionId
()))
{
sessionId
=
ccModel
.
getSessionId
();
}
// 更新会话信息
UserChatCompletionSaveModel
saveModel
=
new
UserChatCompletionSaveModel
();
saveModel
.
setUserId
(
userPrincipal
.
getUserId
());
saveModel
.
setUserName
(
userPrincipal
.
getUserName
());
saveModel
.
setId
(
request
.
getChatCompletionId
());
saveModel
.
setLastQuestion
(
request
.
getContent
());
saveModel
.
setShopId
(
userPrincipal
.
getShopId
());
saveModel
.
setShopName
(
userPrincipal
.
getShopName
());
// 首次提问
if
(
Objects
.
isNull
(
request
.
getChatCompletionId
())
||
(
Objects
.
nonNull
(
ccModel
)
&&
StrUtil
.
isEmpty
(
ccModel
.
getFirstQuestion
())))
{
saveModel
.
setCreateTime
(
new
Date
());
saveModel
.
setFirstQuestion
(
request
.
getContent
());
}
Integer
recordId
=
chatCompletionService
.
saveUserQaSession
(
saveModel
);
// 保存问答详情
chatCompletionService
.
saveUserQaRecord
(
recordId
,
0
,
request
.
getContent
(),
request
.
getAssistantId
());
// 问一下AI
AiChatComplateResultDto
complateResultDto
=
ask4Knowledge
(
sessionId
,
userPrincipal
.
getUserId
(),
request
.
getContent
(),
request
.
getAssistantId
());
if
(
Objects
.
nonNull
(
complateResultDto
))
{
String
replyContent
=
complateResultDto
.
getContent
();
// 更新DIFY会话ID
if
(
StrUtil
.
isEmpty
(
sessionId
))
{
UserChatCompletionSaveModel
updateModel
=
new
UserChatCompletionSaveModel
();
updateModel
.
setId
(
recordId
);
updateModel
.
setSessionId
(
sessionId
);
chatCompletionService
.
saveUserQaSession
(
updateModel
);
}
// 保存AI问答详情
chatCompletionService
.
saveUserQaRecord
(
recordId
,
1
,
replyContent
,
request
.
getAssistantId
());
result
.
setChatCompletionId
(
recordId
);
result
.
setReplyContent
(
replyContent
);
}
return
result
;
}
/**
* 用户提问
* @param request
* @return
*/
public
Flux
<
ServerSentEvent
<
UserAskResultMobileDto
>>
userAsk4Stream
(
UserPrincipal
userPrincipal
,
UserQaMobileRequestDto
request
)
{
// 获取会话详情
UserQaRequestModel
requestModel
=
new
UserQaRequestModel
();
requestModel
.
setChatCompletionId
(
request
.
getChatCompletionId
());
...
...
src/main/java/cn/breeze/elleai/controller/front/ChatCompletionMobileController.java
View file @
e51a2e6c
...
...
@@ -56,11 +56,11 @@ public class ChatCompletionMobileController {
@Operation
(
summary
=
"用户提问"
)
@PostMapping
(
"/ask"
)
public
Flux
<
ServerSentEvent
<
UserAskResultMobileDto
>>
ask
(
@Parameter
(
hidden
=
true
)
UserPrincipal
userPrincipal
,
@PostMapping
(
"/ask
_stream
"
)
public
Flux
<
ServerSentEvent
<
UserAskResultMobileDto
>>
askStream
(
@Parameter
(
hidden
=
true
)
UserPrincipal
userPrincipal
,
@RequestBody
UserQaMobileRequestDto
request
)
{
request
.
setContent
(
commonService
.
sentenceWordCorrect
(
request
.
getContent
()));
return
chatCompletionService
.
userAsk
(
userPrincipal
,
request
);
return
chatCompletionService
.
userAsk
4Stream
(
userPrincipal
,
request
);
}
@Operation
(
summary
=
"切换助手"
)
...
...
@@ -88,4 +88,13 @@ public class ChatCompletionMobileController {
PageResult
<
UserChatCompletionHistoryMobileDto
>
pageResult
=
chatCompletionService
.
userQaHistoryMobilePaginQuery
(
userPrincipal
,
chatCompletionId
,
pageNo
,
pageSize
);
return
ApiResponse
.
ok
(
pageResult
);
}
@Operation
(
summary
=
"用户提问"
)
@PostMapping
(
"/ask"
)
public
ApiResponse
<
UserAskResultMobileDto
>
ask
(
@Parameter
(
hidden
=
true
)
UserPrincipal
userPrincipal
,
@RequestBody
UserQaMobileRequestDto
request
)
{
request
.
setContent
(
commonService
.
sentenceWordCorrect
(
request
.
getContent
()));
UserAskResultMobileDto
result
=
chatCompletionService
.
userAsk
(
userPrincipal
,
request
);
return
ApiResponse
.
ok
(
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