Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Pangea-Agent
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
2
Merge Requests
2
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
Gavin-Group
Pangea-Agent
Commits
66f45998
Commit
66f45998
authored
Dec 29, 2025
by
youxiaoji
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* [针对访客预约智能体使用智能体自带的提示词而不是系统提示词]
parent
31c51157
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
35 deletions
+29
-35
DefaultReactExecutor.java
...java/pangea/hiagent/agent/react/DefaultReactExecutor.java
+19
-22
VisitorAppointmentTool.java
...java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
+5
-8
InfoCollectorService.java
...java/pangea/hiagent/web/service/InfoCollectorService.java
+5
-5
No files found.
backend/src/main/java/pangea/hiagent/agent/react/DefaultReactExecutor.java
View file @
66f45998
...
@@ -125,29 +125,26 @@ public class DefaultReactExecutor implements ReactExecutor {
...
@@ -125,29 +125,26 @@ public class DefaultReactExecutor implements ReactExecutor {
List
<
org
.
springframework
.
ai
.
chat
.
messages
.
Message
>
messages
=
new
ArrayList
<>();
List
<
org
.
springframework
.
ai
.
chat
.
messages
.
Message
>
messages
=
new
ArrayList
<>();
messages
.
add
(
new
SystemMessage
(
systemPrompt
));
messages
.
add
(
new
SystemMessage
(
systemPrompt
));
if
(!
newChat
)
{
if
(
agent
!=
null
)
{
try
{
// 如果没有提供用户ID,则尝试获取当前用户ID
if
(
userId
==
null
)
{
userId
=
UserUtils
.
getCurrentUserIdStatic
();
}
String
sessionId
=
memoryService
.
generateSessionId
(
agent
,
userId
);
if
(
agent
!=
null
)
{
int
historyLength
=
agent
.
getHistoryLength
()
!=
null
?
agent
.
getHistoryLength
()
:
10
;
try
{
// 如果没有提供用户ID,则尝试获取当前用户ID
if
(
userId
==
null
)
{
userId
=
UserUtils
.
getCurrentUserIdStatic
();
}
String
sessionId
=
memoryService
.
generateSessionId
(
agent
,
userId
);
int
historyLength
=
agent
.
getHistoryLength
()
!=
null
?
agent
.
getHistoryLength
()
:
10
;
List
<
org
.
springframework
.
ai
.
chat
.
messages
.
Message
>
historyMessages
=
List
<
org
.
springframework
.
ai
.
chat
.
messages
.
Message
>
historyMessages
=
memoryService
.
getHistoryMessages
(
sessionId
,
historyLength
);
memoryService
.
getHistoryMessages
(
sessionId
,
historyLength
);
if
(!
newChat
)
{
messages
.
addAll
(
historyMessages
);
messages
.
addAll
(
historyMessages
);
memoryService
.
addUserMessageToMemory
(
sessionId
,
userInput
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"获取历史对话记录时发生错误: {}"
,
e
.
getMessage
());
}
}
memoryService
.
addUserMessageToMemory
(
sessionId
,
userInput
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"获取历史对话记录时发生错误: {}"
,
e
.
getMessage
());
}
}
}
}
messages
.
add
(
new
UserMessage
(
userInput
));
messages
.
add
(
new
UserMessage
(
userInput
));
for
(
Message
message
:
messages
)
{
for
(
Message
message
:
messages
)
{
log
.
info
(
"message is {}"
,
message
);
log
.
info
(
"message is {}"
,
message
);
...
@@ -179,13 +176,13 @@ public class DefaultReactExecutor implements ReactExecutor {
...
@@ -179,13 +176,13 @@ public class DefaultReactExecutor implements ReactExecutor {
log
.
info
(
"agentTools {}"
,
agentTools
);
log
.
info
(
"agentTools {}"
,
agentTools
);
if
(
agent
.
getId
().
compareToIgnoreCase
(
"agent-8"
)
==
0
)
{
if
(
agent
.
getId
().
compareToIgnoreCase
(
"agent-8"
)
==
0
)
{
if
(!
chatService
.
chatExists
(
tmpUserId
,
agent
.
getId
()))
{
//
if (!chatService.chatExists(tmpUserId, agent.getId())) {
log
.
info
(
"new chat for {} {} "
,
userId
,
agent
.
getId
());
//
log.info("new chat for {} {} ", userId, agent.getId());
prompt
=
buildPromptWithHistory
(
defaultSystemPrompt
,
userInput
,
agent
,
tmpUserId
,
true
);
prompt
=
buildPromptWithHistory
(
agent
.
getSystemPrompt
()
,
userInput
,
agent
,
tmpUserId
,
true
);
}
//
}
chatClient
.
prompt
(
prompt
)
chatClient
.
prompt
(
prompt
)
.
tools
(
agentTools
.
toArray
())
.
tools
(
agentTools
.
toArray
())
.
toolContext
(
Map
.
of
(
"emitterId"
,
emitterId
,
"userId"
,
sseTokenEmitter
.
getUserId
(),
"agentId"
,
agent
.
getId
()))
.
toolContext
(
Map
.
of
(
"emitterId"
,
emitterId
,
"userId"
,
sseTokenEmitter
.
getUserId
(),
"agentId"
,
agent
.
getId
()))
.
stream
()
.
stream
()
.
chatResponse
()
.
chatResponse
()
.
subscribe
(
.
subscribe
(
...
...
backend/src/main/java/pangea/hiagent/tool/impl/VisitorAppointmentTool.java
View file @
66f45998
...
@@ -196,7 +196,7 @@ public class VisitorAppointmentTool {
...
@@ -196,7 +196,7 @@ public class VisitorAppointmentTool {
log
.
info
(
"json {}"
,
obj
);
log
.
info
(
"json {}"
,
obj
);
String
fieldName
=
obj
.
getString
(
"field_name"
);
String
fieldName
=
obj
.
getString
(
"field_name"
);
String
fieldValue
=
infoCollectorService
.
getValue
(
obj
.
getString
(
"code"
)
).
toString
();
String
fieldValue
=
infoCollectorService
.
getValue
(
fieldName
).
toString
();
log
.
info
(
"fieldName {} fieldValue {} "
,
fieldName
,
fieldValue
);
log
.
info
(
"fieldName {} fieldValue {} "
,
fieldName
,
fieldValue
);
if
(
fieldName
.
compareToIgnoreCase
(
"访问园区"
)
==
0
)
{
if
(
fieldName
.
compareToIgnoreCase
(
"访问园区"
)
==
0
)
{
parkValue
=
fieldValue
;
parkValue
=
fieldValue
;
...
@@ -234,7 +234,7 @@ public class VisitorAppointmentTool {
...
@@ -234,7 +234,7 @@ public class VisitorAppointmentTool {
for
(
JSONObject
tmp
:
dateJson
)
{
for
(
JSONObject
tmp
:
dateJson
)
{
String
fieldName
=
tmp
.
getString
(
"field_name"
);
String
fieldName
=
tmp
.
getString
(
"field_name"
);
String
fieldValue
=
infoCollectorService
.
getValue
(
tmp
.
getString
(
"code"
)
).
toString
();
String
fieldValue
=
infoCollectorService
.
getValue
(
fieldName
).
toString
();
String
[]
values
=
fieldValue
.
split
(
"-"
);
String
[]
values
=
fieldValue
.
split
(
"-"
);
page
.
locator
(
".van-cell"
)
page
.
locator
(
".van-cell"
)
...
@@ -316,8 +316,8 @@ public class VisitorAppointmentTool {
...
@@ -316,8 +316,8 @@ public class VisitorAppointmentTool {
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
tmp
=
jsonArray
.
getJSONObject
(
i
);
JSONObject
tmp
=
jsonArray
.
getJSONObject
(
i
);
JSONObject
pangeJson
=
tmp
.
getJSONObject
(
"pangea_json"
);
JSONObject
pangeJson
=
tmp
.
getJSONObject
(
"pangea_json"
);
if
(
infoCollectorService
.
getValue
(
tmp
.
getString
(
"
cod
e"
))
!=
null
){
if
(
infoCollectorService
.
getValue
(
tmp
.
getString
(
"
field_nam
e"
))
!=
null
){
pangeJson
.
getJSONObject
(
"props"
).
put
(
"value"
,
infoCollectorService
.
getValue
(
tmp
.
getString
(
"
cod
e"
)).
toString
());
pangeJson
.
getJSONObject
(
"props"
).
put
(
"value"
,
infoCollectorService
.
getValue
(
tmp
.
getString
(
"
field_nam
e"
)).
toString
());
}
}
lackJson
.
add
(
pangeJson
);
lackJson
.
add
(
pangeJson
);
}
}
...
@@ -333,12 +333,9 @@ public class VisitorAppointmentTool {
...
@@ -333,12 +333,9 @@ public class VisitorAppointmentTool {
sb
.
append
(
"\n"
);
sb
.
append
(
"\n"
);
for
(
Map
.
Entry
<
String
,
String
>
key
:
keys
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
String
>
key
:
keys
.
entrySet
())
{
sb
.
append
(
key
.
getValue
());
sb
.
append
(
key
.
getValue
());
sb
.
append
(
"("
);
sb
.
append
(
key
);
sb
.
append
(
")"
);
sb
.
append
(
","
);
sb
.
append
(
","
);
sb
.
append
(
"\n"
);
}
}
sb
.
append
(
"\n"
);
sb
.
append
(
"提示用户继续提交信息"
);
sb
.
append
(
"提示用户继续提交信息"
);
}
}
...
...
backend/src/main/java/pangea/hiagent/web/service/InfoCollectorService.java
View file @
66f45998
...
@@ -52,15 +52,15 @@ public class InfoCollectorService {
...
@@ -52,15 +52,15 @@ public class InfoCollectorService {
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++){
JSONObject
object
=
jsonArray
.
getJSONObject
(
i
);
JSONObject
object
=
jsonArray
.
getJSONObject
(
i
);
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"接访员工手机号"
)
==
0
){
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"接访员工手机号"
)
==
0
){
String
code
=
object
.
getString
(
"
cod
e"
);
String
code
=
object
.
getString
(
"
field_nam
e"
);
saveValue
(
code
,
"15841169015"
);
saveValue
(
code
,
"15841169015"
);
}
}
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"接访员工姓名"
)
==
0
){
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"接访员工姓名"
)
==
0
){
String
code
=
object
.
getString
(
"
cod
e"
);
String
code
=
object
.
getString
(
"
field_nam
e"
);
saveValue
(
code
,
"杜艺"
);
saveValue
(
code
,
"杜艺"
);
}
}
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"证件类型"
)
==
0
){
if
(
object
.
getString
(
"field_name"
).
compareToIgnoreCase
(
"证件类型"
)
==
0
){
String
code
=
object
.
getString
(
"
cod
e"
);
String
code
=
object
.
getString
(
"
field_nam
e"
);
saveValue
(
code
,
"居民身份证"
);
saveValue
(
code
,
"居民身份证"
);
}
}
}
}
...
@@ -73,7 +73,7 @@ public class InfoCollectorService {
...
@@ -73,7 +73,7 @@ public class InfoCollectorService {
public
Map
<
String
,
String
>
findLackInfo
(
String
pageId
)
{
public
Map
<
String
,
String
>
findLackInfo
(
String
pageId
)
{
Set
<
String
>
valueKeys
=
values
.
keySet
();
Set
<
String
>
valueKeys
=
values
.
keySet
();
log
.
info
(
"value keys {}"
,
valueKeys
);
log
.
info
(
"value keys {}"
,
valueKeys
);
Set
<
String
>
allKeys
=
infos
.
get
(
pageId
).
stream
().
map
(
t
->
((
JSONObject
)
t
).
getString
(
"
cod
e"
)).
collect
(
Collectors
.
toSet
());
Set
<
String
>
allKeys
=
infos
.
get
(
pageId
).
stream
().
map
(
t
->
((
JSONObject
)
t
).
getString
(
"
field_nam
e"
)).
collect
(
Collectors
.
toSet
());
log
.
info
(
"all keys {}"
,
allKeys
);
log
.
info
(
"all keys {}"
,
allKeys
);
allKeys
.
removeAll
(
valueKeys
);
allKeys
.
removeAll
(
valueKeys
);
log
.
info
(
"lack keys {}"
,
allKeys
);
log
.
info
(
"lack keys {}"
,
allKeys
);
...
@@ -86,7 +86,7 @@ public class InfoCollectorService {
...
@@ -86,7 +86,7 @@ public class InfoCollectorService {
infos
.
get
(
pageId
).
stream
().
forEach
(
t
->
infos
.
get
(
pageId
).
stream
().
forEach
(
t
->
{
{
JSONObject
info
=
(
JSONObject
)
t
;
JSONObject
info
=
(
JSONObject
)
t
;
String
code
=
info
.
getString
(
"
cod
e"
);
String
code
=
info
.
getString
(
"
field_nam
e"
);
if
(
allKeys
.
contains
(
code
))
{
if
(
allKeys
.
contains
(
code
))
{
lackInfos
.
put
(
code
,
info
.
getString
(
"field_name"
));
lackInfos
.
put
(
code
,
info
.
getString
(
"field_name"
));
}
}
...
...
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