xianyu-auto-reply/PAUSE_DURATION_FEATURE.md
2025-08-05 16:11:27 +08:00

5.3 KiB
Raw Blame History

账号自动回复暂停时间配置功能

功能概述

为每个账号单独配置自动回复暂停时间,当检测到手动发出消息后,该账号的自动回复会暂停指定的时间长度。

功能特性

1. 个性化配置

  • 每个账号可以单独设置暂停时间1-60分钟
  • 默认暂停时间为10分钟
  • 支持实时修改,立即生效

2. 直观界面

  • 在账号管理表格中新增"暂停时间"列
  • 点击暂停时间可直接编辑
  • 带有说明工具提示,解释功能作用

3. 智能验证

  • 暂停时间范围限制1-60分钟
  • 输入验证和错误提示
  • 支持键盘操作Enter保存Escape取消

界面展示

表格列头

账号ID | Cookie值 | 关键词 | 状态 | 默认回复 | AI回复 | 自动确认发货 | 备注 | 暂停时间 | 操作

暂停时间列

  • 显示格式:🕐 10分钟
  • 工具提示:检测到手动发出消息后,自动回复暂停的时间长度(分钟)。如果在暂停期间再次手动发出消息,会重新开始计时。
  • 点击可编辑,支持数字输入框

技术实现

数据库结构

-- cookies表新增字段
ALTER TABLE cookies ADD COLUMN pause_duration INTEGER DEFAULT 10;

后端API

1. 更新暂停时间

PUT /cookies/{cid}/pause-duration
Content-Type: application/json
Authorization: Bearer {token}

{
  "pause_duration": 15
}

响应

{
  "message": "暂停时间更新成功",
  "pause_duration": 15
}

2. 获取暂停时间

GET /cookies/{cid}/pause-duration
Authorization: Bearer {token}

响应

{
  "pause_duration": 15,
  "message": "获取暂停时间成功"
}

前端功能

1. 表格显示

  • 在账号列表中显示每个账号的暂停时间
  • 默认显示为"🕐 10分钟"格式

2. 内联编辑

function editPauseDuration(cookieId, currentDuration) {
    // 创建数字输入框
    // 支持1-60分钟范围
    // Enter保存Escape取消
    // 实时验证和错误提示
}

3. 工具提示

  • 使用Bootstrap Tooltip组件
  • 自动初始化和重新初始化

暂停管理器集成

动态获取暂停时间

def pause_chat(self, chat_id: str, cookie_id: str):
    """暂停指定chat_id的自动回复使用账号特定的暂停时间"""
    # 获取账号特定的暂停时间
    try:
        from db_manager import db_manager
        pause_minutes = db_manager.get_cookie_pause_duration(cookie_id)
    except Exception as e:
        logger.error(f"获取账号 {cookie_id} 暂停时间失败: {e}使用默认10分钟")
        pause_minutes = 10
    
    pause_duration_seconds = pause_minutes * 60
    pause_until = time.time() + pause_duration_seconds
    self.paused_chats[chat_id] = pause_until
    
    # 记录日志
    end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(pause_until))
    logger.info(f"【{cookie_id}】检测到手动发出消息chat_id {chat_id} 自动回复暂停{pause_minutes}分钟,恢复时间: {end_time}")

使用流程

1. 查看当前设置

  1. 登录系统,进入账号管理页面
  2. 在表格中查看"暂停时间"列
  3. 鼠标悬停在列头的问号图标上查看功能说明

2. 修改暂停时间

  1. 点击要修改的账号的暂停时间(如"🕐 10分钟"
  2. 输入框出现输入新的暂停时间1-60分钟
  3. 按Enter键保存或按Escape键取消
  4. 系统显示成功提示

3. 验证生效

  1. 修改后的设置立即生效
  2. 下次该账号检测到手动发出消息时,会使用新的暂停时间
  3. 在日志中可以看到使用的暂停时间

日志示例

使用自定义暂停时间

2025-08-05 15:30:15.123 | INFO | XianyuAutoAsync:pause_chat:49 - 【abc123】检测到手动发出消息chat_id chat_456 自动回复暂停15分钟恢复时间: 2025-08-05 15:45:15

获取暂停时间失败时使用默认值

2025-08-05 15:30:15.124 | ERROR | XianyuAutoAsync:pause_chat:42 - 获取账号 abc123 暂停时间失败: Database error使用默认10分钟
2025-08-05 15:30:15.125 | INFO | XianyuAutoAsync:pause_chat:49 - 【abc123】检测到手动发出消息chat_id chat_456 自动回复暂停10分钟恢复时间: 2025-08-05 15:40:15

配置建议

不同场景的推荐设置

  1. 高频互动商品5-10分钟

    • 适用于需要快速响应的热门商品
    • 减少客户等待时间
  2. 普通商品10-15分钟默认

    • 平衡自动化和人工干预
    • 适合大多数场景
  3. 低频互动商品20-30分钟

    • 适用于不常有咨询的商品
    • 给予更多人工处理时间
  4. 特殊商品30-60分钟

    • 需要详细沟通的复杂商品
    • 避免自动回复干扰深度交流

注意事项

  1. 范围限制暂停时间必须在1-60分钟之间
  2. 立即生效:修改后的设置立即生效,无需重启
  3. 默认值新账号默认使用10分钟暂停时间
  4. 错误处理获取暂停时间失败时自动使用默认10分钟
  5. 权限控制:只能修改自己账号的暂停时间设置

兼容性

  • 向后兼容现有账号自动获得默认10分钟设置
  • 数据迁移系统启动时自动添加pause_duration字段
  • API兼容现有API继续正常工作新增字段可选