ForcePilot/backend/package/yuxi/channels/plugins/wecom/_constants.py
Kris a484844ea1 chore: 汇总完成多模块功能迭代与缺陷修复
此提交包含了大量跨模块的优化与修复:
1.  配置与依赖调整:调整账号列表分页默认值、重试上限、内容审核长度限制,新增出站文件支持
2.  代码结构优化:重构白名单缓存逻辑、移除冗余日志依赖、清理过时TODO注释
3.  功能增强:添加死信计数接口、会话绑定审计、SSE订阅限流、凭据验证服务
4.  契约更新:修正DTO字段命名、完善类型定义、更新审计操作类型
5.  错误处理:优化限流清理逻辑、添加异常捕获与告警
6.  文档与校验:补充字段校验规则、完善注释与文档说明
2026-07-11 21:37:16 +08:00

102 lines
3.6 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
# 模板卡片 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",
"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",
]