You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python计算客服(Agent)的平均响应延迟?

用Python计算客服平均响应延迟

先明确需求和数据:
给定对话时序数据:

时间参与者
2023-01-17 15:13:23客户
2023-01-17 15:14:00客户
2023-01-17 15:16:16客户
2023-01-17 15:16:18客服
2023-01-17 15:16:28客户
2023-01-17 15:16:34客服
2023-01-17 15:17:23客户
2023-01-17 15:18:07客服

计算逻辑:忽略连续的客户消息,只取客户最后一条消息到客服首次回复的时间差,最后求这些时间差的平均值。示例中有效延迟为2秒、6秒、44秒,平均17.3秒。

实现步骤

用pandas处理这类时序数据最便捷,步骤如下:

  1. 导入依赖并构造数据
  2. 转换时间格式为datetime类型
  3. 遍历数据提取有效响应时间差
  4. 计算平均值

完整代码

import pandas as pd

# 构造对话数据
data = [
    ["2023-01-17 15:13:23", "客户"],
    ["2023-01-17 15:14:00", "客户"],
    ["2023-01-17 15:16:16", "客户"],
    ["2023-01-17 15:16:18", "客服"],
    ["2023-01-17 15:16:28", "客户"],
    ["2023-01-17 15:16:34", "客服"],
    ["2023-01-17 15:17:23", "客户"],
    ["2023-01-17 15:18:07", "客服"],
]

df = pd.DataFrame(data, columns=["时间", "参与者"])

# 转换时间列为datetime类型,方便计算时间差
df["时间"] = pd.to_datetime(df["时间"])

response_delays = []
last_customer_time = None

# 遍历每条消息,筛选有效响应延迟
for _, row in df.iterrows():
    if row["参与者"] == "客户":
        # 连续客户消息只保留最后一条的时间
        last_customer_time = row["时间"]
    else:
        # 遇到客服回复时,若有未匹配的客户消息则计算时间差
        if last_customer_time is not None:
            delay = (row["时间"] - last_customer_time).total_seconds()
            response_delays.append(delay)
            # 重置标记,避免同一客户消息被重复匹配
            last_customer_time = None

# 计算并输出平均响应延迟
if response_delays:
    avg_delay = sum(response_delays) / len(response_delays)
    print(f"客服平均响应延迟:{avg_delay:.1f}秒")
else:
    print("没有有效响应数据")

代码说明

  • 连续的客户消息只会保留最后一条的时间,避免重复计算无效延迟
  • 每匹配到一次客服回复,就将对应时间差存入列表并重置客户消息标记,确保一个客户消息只对应一次首次回复
  • 最后计算列表中时间差的平均值,保留一位小数

运行代码后会输出:客服平均响应延迟:17.3秒,与示例结果一致。

内容的提问来源于stack exchange,提问作者Hey_jude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:12:40