Agent Chat fixed

This commit is contained in:
CakeCN
2024-12-08 22:46:08 +08:00
parent 8746e4b7d1
commit 859dbcfb59
6 changed files with 23 additions and 34 deletions

View File

@@ -98,9 +98,10 @@ agent_manager = AgentManager()
class AgentNamespace(Namespace):
def on_connect(self):
user = request.args.get('username')
folder_name = request.args.get('folder')
def on_login(self, data):
data = json.loads(data)
user = data['username']
folder_name = data['folder']
user_uuid = user_id2uuid[user]
session['user_id'] = user_uuid
print(f'User connected with session user_id: {user_uuid}')
@@ -114,6 +115,7 @@ class AgentNamespace(Namespace):
user_uuid, agent = agent_manager.new_agent(markdown, markdown_prompts, score_prompts, id=user_uuid)
join_room(user_uuid) # 将该用户加入以user_id为名的room
def on_message(self, data):
print(f"Message from client: {data}")
id = session.get('user_id')
@@ -122,7 +124,7 @@ class AgentNamespace(Namespace):
res = agent_manager.invoke(id, data, backboard_manager.get_backboard(id).get_info_prompt())
reply = f"AI: {res.content['speak']}"
# 将回复发送回前端
emit('receive_message', reply)
emit('message', reply)
def on_disconnect(self):

View File

@@ -3,22 +3,21 @@ var socket;
document.addEventListener('DOMContentLoaded', function() {
data = window.appData;
console.log(data);
socket = new WebSocket('ws://localhost:5500/agent');
socket.onopen = () => {
console.log('Connected to agent WebSocket');
ws.send(JSON.stringify({ message: 'Hello from client' })); // 发送数据
};
socket = io('http://localhost:5500/agent?username='+data.username+'&folder='+data.folder);
socket.on('connect', function() {
console.log('Connected to server');
socket.emit('login',JSON.stringify(data));
});
// 监听来自服务器的消息
socket.onmessage = (event) => {
socket.on('message', function(data) {
// 显示服务器的回复消息
data = event.data
const serverMessage = document.createElement('div');
serverMessage.innerHTML = `<div class="chat-message server-message"><b>服务器:</b> ${marked.parse(data)}</div>`;
document.getElementById('chatbox').appendChild(serverMessage);
// 滚动到最新消息
document.getElementById('chatbox').scrollTop = document.getElementById('chatbox').scrollHeight;
};
});
});
@@ -45,23 +44,6 @@ chineseRadio.addEventListener('change', function() {
if (chineseRadio.checked) language = 'zn';
});
function sendMessage() {
const input = document.getElementById('messageInput').value;
if (input.trim() === '') return;
// 创建一个新的消息元素
const newMessage = document.createElement('div');
newMessage.classList.add('chat-message');
newMessage.innerHTML = `<b>${language === 'en' ? 'You:' : '你:'}</b> ${input}`;
chatbox.appendChild(newMessage);
// 清空输入框
document.getElementById('messageInput').value = '';
// 滚动到最新消息
chatbox.scrollTop = chatbox.scrollHeight;
}
// 发送消息
@@ -78,7 +60,7 @@ function sendMessage() {
document.getElementById('chatbox').appendChild(userMessage);
// 发送消息到服务器
socket.emit('send_message', input);
socket.emit('message', input);
// 清空输入框
document.getElementById('messageInput').value = '';

View File

@@ -10,7 +10,8 @@
<script>
document.cookie = "vscode-tkn=44edc269-6f88-46ab-9790-dc253f66ac36; path=/; SameSite=None; Secure";
</script>
<script src="https://cdn.bootcdn.net/ajax/libs/marked/13.0.2/marked.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/15.0.3/marked.min.js"></script>
<script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://unpkg.com/split.js/dist/split.min.js"></script>
</head>