lobster-semantic-context-validation-20260621-101444.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. {
  2. "companyId": 338,
  3. "sections": {
  4. "semanticKeywordContext": {
  5. "passed": true,
  6. "caseCount": 8,
  7. "message": "all semantic context cases passed"
  8. },
  9. "catalogValidation": {
  10. "companyId": 338,
  11. "categories": {
  12. "custom_keywords": {
  13. "keywordCount": 130,
  14. "totalCases": 260,
  15. "passedCases": 260,
  16. "passed": true,
  17. "failures": [
  18. ],
  19. "failureSampleCount": 0,
  20. "message": "all 260 checks passed for 130 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": 216,
  37. "passed": true,
  38. "failures": [
  39. ],
  40. "failureSampleCount": 0,
  41. "message": "all 216 checks passed for 108 words"
  42. },
  43. "soft_refusal": {
  44. "keywordCount": 56,
  45. "totalCases": 168,
  46. "passedCases": 168,
  47. "passed": true,
  48. "failures": [
  49. ],
  50. "failureSampleCount": 0,
  51. "message": "all 168 checks passed for 56 words"
  52. },
  53. "handoff_trigger": {
  54. "keywordCount": 78,
  55. "totalCases": 390,
  56. "passedCases": 390,
  57. "passed": true,
  58. "failures": [
  59. ],
  60. "failureSampleCount": 0,
  61. "message": "all 390 checks passed for 78 words"
  62. },
  63. "sarcasm": {
  64. "keywordCount": 61,
  65. "totalCases": 122,
  66. "passedCases": 122,
  67. "passed": true,
  68. "failures": [
  69. ],
  70. "failureSampleCount": 0,
  71. "message": "all 122 checks passed for 61 words"
  72. },
  73. "_combos": {
  74. "totalCases": 5,
  75. "passedCases": 5,
  76. "passed": true,
  77. "failures": [
  78. ],
  79. "message": "combo checks ok"
  80. }
  81. },
  82. "categoryCount": 6,
  83. "totalCases": 1375,
  84. "passedCases": 1374,
  85. "failedCases": 1,
  86. "failures": [
  87. "positive_custom:非常满意 sentiment+"
  88. ],
  89. "failureTruncated": false,
  90. "passed": false,
  91. "durationMs": 104773,
  92. "message": "1 failure(s), showing up to 40"
  93. }
  94. },
  95. "contextCases": [
  96. {
  97. "id": "soft_refusal_first",
  98. "input": "下个月再说 (empty ctx)",
  99. "expected": "L2 pause, not exclude",
  100. "actual": "L2_SOFT_REFUSAL exclude=false reason=soft_refusal",
  101. "passed": true
  102. },
  103. {
  104. "id": "soft_refusal_second",
  105. "input": "下个月再说 (_softRefusalCount=1)",
  106. "expected": "L4 exclude (repeated)",
  107. "actual": "L4_EXCLUDE exclude=true reason=repeated_soft_refusal",
  108. "passed": true
  109. },
  110. {
  111. "id": "handoff_first_neutral",
  112. "input": "了解一下人工 -\u003e keyword 人工 (neutral)",
  113. "expected": "no transfer, count=1",
  114. "actual": "takeover=false count=1 reason=Handoff trigger noted (session 1, awaiting confirmation): 人工",
  115. "passed": true
  116. },
  117. {
  118. "id": "handoff_second_confirm",
  119. "input": "转人工 (_handoffTriggerCount=1)",
  120. "expected": "transfer on 2nd hit",
  121. "actual": "takeover=true reason=Handoff trigger (session escalated x2): 人工",
  122. "passed": true
  123. },
  124. {
  125. "id": "negation_handoff",
  126. "input": "不转人工",
  127. "expected": "no handoff",
  128. "actual": "takeover=false",
  129. "passed": true
  130. },
  131. {
  132. "id": "negation_soft_refusal",
  133. "input": "别下个月",
  134. "expected": "no soft refusal",
  135. "actual": "null reason=null",
  136. "passed": true
  137. },
  138. {
  139. "id": "positive_sentiment_soft",
  140. "input": "很满意,价格多少 (positive ctx)",
  141. "expected": "no soft refusal",
  142. "actual": "null exclude=false",
  143. "passed": true
  144. },
  145. {
  146. "id": "positive_sentiment_handoff",
  147. "input": "很满意,价格多少 (positive ctx, no handoff keyword)",
  148. "expected": "no handoff misfire",
  149. "actual": "takeover=false reason=客户情绪正面(满意),问题简单(询问价格),无需转接专业帮助",
  150. "passed": true
  151. }
  152. ],
  153. "failures": [
  154. "catalog: 1 failure(s), showing up to 40"
  155. ],
  156. "passed": false,
  157. "durationMs": 115354,
  158. "totalCases": 1383,
  159. "passedCases": 1382,
  160. "message": "catalog: 1 failure(s), showing up to 40",
  161. "catalogFailureSamples": [
  162. "positive_custom:非常满意 sentiment+"
  163. ]
  164. }