semantic-r1.json 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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": 214,
  26. "passed": true,
  27. "failures": [
  28. ],
  29. "failureSampleCount": 0,
  30. "message": "all 214 checks passed for 107 words"
  31. },
  32. "negative_custom": {
  33. "keywordCount": 108,
  34. "totalCases": 216,
  35. "passedCases": 216,
  36. "passed": true,
  37. "failures": [
  38. ],
  39. "failureSampleCount": 0,
  40. "message": "all 216 checks passed for 108 words"
  41. },
  42. "soft_refusal": {
  43. "keywordCount": 56,
  44. "totalCases": 168,
  45. "passedCases": 168,
  46. "passed": true,
  47. "failures": [
  48. ],
  49. "failureSampleCount": 0,
  50. "message": "all 168 checks passed for 56 words"
  51. },
  52. "handoff_trigger": {
  53. "keywordCount": 78,
  54. "totalCases": 390,
  55. "passedCases": 390,
  56. "passed": true,
  57. "failures": [
  58. ],
  59. "failureSampleCount": 0,
  60. "message": "all 390 checks passed for 78 words"
  61. },
  62. "sarcasm": {
  63. "keywordCount": 61,
  64. "totalCases": 122,
  65. "passedCases": 122,
  66. "passed": true,
  67. "failures": [
  68. ],
  69. "failureSampleCount": 0,
  70. "message": "all 122 checks passed for 61 words"
  71. },
  72. "_combos": {
  73. "totalCases": 5,
  74. "passedCases": 5,
  75. "passed": true,
  76. "failures": [
  77. ],
  78. "message": "combo checks ok"
  79. }
  80. },
  81. "categoryCount": 6,
  82. "totalCases": 1375,
  83. "passedCases": 1375,
  84. "failedCases": 0,
  85. "failures": [
  86. ],
  87. "failureTruncated": false,
  88. "passed": true,
  89. "durationMs": 120127,
  90. "message": "catalog validation passed (1375 cases across 6 categories)"
  91. }
  92. },
  93. "contextCases": [
  94. {
  95. "id": "soft_refusal_first",
  96. "input": "下个月再说 (empty ctx)",
  97. "expected": "L2 pause, not exclude",
  98. "actual": "L2_SOFT_REFUSAL exclude=false reason=soft_refusal",
  99. "passed": true
  100. },
  101. {
  102. "id": "soft_refusal_second",
  103. "input": "下个月再说 (_softRefusalCount=1)",
  104. "expected": "L4 exclude (repeated)",
  105. "actual": "L4_EXCLUDE exclude=true reason=repeated_soft_refusal",
  106. "passed": true
  107. },
  108. {
  109. "id": "handoff_first_neutral",
  110. "input": "了解一下人工 -\u003e keyword 人工 (neutral)",
  111. "expected": "no transfer, count=1",
  112. "actual": "takeover=false count=1 reason=Handoff trigger noted (session 1, awaiting confirmation): 人工",
  113. "passed": true
  114. },
  115. {
  116. "id": "handoff_second_confirm",
  117. "input": "转人工 (_handoffTriggerCount=1)",
  118. "expected": "transfer on 2nd hit",
  119. "actual": "takeover=true reason=Handoff trigger (session escalated x2): 人工",
  120. "passed": true
  121. },
  122. {
  123. "id": "negation_handoff",
  124. "input": "不转人工",
  125. "expected": "no handoff",
  126. "actual": "takeover=false",
  127. "passed": true
  128. },
  129. {
  130. "id": "negation_soft_refusal",
  131. "input": "别下个月",
  132. "expected": "no soft refusal",
  133. "actual": "null reason=null",
  134. "passed": true
  135. },
  136. {
  137. "id": "positive_sentiment_soft",
  138. "input": "很满意,价格多少 (positive ctx)",
  139. "expected": "no soft refusal",
  140. "actual": "null exclude=false",
  141. "passed": true
  142. },
  143. {
  144. "id": "positive_sentiment_handoff",
  145. "input": "很满意,价格多少 (positive ctx, no handoff keyword)",
  146. "expected": "no handoff misfire",
  147. "actual": "takeover=false reason=客户情绪正面(满意度0.7),表达‘很满意’后询问价格,属于常规咨询,无紧急或复杂问题,无需转接专项帮助。",
  148. "passed": true
  149. }
  150. ],
  151. "failures": [
  152. ],
  153. "passed": true,
  154. "durationMs": 126608,
  155. "totalCases": 1383,
  156. "passedCases": 1383,
  157. "message": "semantic keyword full validation passed"
  158. }