diff --git a/Html/apps/static/js/chatbox.js b/Html/apps/static/js/chatbox.js
index 8e13dbd..2a70e41 100644
--- a/Html/apps/static/js/chatbox.js
+++ b/Html/apps/static/js/chatbox.js
@@ -112,71 +112,58 @@ document.addEventListener('DOMContentLoaded', function () {
// 滚动到最新消息
document.getElementById('chatbox').scrollTop = document.getElementById('chatbox').scrollHeight;
});
- // 创建批准消息
- function createApproveMessage(element) {
- const funcName = element.data.name;
-
- // 移除已存在的相同函数批准消息
- if (activeApprovals.hasOwnProperty(funcName)) {
- document.querySelectorAll(`.approve-message[data-function="${funcName}"]`).forEach(el => el.remove());
- }
- activeApprovals[funcName] = Date.now();
-
- const requestMessage = document.createElement('div');
- requestMessage.className = 'chat-message server-message approve-message';
- requestMessage.setAttribute('data-function', funcName);
-
- const description = document.createElement('div');
- const argsDescription = JSON.stringify(element.data.args);
- description.innerHTML = `Function: ${element.data.name}(${argsDescription || ''})`;
-
- const approveButton = document.createElement('button');
- approveButton.innerHTML = '';
- approveButton.data = element;
- approveButton.className = 'approve-button';
- approveButton.onclick = function (event) {
- socket.emit('message', JSON.stringify({ type: 'function', data: element }));
- event.currentTarget.disabled = true;
- event.currentTarget.classList.add('disabled');
- };
-
- requestMessage.appendChild(description);
- requestMessage.appendChild(approveButton);
-
- return requestMessage;
- }
-
- // 获取聊天框元素
- function getChatbox() {
- return document.getElementById('chatbox');
- }
-
- // 滚动聊天框到底部
- function scrollChatboxToBottom() {
- const chatbox = getChatbox();
- chatbox.scrollTop = chatbox.scrollHeight;
- }
-
socket.on('request_function', function(data){
try {
console.log("request_function", data);
- // 统一数据格式为数组
- const requests = typeof data === 'string' ? JSON.parse(data) : data;
- const requestArray = Array.isArray(requests) ? requests : [requests];
-
+ if (typeof data === 'string') {
+ data = JSON.parse(data);
+ }
+ if (typeof data === 'object') {
+ data = [data];
+ }
cleanupExpiredApprovals();// 先清理一次过期记录
-
- const chatbox = getChatbox();
-
- // 批量处理所有请求
- requestArray.forEach(element => {
- const approveMessage = createApproveMessage(element);
- chatbox.appendChild(approveMessage);
- });
-
- scrollChatboxToBottom();
+ for (let i = 0; i < data.length; i++) {
+ const element = data[i];
+ const funcName = element.data.name;
+
+ if (activeApprovals.hasOwnProperty(funcName)) {
+ // 如果存在,找到并移除之前的元素
+ const existingElements = document.querySelectorAll(`.approve-message[data-function="${funcName}"]`);
+ existingElements.forEach(el => el.remove());
+ }
+ activeApprovals[funcName] = Date.now();
+
+ const requestMessage = document.createElement('div');
+ requestMessage.className = 'chat-message server-message approve-message';
+ requestMessage.setAttribute('data-function', funcName);
+
+ const description = document.createElement('div');
+ const argsDescription = JSON.stringify(element.data.args);
+ if (argsDescription) {
+ description.innerHTML = `Function: ${element.data.name}(${argsDescription})`;
+ }else {
+ description.innerHTML = `Function: ${element.data.name}()`;
+ }
+
+ const approveButton = document.createElement('button');
+ approveButton.innerHTML = '';
+ approveButton.data = element;
+ approveButton.className = 'approve-button';
+ approveButton.onclick = function (event) {
+ console.log(element);
+ socket.emit('message', JSON.stringify({ type: 'function', data: element }));
+ event.currentTarget.disabled = true;
+ event.currentTarget.classList.add('disabled');
+ };
+ requestMessage.appendChild(description);
+ requestMessage.appendChild(approveButton);
+
+ document.getElementById('chatbox').appendChild(requestMessage);
+ document.getElementById('chatbox').scrollTop = document.getElementById('chatbox').scrollHeight;
+ }
+
} catch (error) {
- console.error("Error handling request_function:", error);
+ console.log(error)
}
});
socket.on('next_chapter', function (data) {