ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - fix(router): keep llm-first non-domain indexing and prevent followup force into address lane
This commit is contained in:
@@ -70,6 +70,18 @@ describe("assistant living router mode decision", () => {
|
||||
expect(decision.mode).toBe("deep_analysis");
|
||||
expect(decision.reason).toBe("predecompose_unsupported_mode_fallback_to_deep");
|
||||
});
|
||||
|
||||
it("routes ultra-short deictic follow-up ('тут?') to chat mode", () => {
|
||||
const decision = resolveLivingAssistantModeDecision({
|
||||
userMessage: "тут?",
|
||||
addressLaneTriggered: false,
|
||||
useMock: false,
|
||||
predecomposeMode: "unsupported",
|
||||
predecomposeModeConfidence: "low"
|
||||
});
|
||||
expect(decision.mode).toBe("chat");
|
||||
expect(decision.reason).toBe("living_chat_signal_detected");
|
||||
});
|
||||
it("routes capability question to chat even when phrase contains 1С", () => {
|
||||
const decision = resolveLivingAssistantModeDecision({
|
||||
userMessage: "и 1с можешь настроить?",
|
||||
@@ -186,6 +198,39 @@ describe("assistant living router mode decision", () => {
|
||||
});
|
||||
|
||||
describe("assistant orchestration contract", () => {
|
||||
it("routes non-domain emotional follow-up to indexed chat path instead of address lane", () => {
|
||||
const decision = resolveAssistantOrchestrationDecision({
|
||||
rawUserMessage: "бля хочу выпилиться от этого ебаного 1с",
|
||||
effectiveAddressUserMessage: "бля хочу выпилиться от этого ебаного 1с",
|
||||
followupContext: {
|
||||
previous_intent: "payables_confirmed_as_of_date",
|
||||
previous_filters: {
|
||||
period_from: "2021-05-01",
|
||||
period_to: "2021-05-31",
|
||||
as_of_date: "2021-05-31"
|
||||
}
|
||||
},
|
||||
llmPreDecomposeMeta: {
|
||||
applied: false,
|
||||
reason: "no_usable_fragment",
|
||||
predecomposeContract: {
|
||||
mode: "unsupported",
|
||||
mode_confidence: "low",
|
||||
intent: "unknown",
|
||||
intent_confidence: "low"
|
||||
}
|
||||
} as any,
|
||||
useMock: false
|
||||
});
|
||||
|
||||
expect(decision.runAddressLane).toBe(false);
|
||||
expect(decision.toolGateDecision).toBe("skip_address_lane");
|
||||
expect(decision.toolGateReason).toBe("non_domain_query_indexed");
|
||||
expect(decision.livingMode).toBe("chat");
|
||||
expect(decision.livingReason).toBe("non_domain_query_indexed");
|
||||
expect(decision.orchestrationContract?.hard_meta_mode).toBe("non_domain");
|
||||
});
|
||||
|
||||
it("keeps VAT payable forecast query in address lane", () => {
|
||||
const decision = resolveAssistantOrchestrationDecision({
|
||||
rawUserMessage: "какой прогноз оплаты ндс за 12 мая 2020",
|
||||
|
||||
Reference in New Issue
Block a user