修复记忆整理传入格式问题

pull/156/head
SengokuCola 2025-03-10 01:40:06 +08:00
parent 519a9a61e8
commit a7f9d05c01
1 changed files with 23 additions and 17 deletions

View File

@ -98,24 +98,27 @@ def calculate_information_content(text):
def get_cloest_chat_from_db(db, length: int, timestamp: str): def get_cloest_chat_from_db(db, length: int, timestamp: str):
"""从数据库中获取最接近指定时间戳的聊天记录,并记录读取次数""" """从数据库中获取最接近指定时间戳的聊天记录,并记录读取次数
chat_text = ''
Returns:
list: 消息记录字典列表每个字典包含消息内容和时间信息
"""
chat_records = []
closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)])
if closest_record and closest_record.get('memorized', 0) < 4: if closest_record and closest_record.get('memorized', 0) < 4:
closest_time = closest_record['time'] closest_time = closest_record['time']
group_id = closest_record['group_id'] # 获取groupid group_id = closest_record['group_id']
# 获取该时间戳之后的length条消息且groupid相同 # 获取该时间戳之后的length条消息且groupid相同
chat_records = list(db.db.messages.find( records = list(db.db.messages.find(
{"time": {"$gt": closest_time}, "group_id": group_id} {"time": {"$gt": closest_time}, "group_id": group_id}
).sort('time', 1).limit(length)) ).sort('time', 1).limit(length))
# 更新每条消息的memorized属性 # 更新每条消息的memorized属性
for record in chat_records: for record in records:
# 检查当前记录的memorized值
current_memorized = record.get('memorized', 0) current_memorized = record.get('memorized', 0)
if current_memorized > 3: if current_memorized > 3:
# print(f"消息已读取3次跳过") print("消息已读取3次跳过")
return '' return ''
# 更新memorized值 # 更新memorized值
@ -124,11 +127,14 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
{"$set": {"memorized": current_memorized + 1}} {"$set": {"memorized": current_memorized + 1}}
) )
chat_text += record["detailed_plain_text"] # 添加到记录列表中
chat_records.append({
'text': record["detailed_plain_text"],
'time': record["time"],
'group_id': record["group_id"]
})
return chat_text return chat_records
# print(f"消息已读取3次跳过")
return ''
async def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list: async def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list: