fix
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""数据库存储:客户档案、定时问候、商品标签、推送群组/任务、同步消息、模型、AI 回复配置。使用 SQLite,便于增删改查。"""
|
||||
"""数据库存储:客户档案、定时问候、商品标签、推送群组/任务、同步消息、回调原始日志、模型、AI 回复配置。使用 SQLite,便于增删改查。"""
|
||||
import datetime
|
||||
import json
|
||||
import threading
|
||||
import time
|
||||
@@ -403,6 +404,32 @@ def append_sent_message(key: str, to_user_name: str, content: str) -> None:
|
||||
append_sync_messages(key, [{"direction": "out", "ToUserName": to_user_name, "Content": content, "CreateTime": int(time.time())}])
|
||||
|
||||
|
||||
def append_callback_log(key: str, raw_body: dict, max_raw_len: int = 51200) -> None:
|
||||
"""将 7006 回调的原始 body 落库,便于回溯与统计。raw_body 序列化后截断,避免单条过大。"""
|
||||
received_at = datetime.datetime.utcnow().isoformat() + "Z"
|
||||
raw_str = json.dumps(raw_body, ensure_ascii=False)
|
||||
if len(raw_str) > max_raw_len:
|
||||
raw_str = raw_str[:max_raw_len] + "...[truncated]"
|
||||
with _LOCK:
|
||||
conn = _conn()
|
||||
try:
|
||||
conn.execute(
|
||||
"INSERT INTO callback_log (key, received_at, raw_body) VALUES (?,?,?)",
|
||||
(key, received_at, raw_str),
|
||||
)
|
||||
conn.commit()
|
||||
# 每个 key 仅保留最近 2000 条原始回调
|
||||
cur = conn.execute("SELECT id FROM callback_log WHERE key = ? ORDER BY id DESC", (key,))
|
||||
rows = cur.fetchall()
|
||||
if len(rows) > 2000:
|
||||
to_del = [r["id"] for r in rows[2000:]]
|
||||
placeholders = ",".join("?" * len(to_del))
|
||||
conn.execute(f"DELETE FROM callback_log WHERE id IN ({placeholders})", to_del)
|
||||
conn.commit()
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
# ---------- 模型 ----------
|
||||
def list_models() -> List[Dict]:
|
||||
with _LOCK:
|
||||
|
||||
Reference in New Issue
Block a user