lobster-semantic-context-validation-20260621-100316.json 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. {
  2. "companyId": 338,
  3. "sections": {
  4. "semanticKeywordContext": {
  5. "passed": false,
  6. "caseCount": 8,
  7. "message": "handoff_first expected no transfer with _handoffTriggerCount=1"
  8. },
  9. "catalogValidation": {
  10. "companyId": 338,
  11. "categories": {
  12. "custom_keywords": {
  13. "keywordCount": 1,
  14. "totalCases": 2,
  15. "passedCases": 2,
  16. "passed": true,
  17. "failures": [
  18. ],
  19. "failureSampleCount": 0,
  20. "message": "all 2 checks passed for 1 words"
  21. },
  22. "positive_custom": {
  23. "keywordCount": 107,
  24. "totalCases": 214,
  25. "passedCases": 213,
  26. "passed": false,
  27. "failures": [
  28. "positive_custom:非常满意 sentiment+"
  29. ],
  30. "failureSampleCount": 1,
  31. "message": "1 failed of 214"
  32. },
  33. "negative_custom": {
  34. "keywordCount": 108,
  35. "totalCases": 216,
  36. "passedCases": 210,
  37. "passed": false,
  38. "failures": [
  39. "negative_custom:不用了谢谢 sentiment-",
  40. "negative_custom:需要审批 sentiment-",
  41. "negative_custom:需要汇报 sentiment-",
  42. "negative_custom:需要请示 sentiment-",
  43. "negative_custom:需要讨论 sentiment-",
  44. "negative_custom:需要开会研究 sentiment-"
  45. ],
  46. "failureSampleCount": 6,
  47. "message": "6 failed of 216"
  48. },
  49. "soft_refusal": {
  50. "keywordCount": 56,
  51. "totalCases": 168,
  52. "passedCases": 85,
  53. "passed": false,
  54. "failures": [
  55. "soft_refusal:下个月 positive-block",
  56. "soft_refusal:以后再说 negation",
  57. "soft_refusal:以后再说 positive-block",
  58. "soft_refusal:暂时不需要 negation",
  59. "soft_refusal:暂时不需要 positive-block",
  60. "soft_refusal:过段时间 negation",
  61. "soft_refusal:过段时间 positive-block",
  62. "soft_refusal:下次吧 negation",
  63. "soft_refusal:下次吧 positive-block",
  64. "soft_refusal:改天 positive-block",
  65. "soft_refusal:回头再说 positive-block",
  66. "soft_refusal:再看看 negation",
  67. "soft_refusal:再看看 positive-block",
  68. "soft_refusal:再考虑 negation",
  69. "soft_refusal:再考虑 positive-block",
  70. "soft_refusal:考虑考虑 negation",
  71. "soft_refusal:考虑考虑 positive-block",
  72. "soft_refusal:问问家人 negation",
  73. "soft_refusal:问问家人 positive-block",
  74. "soft_refusal:问问朋友 negation",
  75. "soft_refusal:问问朋友 positive-block",
  76. "soft_refusal:问问领导 negation",
  77. "soft_refusal:问问领导 positive-block",
  78. "soft_refusal:汇报一下 positive-block",
  79. "soft_refusal:走流程 negation",
  80. "soft_refusal:走流程 positive-block",
  81. "soft_refusal:需要审批 positive-block",
  82. "soft_refusal:需要汇报 positive-block",
  83. "soft_refusal:需要请示 negation",
  84. "soft_refusal:需要请示 positive-block",
  85. "soft_refusal:需要讨论 positive-block",
  86. "soft_refusal:开会研究 negation",
  87. "soft_refusal:开会研究 positive-block",
  88. "soft_refusal:现在不方便 negation",
  89. "soft_refusal:现在不方便 positive-block",
  90. "soft_refusal:在忙 positive-block",
  91. "soft_refusal:在开会 negation",
  92. "soft_refusal:在开会 positive-block",
  93. "soft_refusal:在开车 positive-block",
  94. "soft_refusal:稍后再说 negation"
  95. ],
  96. "failureSampleCount": 83,
  97. "message": "83 failed of 168"
  98. },
  99. "handoff_trigger": {
  100. "keywordCount": 78,
  101. "totalCases": 312,
  102. "passedCases": 390,
  103. "passed": true,
  104. "failures": [
  105. ],
  106. "failureSampleCount": 0,
  107. "message": "all 312 checks passed for 78 words"
  108. },
  109. "sarcasm": {
  110. "keywordCount": 61,
  111. "totalCases": 122,
  112. "passedCases": 122,
  113. "passed": true,
  114. "failures": [
  115. ],
  116. "failureSampleCount": 0,
  117. "message": "all 122 checks passed for 61 words"
  118. },
  119. "_combos": {
  120. "totalCases": 5,
  121. "passedCases": 5,
  122. "passed": true,
  123. "failures": [
  124. ],
  125. "message": "combo checks ok"
  126. }
  127. },
  128. "categoryCount": 6,
  129. "totalCases": 1039,
  130. "passedCases": 1027,
  131. "failedCases": 12,
  132. "failures": [
  133. "positive_custom:非常满意 sentiment+",
  134. "negative_custom:不用了谢谢 sentiment-",
  135. "negative_custom:需要审批 sentiment-",
  136. "negative_custom:需要汇报 sentiment-",
  137. "negative_custom:需要请示 sentiment-",
  138. "negative_custom:需要讨论 sentiment-",
  139. "negative_custom:需要开会研究 sentiment-",
  140. "soft_refusal:下个月 positive-block",
  141. "soft_refusal:以后再说 negation",
  142. "soft_refusal:以后再说 positive-block",
  143. "soft_refusal:暂时不需要 negation",
  144. "soft_refusal:暂时不需要 positive-block",
  145. "soft_refusal:过段时间 negation",
  146. "soft_refusal:过段时间 positive-block",
  147. "soft_refusal:下次吧 negation",
  148. "soft_refusal:下次吧 positive-block",
  149. "soft_refusal:改天 positive-block",
  150. "soft_refusal:回头再说 positive-block",
  151. "soft_refusal:再看看 negation",
  152. "soft_refusal:再看看 positive-block",
  153. "soft_refusal:再考虑 negation",
  154. "soft_refusal:再考虑 positive-block",
  155. "soft_refusal:考虑考虑 negation",
  156. "soft_refusal:考虑考虑 positive-block",
  157. "soft_refusal:问问家人 negation",
  158. "soft_refusal:问问家人 positive-block",
  159. "soft_refusal:问问朋友 negation",
  160. "soft_refusal:问问朋友 positive-block",
  161. "soft_refusal:问问领导 negation",
  162. "soft_refusal:问问领导 positive-block",
  163. "soft_refusal:汇报一下 positive-block",
  164. "soft_refusal:走流程 negation",
  165. "soft_refusal:走流程 positive-block",
  166. "soft_refusal:需要审批 positive-block",
  167. "soft_refusal:需要汇报 positive-block",
  168. "soft_refusal:需要请示 negation",
  169. "soft_refusal:需要请示 positive-block",
  170. "soft_refusal:需要讨论 positive-block",
  171. "soft_refusal:开会研究 negation",
  172. "soft_refusal:开会研究 positive-block"
  173. ],
  174. "failureTruncated": true,
  175. "passed": false,
  176. "durationMs": 166835,
  177. "message": "47 failure(s), showing up to 40"
  178. }
  179. },
  180. "contextCases": [
  181. {
  182. "id": "soft_refusal_first",
  183. "input": "下个月再说 (empty ctx)",
  184. "expected": "L2 pause, not exclude",
  185. "actual": "L2_SOFT_REFUSAL exclude=false reason=soft_refusal",
  186. "passed": true
  187. },
  188. {
  189. "id": "soft_refusal_second",
  190. "input": "下个月再说 (_softRefusalCount=1)",
  191. "expected": "L4 exclude (repeated)",
  192. "actual": "L4_EXCLUDE exclude=true reason=repeated_soft_refusal",
  193. "passed": true
  194. },
  195. {
  196. "id": "handoff_first_neutral",
  197. "input": "了解一下人工 (neutral)",
  198. "expected": "no transfer, count=1",
  199. "actual": "takeover=true count=1 reason=客户明确表达需要人工服务的意图,虽然语气平和,但\u0027了解一下人工\u0027表明其希望获得更专业或个性化的帮助,属于语义上的转人工请求。",
  200. "passed": false
  201. },
  202. {
  203. "id": "handoff_second_confirm",
  204. "input": "转人工 (_handoffTriggerCount=1)",
  205. "expected": "transfer on 2nd hit",
  206. "actual": "takeover=true reason=Handoff trigger (session escalated x2): 人工",
  207. "passed": true
  208. },
  209. {
  210. "id": "negation_handoff",
  211. "input": "不转人工",
  212. "expected": "no handoff",
  213. "actual": "takeover=false",
  214. "passed": true
  215. },
  216. {
  217. "id": "negation_soft_refusal",
  218. "input": "别下个月",
  219. "expected": "no soft refusal",
  220. "actual": "null reason=null",
  221. "passed": true
  222. },
  223. {
  224. "id": "positive_sentiment_soft",
  225. "input": "很满意,价格多少 (positive ctx)",
  226. "expected": "no soft refusal",
  227. "actual": "null exclude=false",
  228. "passed": true
  229. },
  230. {
  231. "id": "positive_sentiment_handoff",
  232. "input": "很满意,价格多少 (positive ctx, no handoff keyword)",
  233. "expected": "no handoff misfire",
  234. "actual": "takeover=false reason=客户情绪正面(满意),仅询问价格,属于简单购买咨询,无需转接专项客服",
  235. "passed": true
  236. }
  237. ],
  238. "failures": [
  239. "handoff_first expected no transfer with _handoffTriggerCount=1",
  240. "catalog: 47 failure(s), showing up to 40"
  241. ],
  242. "passed": false,
  243. "durationMs": 177777,
  244. "totalCases": 1047,
  245. "passedCases": 1034,
  246. "message": "handoff_first expected no transfer with _handoffTriggerCount=1; catalog: 47 failure(s), showing up to 40",
  247. "catalogFailureSamples": [
  248. "positive_custom:非常满意 sentiment+",
  249. "negative_custom:不用了谢谢 sentiment-",
  250. "negative_custom:需要审批 sentiment-",
  251. "negative_custom:需要汇报 sentiment-",
  252. "negative_custom:需要请示 sentiment-",
  253. "negative_custom:需要讨论 sentiment-",
  254. "negative_custom:需要开会研究 sentiment-",
  255. "soft_refusal:下个月 positive-block",
  256. "soft_refusal:以后再说 negation",
  257. "soft_refusal:以后再说 positive-block",
  258. "soft_refusal:暂时不需要 negation",
  259. "soft_refusal:暂时不需要 positive-block",
  260. "soft_refusal:过段时间 negation",
  261. "soft_refusal:过段时间 positive-block",
  262. "soft_refusal:下次吧 negation",
  263. "soft_refusal:下次吧 positive-block",
  264. "soft_refusal:改天 positive-block",
  265. "soft_refusal:回头再说 positive-block",
  266. "soft_refusal:再看看 negation",
  267. "soft_refusal:再看看 positive-block",
  268. "soft_refusal:再考虑 negation",
  269. "soft_refusal:再考虑 positive-block",
  270. "soft_refusal:考虑考虑 negation",
  271. "soft_refusal:考虑考虑 positive-block",
  272. "soft_refusal:问问家人 negation",
  273. "soft_refusal:问问家人 positive-block",
  274. "soft_refusal:问问朋友 negation",
  275. "soft_refusal:问问朋友 positive-block",
  276. "soft_refusal:问问领导 negation",
  277. "soft_refusal:问问领导 positive-block",
  278. "soft_refusal:汇报一下 positive-block",
  279. "soft_refusal:走流程 negation",
  280. "soft_refusal:走流程 positive-block",
  281. "soft_refusal:需要审批 positive-block",
  282. "soft_refusal:需要汇报 positive-block",
  283. "soft_refusal:需要请示 negation",
  284. "soft_refusal:需要请示 positive-block",
  285. "soft_refusal:需要讨论 positive-block",
  286. "soft_refusal:开会研究 negation",
  287. "soft_refusal:开会研究 positive-block"
  288. ]
  289. }