diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentChatHistoryDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentChatHistoryDTO.java index a444917d..fd49e52b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentChatHistoryDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentChatHistoryDTO.java @@ -22,4 +22,7 @@ public class AgentChatHistoryDTO { @Schema(description = "音频ID") private String audioId; + + @Schema(description = "MAC地址") + private String macAddress; } \ No newline at end of file diff --git a/main/manager-web/src/apis/module/agent.js b/main/manager-web/src/apis/module/agent.js index 87323f9c..fd8f6cf3 100644 --- a/main/manager-web/src/apis/module/agent.js +++ b/main/manager-web/src/apis/module/agent.js @@ -97,4 +97,50 @@ export default { }); }).send(); }, + // 获取智能体会话列表 + getAgentSessions(agentId, params, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/agent/${agentId}/sessions`) + .method('GET') + .data(params) + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail(() => { + RequestService.reAjaxFun(() => { + this.getAgentSessions(agentId, params, callback); + }); + }).send(); + }, + // 获取智能体聊天记录 + getAgentChatHistory(agentId, sessionId, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/agent/${agentId}/chat-history/${sessionId}`) + .method('GET') + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail(() => { + RequestService.reAjaxFun(() => { + this.getAgentChatHistory(agentId, sessionId, callback); + }); + }).send(); + }, +} + +export function getAgentSessions(agentId, params) { + return request({ + url: `/agent/${agentId}/sessions`, + method: 'get', + params + }); +} + +export function getAgentChatHistory(agentId, sessionId) { + return request({ + url: `/agent/${agentId}/chat-history/${sessionId}`, + method: 'get' + }); } diff --git a/main/manager-web/src/assets/user-avatar.png b/main/manager-web/src/assets/user-avatar.png new file mode 100644 index 00000000..c9960475 Binary files /dev/null and b/main/manager-web/src/assets/user-avatar.png differ diff --git a/main/manager-web/src/components/ChatHistoryDialog.vue b/main/manager-web/src/components/ChatHistoryDialog.vue new file mode 100644 index 00000000..967df436 --- /dev/null +++ b/main/manager-web/src/components/ChatHistoryDialog.vue @@ -0,0 +1,366 @@ + + + + + + + \ No newline at end of file diff --git a/main/manager-web/src/components/DeviceItem.vue b/main/manager-web/src/components/DeviceItem.vue index 2ac0bbac..fa81a04d 100644 --- a/main/manager-web/src/components/DeviceItem.vue +++ b/main/manager-web/src/components/DeviceItem.vue @@ -26,6 +26,9 @@
设备管理({{ device.deviceCount }})
+
+ 聊天记录 +
最近对话:{{ device.lastConnectedAt }}
@@ -51,6 +54,9 @@ export default { }, handleDeviceManage() { this.$router.push({ path: '/device-management', query: { agentId: this.device.agentId } }); + }, + handleChatHistory() { + this.$emit('chat-history', { agentId: this.device.agentId, agentName: this.device.agentName }) } } } diff --git a/main/manager-web/src/views/home.vue b/main/manager-web/src/views/home.vue index 8091b8bb..e276ec20 100644 --- a/main/manager-web/src/views/home.vue +++ b/main/manager-web/src/views/home.vue @@ -32,11 +32,7 @@
@@ -62,6 +52,7 @@ + @@ -69,13 +60,14 @@