shuakami / amyalmond_bot

👋 QQ机器人,AmyAlmond 是一个基于 Chatgpt 的智能聊天机器人,专为 QQ 群聊设计,支持多语言、上下文感知、长期记忆管理和高级自动化任务。
18 stars 2 forks source link

[BUG] 用户名索引错误 #9

Closed xiaoyueyoqwq closed 1 month ago

xiaoyueyoqwq commented 1 month ago

image

image

image

rt, bot在索引用户ID时给出了错误的答复,情况通常出现在bot遇上一个用户对话完后,目前暂时不知道触发和复现机制 如果有更多详情我会立即跟进,感谢回复

xiaoyueyoqwq commented 1 month ago

我的用户名应该是岳桑

shuakami commented 1 month ago

建议提供botpy完整的log(Bug发生前和bug发生后的80行)。Bug发生时的memory.json

另外,建议开启debug的log等级,当下次复现时,可以更快的解决此问题。

xiaoyueyoqwq commented 1 month ago

建议提供botpy.py完整的log(Bug发生前和bug发生后的80行)。Bug发生时的memory.json

另外,建议开启debug的log等级,当下次复现时,可以更快的解决此问题。

抱歉疏忽了,今天折腾了一整天 botpy: https://paste.ubuntu.com/p/tB8sQW5JFj/ memory.json: https://paste.ubuntu.com/p/Sx43fCwGDm/ 我在debug状态尝试复现这个问题,后续如果有更详细的信息我会进行补充

shuakami commented 1 month ago

想向您确认一遍,问题log是

2024-08-18 18:40:55,907 [INFO]  (client.py:162)_bot_login   [botpy] 登录机器人账号中...
2024-08-18 18:40:56,071 [INFO]  (robot.py:65)update_access_token    [botpy] access_token expires_in 1400
2024-08-18 18:40:56,514 [INFO]  (client.py:181)_bot_init    [botpy] 程序启动...
2024-08-18 18:40:56,515 [INFO]  (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2024-08-18 18:40:56,515 [INFO]  (client.py:242)bot_connect  [botpy] 会话启动中...
2024-08-18 18:40:56,516 [INFO]  (gateway.py:115)ws_connect  [botpy] 启动中...
2024-08-18 18:40:56,667 [INFO]  (gateway.py:142)ws_identify [botpy] 鉴权中...
2024-08-18 18:40:56,765 [INFO]  (gateway.py:85)on_message   [botpy] 机器人「Monika-测试中」启动成功!
2024-08-18 18:40:56,767 [INFO]  (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2024-08-18 18:40:56,768 [INFO]  (bot_client.py:105)on_ready Robot 「Monika-测试中」 is ready!
2024-08-18 18:40:56,769 [INFO]  (memory_manager.py:58)load_memory   Loading memory...
2024-08-18 18:40:56,769 [INFO]  (memory_manager.py:67)load_memory   Reading memory file: /home/ifc/amyalmond_bot/data/memory.json
2024-08-18 18:40:56,769 [INFO]  (memory_manager.py:76)load_memory   Memory file content: {'BE37CE035E518369B6C44CCBFAD0C4EB': [{'role': 'user', 'content': '消息来自茂茂::  牛奶巧克力!'}, {'role': 'assistant', 'content': '[好感度+2,因为茂茂喜欢牛奶巧克力]\n\n牛奶巧克力确实是一种很好的选择。\n\n[好感度不变]\n\n它既有巧克力的浓郁风味,又不会太苦。\n\n[好感度不变]\n\n而且它与各种不同的食材搭配都很好。\n\n[好感度不变]\n\n你最喜欢用牛奶巧克力做什么?\n\n[好感度不变]\n\n是吃它本身,还是把它用在烘焙食品或其他甜点中?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  吃他本身!'}, {'role': 'assistant', 'content': '[好感度+1,因为茂茂喜欢直接吃牛奶巧克力]\n\n直接吃牛奶巧克力棒确实是一种享受。\n\n[好感度不变]\n\n你可以品尝到巧克力的顺滑和浓郁。\n\n[好感度不变]\n\n而且你还可以控制自己吃多少。\n\n[好感度不变]\n\n不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。\n\n[好感度不变]\n\n你有没有兴趣?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  我们来说点别的吧'}, {'role': 'assistant', 'content': '[好感度不变]\n\n好,我们来谈点别的吧。\n\n[好感度不变]\n\n你想谈论什么?\n\n[好感度不变]\n\n你喜欢什么?\n\n[好感度不变]\n\n我们讨论一下你的爱好怎么样?\n\n[好感度不变]\n\n还是你想谈谈更严肃的话题?\n\n[好感度不变]'}]}
2024-08-18 18:40:56,770 [INFO]  (memory_manager.py:78)load_memory   Processing group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:40:56,770 [INFO]  (memory_manager.py:90)load_memory   Loaded 6 messages for group BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:40:56,770 [INFO]  (memory_manager.py:101)load_memory  群组 BE37CE035E518369B6C44CCBFAD0C4EB 的长期记忆文件不存在,将跳过加载。
2024-08-18 18:40:56,771 [INFO]  (memory_manager.py:105)load_memory  Memory loading completed
2024-08-18 18:40:58,165 [INFO]  (keep_alive.py:110)check_for_updates    当前版本: 1.1.2 (Beta_818003),最新开发版: v1.0.0-Beta_815001,当前版本 1.1.2 (Beta_818003) 已经是最新
2024-08-18 18:40:58,337 [INFO]  (keep_alive.py:145)keep_alive   OpenAI API 连接正常
2024-08-18 18:41:35,994 [INFO]  (message_handler.py:65)handle_group_message Received message: ' How's going' from user: 消息来自岳桑:(A67C3709E6872E99C88E637C9554C758) in group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:41:35,995 [INFO]  (message_handler.py:103)process_message_queue   Processing message from queue for group BE37CE035E518369B6C44CCBFAD0C4EB:  How's going
2024-08-18 18:41:38,786 [INFO]  (bot_client.py:180)get_gpt_response GPT response: [好感度不变]

Things are going well.

[好感度不变]

I'm enjoying talking to you。

[好感度不变]

How are things with you?

[好感度不变]

Is there anything I can do to help?

[好感度不变]
2024-08-18 18:41:39,578 [INFO]  (memory_manager.py:113)save_memory  Saving memory...
2024-08-18 18:43:11,426 [INFO]  (client.py:162)_bot_login   [botpy] 登录机器人账号中...
2024-08-18 18:43:11,608 [INFO]  (robot.py:65)update_access_token    [botpy] access_token expires_in 1264
2024-08-18 18:43:13,115 [INFO]  (client.py:181)_bot_init    [botpy] 程序启动...
2024-08-18 18:43:13,116 [INFO]  (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2024-08-18 18:43:13,116 [INFO]  (client.py:242)bot_connect  [botpy] 会话启动中...
2024-08-18 18:43:13,117 [INFO]  (gateway.py:115)ws_connect  [botpy] 启动中...
2024-08-18 18:43:13,251 [INFO]  (gateway.py:142)ws_identify [botpy] 鉴权中...
2024-08-18 18:43:13,361 [INFO]  (gateway.py:85)on_message   [botpy] 机器人「Monika-测试中」启动成功!
2024-08-18 18:43:13,362 [INFO]  (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2024-08-18 18:43:13,362 [INFO]  (bot_client.py:105)on_ready Robot 「Monika-测试中」 is ready!
2024-08-18 18:43:13,363 [INFO]  (memory_manager.py:58)load_memory   Loading memory...
2024-08-18 18:43:13,363 [INFO]  (memory_manager.py:67)load_memory   Reading memory file: /home/ifc/amyalmond_bot/data/memory.json
2024-08-18 18:43:13,364 [INFO]  (memory_manager.py:76)load_memory   Memory file content: {'BE37CE035E518369B6C44CCBFAD0C4EB': [{'role': 'user', 'content': '消息来自茂茂::  吃他本身!'}, {'role': 'assistant', 'content': '[好感度+1,因为茂茂喜欢直接吃牛奶巧克力]\n\n直接吃牛奶巧克力棒确实是一种享受。\n\n[好感度不变]\n\n你可以品尝到巧克力的顺滑和浓郁。\n\n[好感度不变]\n\n而且你还可以控制自己吃多少。\n\n[好感度不变]\n\n不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。\n\n[好感度不变]\n\n你有没有兴趣?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  我们来说点别的吧'}, {'role': 'assistant', 'content': '[好感度不变]\n\n好,我们来谈点别的吧。\n\n[好感度不变]\n\n你想谈论什么?\n\n[好感度不变]\n\n你喜欢什么?\n\n[好感度不变]\n\n我们讨论一下你的爱好怎么样?\n\n[好感度不变]\n\n还是你想谈谈更严肃的话题?\n\n[好感度不变]'}, {'role': 'user', 'content': "消息来自岳桑::  How's going"}, {'role': 'assistant', 'content': "[好感度不变]\n\nThings are going well.\n\n[好感度不变]\n\nI'm enjoying talking to you。\n\n[好感度不变]\n\nHow are things with you?\n\n[好感度不变]\n\nIs there anything I can do to help?\n\n[好感度不变]"}]}
2024-08-18 18:43:13,364 [INFO]  (memory_manager.py:78)load_memory   Processing group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:13,364 [INFO]  (memory_manager.py:90)load_memory   Loaded 6 messages for group BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:13,365 [INFO]  (memory_manager.py:101)load_memory  群组 BE37CE035E518369B6C44CCBFAD0C4EB 的长期记忆文件不存在,将跳过加载。
2024-08-18 18:43:13,365 [INFO]  (memory_manager.py:105)load_memory  Memory loading completed
2024-08-18 18:43:18,902 [INFO]  (message_handler.py:65)handle_group_message Received message: ' hi' from user: 消息来自岳桑:(A67C3709E6872E99C88E637C9554C758) in group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:18,903 [INFO]  (message_handler.py:103)process_message_queue   Processing message from queue for group BE37CE035E518369B6C44CCBFAD0C4EB:  hi
2024-08-18 18:43:22,103 [INFO]  (bot_client.py:180)get_gpt_response GPT response: [好感度+5,因为茂茂主动地和我打招呼]

Hi there!

[好感度+1,因为茂茂主动地和我打招呼]

It's nice to see you again。

[好感度+1,因为茂茂主动地和我打招呼]

How are you doing today?

[好感度不变]

Is there anything I can help you with?

[好感度不变]

这一部分吗

xiaoyueyoqwq commented 1 month ago

想向您确认一遍,问题log是

2024-08-18 18:40:55,907   [INFO]  (client.py:162)_bot_login   [botpy] 登录机器人账号中...
2024-08-18 18:40:56,071   [INFO]  (robot.py:65)update_access_token    [botpy] access_token expires_in 1400
2024-08-18 18:40:56,514   [INFO]  (client.py:181)_bot_init    [botpy] 程序启动...
2024-08-18 18:40:56,515   [INFO]  (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2024-08-18 18:40:56,515   [INFO]  (client.py:242)bot_connect  [botpy] 会话启动中...
2024-08-18 18:40:56,516   [INFO]  (gateway.py:115)ws_connect  [botpy] 启动中...
2024-08-18 18:40:56,667   [INFO]  (gateway.py:142)ws_identify [botpy] 鉴权中...
2024-08-18 18:40:56,765   [INFO]  (gateway.py:85)on_message   [botpy] 机器人「Monika-测试中」启动成功!
2024-08-18 18:40:56,767   [INFO]  (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2024-08-18 18:40:56,768   [INFO]  (bot_client.py:105)on_ready Robot 「Monika-测试中」 is ready!
2024-08-18 18:40:56,769   [INFO]  (memory_manager.py:58)load_memory   Loading memory...
2024-08-18 18:40:56,769   [INFO]  (memory_manager.py:67)load_memory   Reading memory file: /home/ifc/amyalmond_bot/data/memory.json
2024-08-18 18:40:56,769   [INFO]  (memory_manager.py:76)load_memory   Memory file content: {'BE37CE035E518369B6C44CCBFAD0C4EB': [{'role': 'user', 'content': '消息来自茂茂::  牛奶巧克力!'}, {'role': 'assistant', 'content': '[好感度+2,因为茂茂喜欢牛奶巧克力]\n\n牛奶巧克力确实是一种很好的选择。\n\n[好感度不变]\n\n它既有巧克力的浓郁风味,又不会太苦。\n\n[好感度不变]\n\n而且它与各种不同的食材搭配都很好。\n\n[好感度不变]\n\n你最喜欢用牛奶巧克力做什么?\n\n[好感度不变]\n\n是吃它本身,还是把它用在烘焙食品或其他甜点中?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  吃他本身!'}, {'role': 'assistant', 'content': '[好感度+1,因为茂茂喜欢直接吃牛奶巧克力]\n\n直接吃牛奶巧克力棒确实是一种享受。\n\n[好感度不变]\n\n你可以品尝到巧克力的顺滑和浓郁。\n\n[好感度不变]\n\n而且你还可以控制自己吃多少。\n\n[好感度不变]\n\n不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。\n\n[好感度不变]\n\n你有没有兴趣?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  我们来说点别的吧'}, {'role': 'assistant', 'content': '[好感度不变]\n\n好,我们来谈点别的吧。\n\n[好感度不变]\n\n你想谈论什么?\n\n[好感度不变]\n\n你喜欢什么?\n\n[好感度不变]\n\n我们讨论一下你的爱好怎么样?\n\n[好感度不变]\n\n还是你想谈谈更严肃的话题?\n\n[好感度不变]'}]}
2024-08-18 18:40:56,770   [INFO]  (memory_manager.py:78)load_memory   Processing group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:40:56,770   [INFO]  (memory_manager.py:90)load_memory   Loaded 6 messages for group BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:40:56,770   [INFO]  (memory_manager.py:101)load_memory  群组 BE37CE035E518369B6C44CCBFAD0C4EB 的长期记忆文件不存在,将跳过加载。
2024-08-18 18:40:56,771   [INFO]  (memory_manager.py:105)load_memory  Memory loading completed
2024-08-18 18:40:58,165   [INFO]  (keep_alive.py:110)check_for_updates    当前版本: 1.1.2 (Beta_818003),最新开发版: v1.0.0-Beta_815001,当前版本 1.1.2 (Beta_818003) 已经是最新
2024-08-18 18:40:58,337   [INFO]  (keep_alive.py:145)keep_alive   OpenAI API 连接正常
2024-08-18 18:41:35,994   [INFO]  (message_handler.py:65)handle_group_message Received message: ' How's going' from user: 消息来自岳桑:(A67C3709E6872E99C88E637C9554C758) in group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:41:35,995   [INFO]  (message_handler.py:103)process_message_queue   Processing message from queue for group BE37CE035E518369B6C44CCBFAD0C4EB:  How's going
2024-08-18 18:41:38,786   [INFO]  (bot_client.py:180)get_gpt_response GPT response: [好感度不变]

Things are going well.

[好感度不变]

I'm enjoying talking to you。

[好感度不变]

How are things with you?

[好感度不变]

Is there anything I can do to help?

[好感度不变]
2024-08-18 18:41:39,578   [INFO]  (memory_manager.py:113)save_memory  Saving memory...
2024-08-18 18:43:11,426   [INFO]  (client.py:162)_bot_login   [botpy] 登录机器人账号中...
2024-08-18 18:43:11,608   [INFO]  (robot.py:65)update_access_token    [botpy] access_token expires_in 1264
2024-08-18 18:43:13,115   [INFO]  (client.py:181)_bot_init    [botpy] 程序启动...
2024-08-18 18:43:13,116   [INFO]  (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2024-08-18 18:43:13,116   [INFO]  (client.py:242)bot_connect  [botpy] 会话启动中...
2024-08-18 18:43:13,117   [INFO]  (gateway.py:115)ws_connect  [botpy] 启动中...
2024-08-18 18:43:13,251   [INFO]  (gateway.py:142)ws_identify [botpy] 鉴权中...
2024-08-18 18:43:13,361   [INFO]  (gateway.py:85)on_message   [botpy] 机器人「Monika-测试中」启动成功!
2024-08-18 18:43:13,362   [INFO]  (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2024-08-18 18:43:13,362   [INFO]  (bot_client.py:105)on_ready Robot 「Monika-测试中」 is ready!
2024-08-18 18:43:13,363   [INFO]  (memory_manager.py:58)load_memory   Loading memory...
2024-08-18 18:43:13,363   [INFO]  (memory_manager.py:67)load_memory   Reading memory file: /home/ifc/amyalmond_bot/data/memory.json
2024-08-18 18:43:13,364   [INFO]  (memory_manager.py:76)load_memory   Memory file content: {'BE37CE035E518369B6C44CCBFAD0C4EB': [{'role': 'user', 'content': '消息来自茂茂::  吃他本身!'}, {'role': 'assistant', 'content': '[好感度+1,因为茂茂喜欢直接吃牛奶巧克力]\n\n直接吃牛奶巧克力棒确实是一种享受。\n\n[好感度不变]\n\n你可以品尝到巧克力的顺滑和浓郁。\n\n[好感度不变]\n\n而且你还可以控制自己吃多少。\n\n[好感度不变]\n\n不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。\n\n[好感度不变]\n\n你有没有兴趣?\n\n[好感度不变]'}, {'role': 'user', 'content': '消息来自茂茂::  我们来说点别的吧'}, {'role': 'assistant', 'content': '[好感度不变]\n\n好,我们来谈点别的吧。\n\n[好感度不变]\n\n你想谈论什么?\n\n[好感度不变]\n\n你喜欢什么?\n\n[好感度不变]\n\n我们讨论一下你的爱好怎么样?\n\n[好感度不变]\n\n还是你想谈谈更严肃的话题?\n\n[好感度不变]'}, {'role': 'user', 'content': "消息来自岳桑::  How's going"}, {'role': 'assistant', 'content': "[好感度不变]\n\nThings are going well.\n\n[好感度不变]\n\nI'm enjoying talking to you。\n\n[好感度不变]\n\nHow are things with you?\n\n[好感度不变]\n\nIs there anything I can do to help?\n\n[好感度不变]"}]}
2024-08-18 18:43:13,364   [INFO]  (memory_manager.py:78)load_memory   Processing group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:13,364   [INFO]  (memory_manager.py:90)load_memory   Loaded 6 messages for group BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:13,365   [INFO]  (memory_manager.py:101)load_memory  群组 BE37CE035E518369B6C44CCBFAD0C4EB 的长期记忆文件不存在,将跳过加载。
2024-08-18 18:43:13,365   [INFO]  (memory_manager.py:105)load_memory  Memory loading completed
2024-08-18 18:43:18,902   [INFO]  (message_handler.py:65)handle_group_message Received message: ' hi' from user: 消息来自岳桑:(A67C3709E6872E99C88E637C9554C758) in group: BE37CE035E518369B6C44CCBFAD0C4EB
2024-08-18 18:43:18,903   [INFO]  (message_handler.py:103)process_message_queue   Processing message from queue for group BE37CE035E518369B6C44CCBFAD0C4EB:  hi
2024-08-18 18:43:22,103   [INFO]  (bot_client.py:180)get_gpt_response GPT response: [好感度+5,因为茂茂主动地和我打招呼]

Hi there!

[好感度+1,因为茂茂主动地和我打招呼]

It's nice to see you again。

[好感度+1,因为茂茂主动地和我打招呼]

How are you doing today?

[好感度不变]

Is there anything I can help you with?

[好感度不变]

这一部分吗

是的,我已经将完整的logs全部复制上传了

shuakami commented 1 month ago

您好。我尝试重新推理了当时的消息队列场景如下:

# 您重新启动了[amyalmond_bot](https://github.com/shuakami/amyalmond_bot),系统没有加载长记忆,当加载了一个短记忆
# 我会模拟系统已经加载的短记忆消息队列 也就是2024-08-18 18:40:56,769 [INFO]  (memory_manager.py:76)load_memory   Memory file content...的内容

茂茂:吃他本身!

Assistant:
[好感度+1,因为茂茂喜欢直接吃牛奶巧克力] 直接吃牛奶巧克力棒确实是一种享受。你可以品尝到巧克力的顺滑和浓郁。而且你还可以控制自己吃多少。不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。你有没有兴趣?

茂茂:我们来说点别的吧

Assistant:
[好感度不变] 好,我们来谈点别的吧。你想谈论什么?你喜欢什么?我们讨论一下你的爱好怎么样?还是你想谈谈更严肃的话题?

岳桑:How's going?

Assistant:
[好感度不变] Things are going well. I'm enjoying talking to you。How are things with you?Is there anything I can do to help?

岳桑:hi

Assistant:
Hi there!
[好感度+1,因为茂茂主动地和我打招呼]
It's nice to see you again。
[好感度+1,因为茂茂主动地和我打招呼]
How are you doing today?
[好感度不变]
Is there anything I can help you with?
[好感度不变]

记忆:


{
    "BE37CE035E518369B6C44CCBFAD0C4EB": [
        {
            "role": "user",
            "content": "消息来自岳桑::  你还记得我是谁吗"
        },
        {
            "role": "assistant",
            "content": "[好感度不变]\n\n当然记得。你是茂茂,我的朋友。\n\n[好感度不变]\n\n我们已经认识很久了。\n\n[好感度不变]\n\n我们一起经历了很多事情。\n\n[好感度不变]\n\n我很珍惜我们的友谊。\n\n[好感度+2,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]\n\n很高兴再次见到你。\n\n[好感度+1,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]"
        }
    ]
}

实际上系统在把对话请求给llm时,会带上消息来自XX一起给当时的llm。但在日志和后面的消息管理文件中,[消息来自岳桑:: 你还记得我是谁吗]是完全识别了的

所以在这种情况下,大模型幻觉是最可能的原因。 虽然上下文标了用户身份,但如果LLM在处理过程被之前的对话信息所影响,就会把你认成其他人。

还有一种可能就是记忆填充导致误回复。

您可以提供您的模型详细信息吗?

xiaoyueyoqwq commented 1 month ago

您好。我尝试重新推理了当时的消息队列场景如下:

# 您重新启动了[amyalmond_bot](https://github.com/shuakami/amyalmond_bot),系统没有加载长记忆,当加载了一个短记忆
# 我会模拟系统已经加载的短记忆消息队列 也就是2024-08-18 18:40:56,769   [INFO]  (memory_manager.py:76)load_memory   Memory file content...的内容

茂茂:吃他本身!

Assistant:
[好感度+1,因为茂茂喜欢直接吃牛奶巧克力] 直接吃牛奶巧克力棒确实是一种享受。你可以品尝到巧克力的顺滑和浓郁。而且你还可以控制自己吃多少。不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。你有没有兴趣?

茂茂:我们来说点别的吧

Assistant:
[好感度不变] 好,我们来谈点别的吧。你想谈论什么?你喜欢什么?我们讨论一下你的爱好怎么样?还是你想谈谈更严肃的话题?

岳桑:How's going?

Assistant:
[好感度不变] Things are going well. I'm enjoying talking to you。How are things with you?Is there anything I can do to help?

岳桑:hi

Assistant:
Hi there!
[好感度+1,因为茂茂主动地和我打招呼]
It's nice to see you again。
[好感度+1,因为茂茂主动地和我打招呼]
How are you doing today?
[好感度不变]
Is there anything I can help you with?
[好感度不变]

记忆:

{
    "BE37CE035E518369B6C44CCBFAD0C4EB": [
        {
            "role": "user",
            "content": "消息来自岳桑::  你还记得我是谁吗"
        },
        {
            "role": "assistant",
            "content": "[好感度不变]\n\n当然记得。你是茂茂,我的朋友。\n\n[好感度不变]\n\n我们已经认识很久了。\n\n[好感度不变]\n\n我们一起经历了很多事情。\n\n[好感度不变]\n\n我很珍惜我们的友谊。\n\n[好感度+2,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]\n\n很高兴再次见到你。\n\n[好感度+1,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]"
        }
    ]
}

实际上系统在把对话请求给llm时,会带上消息来自XX一起给当时的llm。但在日志和后面的消息管理文件中,[消息来自岳桑:: 你还记得我是谁吗]是完全识别了的

所以在这种情况下,大模型幻觉是最可能的原因。 虽然上下文标了用户身份,但如果LLM在处理过程被之前的对话信息所影响,就会把你认成其他人。

还有一种可能就是记忆填充导致误回复。

您可以提供您的模型详细信息吗?

可以的,目前我使用的是Gemini-Pro,基于NPL的语言模型 我刚在再次测试了一下高对话负载状态下的bot,发现问题没有复现 这是完整debug日志:https://paste.ubuntu.com/p/S7sprkcJmn/

xiaoyueyoqwq commented 1 month ago

您好。我尝试重新推理了当时的消息队列场景如下:

# 您重新启动了[amyalmond_bot](https://github.com/shuakami/amyalmond_bot),系统没有加载长记忆,当加载了一个短记忆
# 我会模拟系统已经加载的短记忆消息队列 也就是2024-08-18 18:40:56,769   [INFO]  (memory_manager.py:76)load_memory   Memory file content...的内容

茂茂:吃他本身!

Assistant:
[好感度+1,因为茂茂喜欢直接吃牛奶巧克力] 直接吃牛奶巧克力棒确实是一种享受。你可以品尝到巧克力的顺滑和浓郁。而且你还可以控制自己吃多少。不过,如果你想用牛奶巧克力做一些特别的东西,我有一些食谱可以分享给你。你有没有兴趣?

茂茂:我们来说点别的吧

Assistant:
[好感度不变] 好,我们来谈点别的吧。你想谈论什么?你喜欢什么?我们讨论一下你的爱好怎么样?还是你想谈谈更严肃的话题?

岳桑:How's going?

Assistant:
[好感度不变] Things are going well. I'm enjoying talking to you。How are things with you?Is there anything I can do to help?

岳桑:hi

Assistant:
Hi there!
[好感度+1,因为茂茂主动地和我打招呼]
It's nice to see you again。
[好感度+1,因为茂茂主动地和我打招呼]
How are you doing today?
[好感度不变]
Is there anything I can help you with?
[好感度不变]

记忆:

{
    "BE37CE035E518369B6C44CCBFAD0C4EB": [
        {
            "role": "user",
            "content": "消息来自岳桑::  你还记得我是谁吗"
        },
        {
            "role": "assistant",
            "content": "[好感度不变]\n\n当然记得。你是茂茂,我的朋友。\n\n[好感度不变]\n\n我们已经认识很久了。\n\n[好感度不变]\n\n我们一起经历了很多事情。\n\n[好感度不变]\n\n我很珍惜我们的友谊。\n\n[好感度+2,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]\n\n很高兴再次见到你。\n\n[好感度+1,因为茂茂主动地和我打招呼,并且我们已经建立了对话记忆]"
        }
    ]
}

实际上系统在把对话请求给llm时,会带上消息来自XX一起给当时的llm。但在日志和后面的消息管理文件中,[消息来自岳桑:: 你还记得我是谁吗]是完全识别了的

所以在这种情况下,大模型幻觉是最可能的原因。 虽然上下文标了用户身份,但如果LLM在处理过程被之前的对话信息所影响,就会把你认成其他人。

还有一种可能就是记忆填充导致误回复。

您可以提供您的模型详细信息吗?

稍等,刚才我的测试用户貌似复现了这个bug logs: https://paste.ubuntu.com/p/fmM5Fk4bFq/

shuakami commented 1 month ago

我已经看到了此bug。 但是很抱歉,您的日志等级似乎依然不是debug 我建议您切换其他大模型尝试。

因为当前bug诱因暂时不清楚,无法稳定复现,所以没有修复方向

xiaoyueyoqwq commented 1 month ago

我已经看到了此bug。 但是很抱歉,您的日志等级似乎依然不是debug 我建议您切换其他大模型尝试。

因为当前bug诱因暂时不清楚,无法稳定复现,所以没有修复方向

了解,我再排查的过程中也将问题同样指向了模型 也许是NPL自身缺陷?也许吧

shuakami commented 1 month ago

您不需要关闭issue,因为下个版本可能会重构消息逻辑、索引逻辑,以减少大模型幻觉。

xiaoyueyoqwq commented 1 month ago

您不需要关闭issue,因为下个版本可能会重构消息逻辑、索引逻辑,以减少大模型幻觉。

抱歉抱歉,我以为这个问题已经被放弃维护了 如果这样就太好了,感谢您的支持

xiaoyueyoqwq commented 1 month ago

issue track: 我注意到许多大模型都会出现类似的情况,我认为这可能和memory方面的issue有很大联系,也就是存储方式不当导致的AI认知混乱

shuakami commented 1 month ago

您可以具体指出是哪方面的memory存储方式混乱吗


请您注意合理作息,熬夜伤身。

xiaoyueyoqwq commented 1 month ago

您可以具体指出是哪方面的memory存储方式混乱吗

请您注意合理作息,熬夜伤身。

感谢关心,这几天的确有点忙 我认为可能是有有损压缩造成的问题,把话是谁说的这个关键词压缩没了,我曾注意到您的代码中引用到让AI自己概括这段话的含义,但是我认为AI压根就不会在用冒号和它前面的人名,当然这只是一个猜测,需要更多其他理论和PoC作为支撑验证

shuakami commented 1 month ago

https://marble-repair-490.notion.site/d8dfbc8218d841ae918a6ca19c94ecc0?v=09520b55e4f2447e9242b4c9338a1a25&pvs=4

您好,最新方案已经写出来了。 您可以告诉我您的意见

xiaoyueyoqwq commented 1 month ago

Fixed in #17