@@ -40,6 +40,10 @@
|
|||||||
**交流群**: 571780722 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码
|
**交流群**: 571780722 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码
|
||||||
**交流群**: 1035228475 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码
|
**交流群**: 1035228475 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码
|
||||||
|
|
||||||
|
**其他平台版本**
|
||||||
|
|
||||||
|
- (由 [CabLate](https://github.com/cablate) 贡献) [Telegram 与其他平台(未来可能会有)的版本](https://github.com/cablate/MaiMBot/tree/telegram) - [集中讨论串](https://github.com/SengokuCola/MaiMBot/discussions/149)
|
||||||
|
|
||||||
##
|
##
|
||||||
<div align="left">
|
<div align="left">
|
||||||
<h2>📚 文档 ⬇️ 快速开始使用麦麦 ⬇️</h2>
|
<h2>📚 文档 ⬇️ 快速开始使用麦麦 ⬇️</h2>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class EmojiManager:
|
|||||||
self.db = Database.get_instance()
|
self.db = Database.get_instance()
|
||||||
self._scan_task = None
|
self._scan_task = None
|
||||||
self.vlm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=1000)
|
self.vlm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=1000)
|
||||||
self.llm_emotion_judge = LLM_request(model=global_config.llm_normal_minor, max_tokens=60,temperature=0.8) #更高的温度,更少的token(后续可以根据情绪来调整温度)
|
self.llm_emotion_judge = LLM_request(model=global_config.llm_emotion_judge, max_tokens=60,temperature=0.8) #更高的温度,更少的token(后续可以根据情绪来调整温度)
|
||||||
|
|
||||||
def _ensure_emoji_dir(self):
|
def _ensure_emoji_dir(self):
|
||||||
"""确保表情存储目录存在"""
|
"""确保表情存储目录存在"""
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user