feat: port quality, escalation, KB version, site-map KB, experiments and metrics

This commit is contained in:
wangliang
2026-10-23 11:41:09 +08:00
parent 81b49c9350
commit b778570045
33 changed files with 2446 additions and 344 deletions
+24
View File
@@ -0,0 +1,24 @@
'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const { createEscalation } = require('../src/escalation');
const esc = createEscalation({ client: { sendPrivateNote: async () => {}, assignUser: async () => {} } });
test('escalation: three consecutive fails -> level 2', () => {
assert.equal(esc.shouldEscalate({ messagesProcessed: 3 }, 'policy_faq', 'high', 3, 2).level, 2);
});
test('escalation: low KB with no hits -> level 1', () => {
assert.equal(esc.shouldEscalate({ messagesProcessed: 1 }, 'policy_faq', 'low', 0, 0).level, 1);
});
test('escalation: healthy -> level 0', () => {
assert.equal(esc.shouldEscalate({ messagesProcessed: 1 }, 'policy_faq', 'high', 0, 3).level, 0);
});
test('escalation: appends localized human option', () => {
const out = esc.appendEscalationOption('您好', '您好,订单怎么查');
assert.match(out, /转人工/);
});