智能体的分析报告文字可能很流畅,但“25% 转化率”只有在分子、分母和筛选范围都写清时才有意义。发布前至少把关键指标拆成可计算字段:统计对象、时间范围、分组条件、分子、分母和四舍五入规则。
先确定报告中的指标口径
教学表是一位用户一行,visited 表示进入页面,ordered 表示产生订单。本例将渠道转化率定义为“该渠道订单人数 ÷ 该渠道访问人数”。如果一人能下多单、跨渠道访问或发生退款,这个定义就需调整。不能让智能体看一个汇总数字后自行补出分母。

草稿声称 A 渠道有 1 单、4 位访客、转化率 25%。但 4 是全部渠道的用户行数,不是 A 渠道访客数。核验程序会分别比对三个承诺,避免“1/4 算术上正确”掩盖口径错误。
用明细重算并逐项比对
安装 pandas,保存代码为 report_audit.py 并运行。输入数据和草稿均为人工构造;没有真实智能体调用,也不代表任何网站经营数据。
import pandas as pd
# 人工构造的活动明细与智能体草稿句子;未调用真实模型。
events=pd.DataFrame({'user':['u1','u2','u3','u4'],'channel':['A','A','B','B'],'visited':[1,1,1,0],'ordered':[1,0,1,0]})
summary=events.groupby('channel',as_index=False).agg(visitors=('visited','sum'),orders=('ordered','sum'))
summary['conversion']=summary['orders']/summary['visitors']
draft={'channel':'A','claimed_orders':1,'claimed_visitors':4,'claimed_conversion':0.25}
actual=summary.set_index('channel').loc[draft['channel']]
checks={'orders_match':draft['claimed_orders']==actual['orders'],
'denominator_match':draft['claimed_visitors']==actual['visitors'],
'ratio_match':abs(draft['claimed_conversion']-actual['conversion'])<1e-9}
print(summary.to_string(index=False))
print('draft_checks=',checks)
print('publishable=',all(checks.values()))
怎样处理不一致的报告
输出显示 A 渠道有 2 位访客、1 单,转化率是 0.5。草稿的订单数正确,但分母和比率错误,所以 publishable=False。应修改报告为“在此教学样本中,A 渠道 2 位访客中有 1 位下单”,并附上时间、样本和口径,之后重新运行检查。
channel visitors orders conversion
A 2 1 0.5
B 1 1 1.0
draft_checks= {'orders_match': np.True_, 'denominator_match': np.False_, 'ratio_match': np.False_}
publishable= False
示例用 pandas groupby 官方文档中的分组汇总方式;实际项目应先保证用户、访问和订单主键没有重复,否则重算仍可能错。
真实报告还需检查什么
对每个影响决策的数字,保存可回查的查询、输入文件版本和计算代码。分母为零时报告应写“无法计算”,不要写 0%;统计周期不同的两组数据也不能直接相减。自动生成的解释只能建立在复算通过的数值上。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31700.html