feat: upgrade客服多店铺分流、批量报价与稳定性防护
This commit is contained in:
@@ -62,3 +62,31 @@ python scripts/init_designer_roster.py list # 查看当前数据
|
||||
### 对接方要求(外部 AI 服务)
|
||||
|
||||
对端需实现:企微群消息 → 解析「上线」/「下线」→ 存库 → 提供 GET `/online` 接口,按上述格式返回在线名单。
|
||||
|
||||
---
|
||||
|
||||
## system_inquiry_rules.json
|
||||
|
||||
按店铺识别“系统客服询单”消息(非普通买家咨询),并配置处理策略。
|
||||
|
||||
```json
|
||||
{
|
||||
"enabled": true,
|
||||
"default_action": "silent",
|
||||
"default_reply": "您好,这边已收到询单消息,稍后由人工客服跟进处理。",
|
||||
"sender_keywords": ["系统客服", "官方客服", "平台客服", "机器人客服"],
|
||||
"message_keywords": ["询单", "代客咨询", "平台代问", "系统代发"],
|
||||
"shops": {
|
||||
"test_shop": {
|
||||
"enabled": true,
|
||||
"action": "reply",
|
||||
"reply": "收到,已登记,稍后人工给您回。",
|
||||
"sender_keywords": ["系统客服"],
|
||||
"message_keywords": ["询单"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `action` 支持: `silent` / `reply` / `transfer`
|
||||
- `shops.<acc_id>` 可覆盖全局规则(店铺维度)
|
||||
|
||||
@@ -40,6 +40,7 @@ IMAGE_MODULE_ENABLED = os.getenv("IMAGE_MODULE_ENABLED", "false").lower() in ("1
|
||||
|
||||
# ========== 防抖配置 ==========
|
||||
MESSAGE_DEBOUNCE_SECONDS = int(os.getenv("MESSAGE_DEBOUNCE_SECONDS", "8"))
|
||||
OUTBOUND_PER_CUSTOMER_COOLDOWN_SECONDS = int(os.getenv("OUTBOUND_PER_CUSTOMER_COOLDOWN_SECONDS", "5"))
|
||||
|
||||
# ========== AI 上下文加载 ==========
|
||||
CHAT_CONTEXT_LIMIT = int(os.getenv("CHAT_CONTEXT_LIMIT", "30"))
|
||||
@@ -47,3 +48,27 @@ CHAT_CONTEXT_TRUNCATE_LEN = int(os.getenv("CHAT_CONTEXT_TRUNCATE_LEN", "160"))
|
||||
|
||||
# ========== 报价底线 ==========
|
||||
MIN_PRICE_FLOOR = int(os.getenv("MIN_PRICE_FLOOR", "15"))
|
||||
MAX_SERVICE_SIZE_LONGEST_METERS = float(os.getenv("MAX_SERVICE_SIZE_LONGEST_METERS", "10"))
|
||||
MAX_SERVICE_SIZE_AREA_SQM = float(os.getenv("MAX_SERVICE_SIZE_AREA_SQM", "20"))
|
||||
|
||||
# ========== 批量报价/自动处理 ==========
|
||||
BATCH_MAX_IMAGES = int(os.getenv("BATCH_MAX_IMAGES", "12")) # 单次最多处理图片数
|
||||
BATCH_ANALYZE_CONCURRENCY = int(os.getenv("BATCH_ANALYZE_CONCURRENCY", "3")) # 批量识别并发数
|
||||
|
||||
# ========== 灰度开关 ==========
|
||||
FEATURE_BATCH_QUOTE_ENABLED = os.getenv("FEATURE_BATCH_QUOTE_ENABLED", "true").lower() in ("1", "true", "yes")
|
||||
FEATURE_BATCH_QUOTE_PERCENT = int(os.getenv("FEATURE_BATCH_QUOTE_PERCENT", "100")) # 0-100
|
||||
FEATURE_BATCH_QUOTE_SHOPS = os.getenv("FEATURE_BATCH_QUOTE_SHOPS", "") # 逗号分隔 acc_id 白名单,空=全量
|
||||
|
||||
# ========== 系统客服询单识别 ==========
|
||||
SYSTEM_INQUIRY_ENABLED = os.getenv("SYSTEM_INQUIRY_ENABLED", "true").lower() in ("1", "true", "yes")
|
||||
SYSTEM_INQUIRY_DEFAULT_ACTION = os.getenv("SYSTEM_INQUIRY_DEFAULT_ACTION", "silent").strip().lower()
|
||||
SYSTEM_INQUIRY_DEFAULT_REPLY = os.getenv(
|
||||
"SYSTEM_INQUIRY_DEFAULT_REPLY",
|
||||
"您好,这边已收到询单消息,稍后由人工客服跟进处理。",
|
||||
)
|
||||
SYSTEM_INQUIRY_SHOPS = os.getenv("SYSTEM_INQUIRY_SHOPS", "") # 逗号分隔店铺白名单,空=全店铺
|
||||
SYSTEM_INQUIRY_RULES_FILE = os.getenv(
|
||||
"SYSTEM_INQUIRY_RULES_FILE",
|
||||
str(CONFIG_DIR / "system_inquiry_rules.json"),
|
||||
)
|
||||
|
||||
20
config/system_inquiry_rules.json
Normal file
20
config/system_inquiry_rules.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"enabled": true,
|
||||
"default_action": "silent",
|
||||
"default_reply": "您好,这边已收到询单消息,稍后由人工客服跟进处理。",
|
||||
"sender_keywords": [
|
||||
"系统客服",
|
||||
"官方客服",
|
||||
"平台客服",
|
||||
"机器人客服",
|
||||
"商家客服系统"
|
||||
],
|
||||
"message_keywords": [
|
||||
"系统询单",
|
||||
"代客咨询",
|
||||
"平台代问",
|
||||
"系统代发",
|
||||
"客服询单"
|
||||
],
|
||||
"shops": {}
|
||||
}
|
||||
Reference in New Issue
Block a user