🤖 自动格式化代码 [skip ci]

This commit is contained in:
github-actions[bot]
2025-04-14 13:36:52 +00:00
parent 53332791e4
commit bd66ae272e
6 changed files with 54 additions and 68 deletions

View File

@@ -6,8 +6,10 @@ from src.plugins.config.config import global_config
from src.common.database import db
from src.common.logger import get_module_logger
import traceback
logger = get_module_logger("observation")
# 所有观察的基类
class Observation:
def __init__(self, observe_type, observe_id):
@@ -42,7 +44,7 @@ class ChattingObservation(Observation):
self.max_mid_memory_len = 5
self.mid_memory_info = ""
self.now_message_info = ""
self.updating_old = False
self.llm_summary = LLM_request(
@@ -50,43 +52,42 @@ class ChattingObservation(Observation):
)
# 进行一次观察 返回观察结果observe_info
def get_observe_info(self, ids = None):
def get_observe_info(self, ids=None):
if ids:
mid_memory_str = ""
for id in ids:
print(f"id{id}")
try:
for mid_memory in self.mid_memorys:
if mid_memory['id'] == id:
if mid_memory["id"] == id:
mid_memory_by_id = mid_memory
msg_str = ""
for msg in mid_memory_by_id['messages']:
for msg in mid_memory_by_id["messages"]:
msg_str += f"{msg['detailed_plain_text']}"
time_diff = int((datetime.now().timestamp() - mid_memory_by_id['created_at']) / 60)
time_diff = int((datetime.now().timestamp() - mid_memory_by_id["created_at"]) / 60)
mid_memory_str += f"距离现在{time_diff}分钟前:\n{msg_str}\n"
except Exception as e:
logger.error(f"获取mid_memory_id失败: {e}")
traceback.print_exc()
# print(f"获取mid_memory_id失败: {e}")
return self.now_message_info
return mid_memory_str + "现在群里正在聊:\n" + self.now_message_info
else:
return self.now_message_info
async def observe(self):
# 查找新消息
new_messages = list(
db.messages.find({"chat_id": self.chat_id, "time": {"$gt": self.last_observe_time}})
.sort("time", 1)
db.messages.find({"chat_id": self.chat_id, "time": {"$gt": self.last_observe_time}}).sort("time", 1)
) # 按时间正序排列
if not new_messages:
return self.observe_info # 没有新消息,返回上次观察结果
self.last_observe_time = new_messages[-1]["time"]
self.talking_message.extend(new_messages)
# 将新消息转换为字符串格式
@@ -98,7 +99,7 @@ class ChattingObservation(Observation):
# print(f"new_messages_str{new_messages_str}")
# 将新消息添加到talking_message同时保持列表长度不超过20条
if len(self.talking_message) > self.max_now_obs_len and not self.updating_old:
self.updating_old = True
# 计算需要保留的消息数量
@@ -123,37 +124,31 @@ class ChattingObservation(Observation):
"messages": oldest_messages,
"timestamps": oldest_timestamps,
"chat_id": self.chat_id,
"created_at": datetime.now().timestamp()
"created_at": datetime.now().timestamp(),
}
# print(f"mid_memory{mid_memory}")
# 存入内存中的 mid_memorys
self.mid_memorys.append(mid_memory)
if len(self.mid_memorys) > self.max_mid_memory_len:
self.mid_memorys.pop(0)
mid_memory_str = "之前聊天的内容概括是:\n"
for mid_memory in self.mid_memorys:
time_diff = int((datetime.now().timestamp() - mid_memory['created_at']) / 60)
time_diff = int((datetime.now().timestamp() - mid_memory["created_at"]) / 60)
mid_memory_str += f"距离现在{time_diff}分钟前(聊天记录id:{mid_memory['id']}){mid_memory['theme']}\n"
self.mid_memory_info = mid_memory_str
self.updating_old = False
# print(f"处理后self.talking_message{self.talking_message}")
now_message_str = ""
now_message_str += self.translate_message_list_to_str(talking_message=self.talking_message)
self.now_message_info = now_message_str
logger.debug(f"压缩早期记忆:{self.mid_memory_info}\n现在聊天内容:{self.now_message_info}")
async def update_talking_summary(self, new_messages_str):
prompt = ""
# prompt += f"{personality_info}"
prompt += f"你的名字叫:{self.name}\n,标识'{self.name}'的都是你自己说的话"