ForcePilot/backend/package/yuxi/channels/plugins/wecom/_constants.py
Kris eda29502ed feat(wecom): 完善客服消息适配逻辑
1. 新增客服open_kfid缓存常量与key生成工具
2. 重构入站适配器缓存客服映射关系
3. 重写出站适配器使用缓存判断客服场景
4. 修复多选卡片构建逻辑与日志方法调用
5. 调整wechat_woc常量导入顺序
6. 优化命令适配器配置异常处理逻辑
2026-07-09 04:20:26 +08:00

106 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""企业微信渠道插件共享常量。
集中定义在多个模块间共享的配置默认值、依赖标识与渠道标识,避免重复
定义导致的不一致风险。
仅汇集真正跨模块共享的常量;仅单一模块使用的常量仍保留在各自模块内。
所有常量值需与 ``manifest.json`` 中 ``config_schema`` 的 ``default`` 字段
及 ``resource_quota`` 保持一致F-03 manifest 单真相源),本模块的常量
作为 ConfigPort 未命中时的本地回退默认值。
依赖方向:仅标准库,不 import 任何框架层或同插件模块,避免循环依赖。
"""
from __future__ import annotations
# ---------------------------------------------------------------------------
# 渠道与依赖标识
# ---------------------------------------------------------------------------
# 渠道标识,用于 ConfigPort CHANNEL 作用域 target与 manifest.json
# channel_type / provides 对齐)
CHANNEL_TARGET = "wecom"
# 企业微信 API 依赖标识,统一用于 ``DependencyError.dep`` 字段
WECOM_API_DEP = "wecom_api"
# ---------------------------------------------------------------------------
# HTTP 客户端配置lifecycle 与 wecom_client 共享)
# ---------------------------------------------------------------------------
# HTTP 客户端默认超时(秒),对齐 manifest.json config_schema
# request_timeout_ms.default=30000
HTTP_TIMEOUT_SECONDS = 30.0
# HTTP 连接池最大连接数,对齐 manifest.json
# resource_quota.max_connections=50
HTTP_MAX_CONNECTIONS = 50
# HTTP 连接池 keepalive 连接数上限
HTTP_MAX_KEEPALIVE_CONNECTIONS = 10
# ---------------------------------------------------------------------------
# Token 缓存与刷新
# ---------------------------------------------------------------------------
# token 提前刷新时间(秒),企业微信 access_token 有效期 7200s
TOKEN_REFRESH_LEAD_TIME_SEC = 60
# 企业微信 token 缓存默认 TTL
TOKEN_CACHE_TTL_SEC = 7200
# 流式会话缓存 key 前缀(与 streaming_adapter._streaming_key / _buf_key 对齐)
STREAMING_CACHE_KEY_PREFIX = "wecom:streaming:"
# 流式缓冲区缓存 key 前缀(与 streaming_adapter._buf_key 对齐)
STREAMING_BUF_CACHE_KEY_PREFIX = "wecom:streaming:buf:"
# 身份解析缓存 TTL契约规定 60s
IDENTITY_CACHE_TTL_SEC = 60
# 用户信息缓存 TTL保守 30 分钟
USER_CACHE_TTL_SEC = 1800
# 模板卡片 response_code 缓存 TTL72 小时
RESPONSE_CODE_CACHE_TTL_SEC = 72 * 3600
# 消息反向映射缓存 TTL1 天
MSG_CACHE_TTL_SEC = 86400
# 客服 open_kfid 映射缓存 TTL1 天(对齐 MSG_CACHE_TTL_SEC
# 覆盖客服会话生命周期,确保出站回复能反查到 open_kfid
KF_OPEN_KFID_CACHE_TTL_SEC = 86400
# ---------------------------------------------------------------------------
# 企业微信 API 常量
# ---------------------------------------------------------------------------
# 企业微信回调 Webhook 超时5 秒内必须响应
WEBHOOK_TIMEOUT_SEC = 5
# 消息重复检查默认间隔(秒)
DUPLICATE_CHECK_INTERVAL_SEC = 1800
# 模板卡片 response_code 有效期小时72 小时
RESPONSE_CODE_VALID_HOURS = 72
__all__ = [
"CHANNEL_TARGET",
"WECOM_API_DEP",
"HTTP_TIMEOUT_SECONDS",
"HTTP_MAX_CONNECTIONS",
"HTTP_MAX_KEEPALIVE_CONNECTIONS",
"TOKEN_REFRESH_LEAD_TIME_SEC",
"TOKEN_CACHE_TTL_SEC",
"STREAMING_CACHE_KEY_PREFIX",
"STREAMING_BUF_CACHE_KEY_PREFIX",
"IDENTITY_CACHE_TTL_SEC",
"USER_CACHE_TTL_SEC",
"RESPONSE_CODE_CACHE_TTL_SEC",
"MSG_CACHE_TTL_SEC",
"KF_OPEN_KFID_CACHE_TTL_SEC",
"WEBHOOK_TIMEOUT_SEC",
"DUPLICATE_CHECK_INTERVAL_SEC",
"RESPONSE_CODE_VALID_HOURS",
]