Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pms-dispatch-assistant
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
姜耀祖
pms-dispatch-assistant
Commits
b61b4e32
Commit
b61b4e32
authored
Apr 18, 2025
by
赵灿灿
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改配置信息
parent
05b75a64
Pipeline
#21037
passed with stages
in 3 minutes and 2 seconds
Changes
2
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
118 additions
and
90 deletions
+118
-90
LangChainController.java
...chassistant/controller/langchain/LangChainController.java
+104
-75
ai-chat-vue.js
src/main/resources/static/pages/langchain/js/ai-chat-vue.js
+14
-15
No files found.
src/main/java/com/infoepoch/pms/dispatchassistant/controller/langchain/LangChainController.java
View file @
b61b4e32
This diff is collapsed.
Click to expand it.
src/main/resources/static/pages/langchain/js/ai-chat-vue.js
View file @
b61b4e32
...
@@ -110,7 +110,8 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
...
@@ -110,7 +110,8 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
// 会话相关方法
// 会话相关方法
async
getSessionId
()
{
async
getSessionId
()
{
try
{
try
{
const
response
=
await
fetch
(
'../../api/langchain/getSessionId'
);
//const response = await fetch('../../api/langchain/getSessionId');
const
response
=
await
fetch
(
'../../api/langchain/getDialogId'
);
const
dataJson
=
await
response
.
json
();
const
dataJson
=
await
response
.
json
();
this
.
sessionId
=
dataJson
.
data
;
this
.
sessionId
=
dataJson
.
data
;
}
catch
(
error
)
{
}
catch
(
error
)
{
...
@@ -172,12 +173,12 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
...
@@ -172,12 +173,12 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
}
}
});
});
},
},
connectSSE
(
chatMessage
)
{
connectSSE
(
chatMessage
)
{
// 在消息列表中添加一个带"正在输入"指示器的AI消息
// 在消息列表中添加一个带"正在输入"指示器的AI消息
const
aiMessageIndex
=
this
.
messages
.
length
;
const
aiMessageIndex
=
this
.
messages
.
length
;
this
.
messages
.
push
({
role
:
'ai'
,
content
:
''
,
typing
:
true
});
this
.
messages
.
push
({
role
:
'ai'
,
content
:
''
,
typing
:
true
});
// 自动滚动到底部
// 自动滚动到底部
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
const
messagesDiv
=
document
.
getElementById
(
'chat-messages'
);
const
messagesDiv
=
document
.
getElementById
(
'chat-messages'
);
...
@@ -185,16 +186,14 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
...
@@ -185,16 +186,14 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
messagesDiv
.
scrollTop
=
messagesDiv
.
scrollHeight
;
messagesDiv
.
scrollTop
=
messagesDiv
.
scrollHeight
;
}
}
});
});
// 连接SSE
// 连接SSE
this
.
currentEventSource
=
new
EventSource
(
'../../api/langchain/sse
BigTwo?chatMessage='
+
encodeURIComponent
(
chatMessage
)
+
"&session
Id="
+
this
.
sessionId
);
this
.
currentEventSource
=
new
EventSource
(
'../../api/langchain/sse
Intelligent?chatMessage='
+
encodeURIComponent
(
chatMessage
)
+
"&dialog
Id="
+
this
.
sessionId
);
let
responseText
=
''
;
let
responseText
=
''
;
this
.
currentEventSource
.
onmessage
=
(
event
)
=>
{
this
.
currentEventSource
.
onmessage
=
(
event
)
=>
{
const
data
=
JSON
.
parse
(
event
.
data
);
const
data
=
JSON
.
parse
(
event
.
data
);
const
content
=
data
.
dataToSend
[
1
].
data
;
const
content
=
data
.
dataToSend
[
1
].
data
;
if
(
content
!==
"stop"
)
{
if
(
content
!==
"stop"
)
{
responseText
+=
content
;
responseText
+=
content
;
this
.
messages
[
aiMessageIndex
].
content
=
responseText
;
this
.
messages
[
aiMessageIndex
].
content
=
responseText
;
...
@@ -202,15 +201,15 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
...
@@ -202,15 +201,15 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
// 移除输入指示器
// 移除输入指示器
this
.
messages
[
aiMessageIndex
].
typing
=
false
;
this
.
messages
[
aiMessageIndex
].
typing
=
false
;
this
.
chatHistory
.
push
({
role
:
'ai'
,
content
:
responseText
});
this
.
chatHistory
.
push
({
role
:
'ai'
,
content
:
responseText
});
// 切换回发送按钮
// 切换回发送按钮
this
.
isResponding
=
false
;
this
.
isResponding
=
false
;
// 关闭事件源
// 关闭事件源
this
.
currentEventSource
.
close
();
this
.
currentEventSource
.
close
();
this
.
currentEventSource
=
null
;
this
.
currentEventSource
=
null
;
}
}
// 自动滚动到底部
// 自动滚动到底部
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
const
messagesDiv
=
document
.
getElementById
(
'chat-messages'
);
const
messagesDiv
=
document
.
getElementById
(
'chat-messages'
);
...
@@ -219,17 +218,17 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
...
@@ -219,17 +218,17 @@ require(['jquery', 'vue', 'utils', 'echarts', 'global'], function ($, Vue, utils
}
}
});
});
};
};
this
.
currentEventSource
.
onerror
=
()
=>
{
this
.
currentEventSource
.
onerror
=
()
=>
{
console
.
error
(
'SSE连接异常'
);
console
.
error
(
'SSE连接异常'
);
// 移除输入指示器,显示错误信息
// 移除输入指示器,显示错误信息
this
.
messages
[
aiMessageIndex
].
typing
=
false
;
this
.
messages
[
aiMessageIndex
].
typing
=
false
;
this
.
messages
[
aiMessageIndex
].
content
=
responseText
||
'抱歉,连接出现问题,请稍后再试。'
;
this
.
messages
[
aiMessageIndex
].
content
=
responseText
||
'抱歉,连接出现问题,请稍后再试。'
;
// 切换回发送按钮
// 切换回发送按钮
this
.
isResponding
=
false
;
this
.
isResponding
=
false
;
// 关闭事件源
// 关闭事件源
this
.
currentEventSource
.
close
();
this
.
currentEventSource
.
close
();
this
.
currentEventSource
=
null
;
this
.
currentEventSource
=
null
;
...
...
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