feat: 支持maim_message的websocket连接,以及修复了statistic中的groupname bug

This commit is contained in:
tcmofashi
2025-04-04 17:02:43 +08:00
parent 04c28432c6
commit a9886400b5
4 changed files with 235 additions and 19 deletions

View File

@@ -139,13 +139,13 @@ class LLMStatistics:
user_info = doc.get("user_info", {})
group_info = chat_info.get("group_info") if chat_info else {}
# print(f"group_info: {group_info}")
group_name = "unknown"
group_name = None
if group_info:
group_name = group_info["group_name"]
if user_info and group_name == "unknown":
group_name = group_info.get("group_name", f"{group_info.get('group_id')}")
if user_info and not group_name:
group_name = user_info["user_nickname"]
# print(f"group_name: {group_name}")
stats["messages_by_user"][user_id] += 1
stats["messages_by_user"][user_id] += 1
stats["messages_by_chat"][group_name] += 1
return stats
@@ -225,7 +225,7 @@ class LLMStatistics:
output.append(f"{group_name[:32]:<32} {count:>10}")
return "\n".join(output)
def _format_stats_section_lite(self, stats: Dict[str, Any], title: str) -> str:
"""格式化统计部分的输出"""
output = []
@@ -314,7 +314,7 @@ class LLMStatistics:
def _console_output_loop(self):
"""控制台输出循环每5分钟输出一次最近1小时的统计"""
while self.running:
# 等待5分钟
# 等待5分钟
for _ in range(300): # 5分钟 = 300秒
if not self.running:
break
@@ -323,16 +323,16 @@ class LLMStatistics:
# 收集最近1小时的统计数据
now = datetime.now()
hour_stats = self._collect_statistics_for_period(now - timedelta(hours=1))
# 使用logger输出
stats_output = self._format_stats_section_lite(hour_stats, "最近1小时统计详细信息见根目录文件llm_statistics.txt")
stats_output = self._format_stats_section_lite(
hour_stats, "最近1小时统计详细信息见根目录文件llm_statistics.txt"
)
logger.info("\n" + stats_output + "\n" + "=" * 50)
except Exception:
logger.exception("控制台统计数据输出失败")
def _stats_loop(self):
"""统计循环每5分钟运行一次"""
while self.running: