refactor: 第二轮架构缺陷修复 (1/2/3/4/9/10)

1. 内存泄漏修复:RealtimeChatManager 添加会话自动清理机制
   - 每10次操作检查超时会话(1小时无活动自动清理)
   - 最大活跃会话数限制500,超限清理最旧会话

2. 数据库索引补全:
   - Conversation: session_id, work_order_id 添加索引
   - WorkOrder: status 添加索引
   - ChatSession: user_id 添加索引
   - KnowledgeEntry: category, is_active, is_verified 添加索引

3. ServiceManager 线程安全:
   - 添加 threading.Lock 双重检查锁
   - 防止多线程并发初始化同一服务

4. API 响应格式统一:
   - 新增 api_response() 标准响应函数
   - 统一格式: {success, message, data} / {success, error}

9. asyncio 误用修复:
   - knowledge.py 文件上传改用安全的 asyncio 调用方式
   - 兼容已有事件循环和无事件循环两种场景

10. 请求限流:
    - 新增 rate_limit 装饰器(按 IP 限流)
    - chat/message 限制 20次/分钟
    - workorder/ai-suggestion 限制 5次/分钟
This commit is contained in:
2026-04-02 22:37:44 +08:00
parent 587933f668
commit 7151070c99
11 changed files with 138 additions and 38 deletions

View File

@@ -121,7 +121,7 @@ def _process_message_in_background(app, event_data: dict):
except Exception as e:
logger.warning(f"[Feishu Bot] 获取发送者信息失败: {e}")
logger.info(f"[Feishu Bot] 📨 消息详情: 发送者={sender_name}({sender_id}), 群={chat_id}, 类型={chat_type_desc}, 租户={tenant_id}, 消息ID={message_id}")
logger.info(f"[Feishu Bot] 消息详情: 发送者={sender_name}({sender_id}), 群={chat_id}, 类型={chat_type_desc}, 租户={tenant_id}, 消息ID={message_id}")
logger.info(f"[Feishu Bot] 📝 消息内容: '{text_content}'")
# 群聊隔离:每个用户在每个群都有独立会话