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
57cae5c5
Commit
57cae5c5
authored
Jun 20, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:AI 对话通用上下文获取接口
parent
760d93f7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
102 additions
and
2 deletions
+102
-2
AiDialoguesService.java
...cn/com/poc/ai_dialogues/aggregate/AiDialoguesService.java
+20
-0
AiDialoguesServiceImpl.java
...c/ai_dialogues/aggregate/impl/AiDialoguesServiceImpl.java
+56
-0
AiDialoguesRest.java
...in/java/cn/com/poc/ai_dialogues/rest/AiDialoguesRest.java
+9
-1
AiDialoguesRestImpl.java
...n/com/poc/ai_dialogues/rest/impl/AiDialoguesRestImpl.java
+17
-1
No files found.
src/main/java/cn/com/poc/ai_dialogues/aggregate/AiDialoguesService.java
View file @
57cae5c5
...
...
@@ -2,6 +2,7 @@ package cn.com.poc.ai_dialogues.aggregate;
import
cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum
;
import
cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto
;
import
cn.com.poc.expose.dto.DialoguesContextDto
;
import
java.util.List
;
...
...
@@ -17,6 +18,15 @@ public interface AiDialoguesService {
String
create
(
AiDialoguesTypeEnum
type
,
Long
userId
)
throws
Exception
;
/**
* 获取对话详情
*
* @param dialoguesId 对话ID
* @param userId 用户ID
*/
AiDialoguesRecordDto
dialoguesDetail
(
String
dialoguesId
,
Long
userId
)
throws
Exception
;
/**
* 获取对话列表
*
...
...
@@ -34,4 +44,14 @@ public interface AiDialoguesService {
*/
void
batchDelete
(
List
<
String
>
dialoguesIds
,
Long
userId
)
throws
Exception
;
/**
* 获取对话上下文
*
* @param dialogueId
* @return
* @throws Exception
*/
List
<
DialoguesContextDto
>
getDialogueContext
(
String
dialogueId
);
}
src/main/java/cn/com/poc/ai_dialogues/aggregate/impl/AiDialoguesServiceImpl.java
View file @
57cae5c5
package
cn
.
com
.
poc
.
ai_dialogues
.
aggregate
.
impl
;
import
cn.com.poc.agent_application.query.AgentApplicationDialoguesRecordQueryItem
;
import
cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService
;
import
cn.com.poc.ai_dialogues.aggregate.AiDialoguesService
;
import
cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum
;
import
cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto
;
...
...
@@ -8,6 +10,8 @@ import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.expose.dto.DialoguesContextDto
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -34,11 +38,42 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
private
BizAgentApplicationDialoguesRecordService
bizAgentApplicationDialoguesRecordService
;
@Override
public
String
create
(
AiDialoguesTypeEnum
type
,
Long
userId
)
throws
Exception
{
return
bizAiDialoguesService
.
create
(
type
.
getType
(),
userId
);
}
@Override
public
AiDialoguesRecordDto
dialoguesDetail
(
String
dialoguesId
,
Long
userId
)
throws
Exception
{
logger
.
info
(
"get ai dialogues detail dialoguesId:{}, userId:{}"
,
dialoguesId
,
userId
);
BizAiDialoguesEntity
bizAiDialoguesEntity
=
new
BizAiDialoguesEntity
();
bizAiDialoguesEntity
.
setDialoguesId
(
dialoguesId
);
bizAiDialoguesEntity
.
setMemberId
(
userId
);
bizAiDialoguesEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizAiDialoguesEntity
>
entities
=
bizAiDialoguesService
.
findByExample
(
bizAiDialoguesEntity
,
null
);
if
(
CollectionUtils
.
isEmpty
(
entities
))
{
throw
new
BusinessException
(
"对话不存在"
);
}
BizAiDialoguesEntity
entity
=
entities
.
get
(
0
);
AiDialoguesRecordDto
dto
=
new
AiDialoguesRecordDto
();
dto
.
setDialoguesId
(
entity
.
getDialoguesId
());
dto
.
setDialoguesType
(
entity
.
getDialoguesType
());
dto
.
setTitle
(
entity
.
getTitle
());
dto
.
setMemberId
(
entity
.
getMemberId
());
if
(
StringUtils
.
isNotBlank
(
entity
.
getFileUrl
()))
{
dto
.
setFileUrl
(
entity
.
getFileUrl
());
dto
.
setFileName
(
bizFileUploadRecordService
.
getFileNameByFileUrl
(
entity
.
getFileUrl
()));
}
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
return
dto
;
}
@Override
public
List
<
AiDialoguesRecordDto
>
getList
(
AiDialoguesTypeEnum
type
,
Long
userId
)
throws
Exception
{
logger
.
info
(
"get ai dialogues list type:{}, userId:{}"
,
type
,
userId
);
...
...
@@ -87,4 +122,25 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
bizAiDialoguesService
.
deletedById
(
entities
.
get
(
0
).
getId
());
}
}
@Override
public
List
<
DialoguesContextDto
>
getDialogueContext
(
String
dialogueId
)
{
List
<
AgentApplicationDialoguesRecordQueryItem
>
items
=
bizAgentApplicationDialoguesRecordService
.
getDialogueRecord
(
dialogueId
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
items
))
{
return
items
.
stream
().
map
(
value
->
{
DialoguesContextDto
dto
=
new
DialoguesContextDto
();
dto
.
setRole
(
value
.
getRole
());
dto
.
setAgentId
(
value
.
getAgentId
());
dto
.
setContent
(
value
.
getContent
());
dto
.
setReasoningContent
(
value
.
getReasoningContent
());
dto
.
setImageUrl
(
value
.
getImageUrl
());
dto
.
setTimestamp
(
value
.
getTimestamp
());
dto
.
setAgentTitle
(
value
.
getAgentTitle
());
dto
.
setAgentAvatar
(
value
.
getAgentAvatar
());
return
dto
;
}
).
collect
(
Collectors
.
toList
());
}
return
null
;
}
}
src/main/java/cn/com/poc/ai_dialogues/rest/AiDialoguesRest.java
View file @
57cae5c5
...
...
@@ -2,6 +2,7 @@ package cn.com.poc.ai_dialogues.rest;
import
cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto
;
import
cn.com.poc.ai_dialogues.dto.BatchDelAiDialoguesDto
;
import
cn.com.poc.expose.dto.DialoguesContextDto
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Permission
;
...
...
@@ -35,8 +36,15 @@ public interface AiDialoguesRest extends BaseRest {
void
batchDelete
(
@RequestBody
BatchDelAiDialoguesDto
dto
)
throws
Exception
;
/**
* 获取对话上下文
* 获取对话详情
*
* @param dialoguesId 对话ID
*/
AiDialoguesRecordDto
dialoguesDetail
(
@RequestParam
String
dialoguesId
)
throws
Exception
;
/**
* 获取对话上下文
*/
List
<
DialoguesContextDto
>
getDialogueContext
(
@RequestParam
String
dialogueId
)
throws
Exception
;
}
src/main/java/cn/com/poc/ai_dialogues/rest/impl/AiDialoguesRestImpl.java
View file @
57cae5c5
...
...
@@ -5,9 +5,9 @@ import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum;
import
cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto
;
import
cn.com.poc.ai_dialogues.dto.BatchDelAiDialoguesDto
;
import
cn.com.poc.ai_dialogues.rest.AiDialoguesRest
;
import
cn.com.poc.ai_dialogues.service.BizAiDialoguesService
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.expose.dto.DialoguesContextDto
;
import
cn.com.poc.support.security.oauth.entity.UserBaseEntity
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.hutool.core.util.ObjectUtil
;
...
...
@@ -52,4 +52,20 @@ public class AiDialoguesRestImpl implements AiDialoguesRest {
}
aiDialoguesService
.
batchDelete
(
dto
.
getDialoguesIds
(),
userBaseEntity
.
getUserId
());
}
@Override
public
AiDialoguesRecordDto
dialoguesDetail
(
String
dialoguesId
)
throws
Exception
{
Assert
.
notBlank
(
dialoguesId
,
"对话id不能为空"
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
if
(
ObjectUtil
.
isEmpty
(
userBaseEntity
))
{
throw
new
BusinessException
(
"用户未登录"
);
}
return
aiDialoguesService
.
dialoguesDetail
(
dialoguesId
,
userBaseEntity
.
getUserId
());
}
@Override
public
List
<
DialoguesContextDto
>
getDialogueContext
(
String
dialogueId
)
{
Assert
.
notBlank
(
dialogueId
);
return
aiDialoguesService
.
getDialogueContext
(
dialogueId
);
}
}
\ No newline at end of file
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