АРЧ ЮИ - остановка прогона через гуй
This commit is contained in:
@@ -155,9 +155,10 @@ describe("assistant living chat runtime adapter", () => {
|
||||
const output = await runAssistantLivingChatRuntime(input);
|
||||
|
||||
expect(output.handled).toBe(true);
|
||||
expect(output.chatText).toContain("llm-text");
|
||||
expect(output.chatText).toContain("Привет! Всё нормально.");
|
||||
expect(output.chatText).toContain("offer:ООО Альтернатива Плюс, ООО Лайсвуд, РАЙМ");
|
||||
expect(output.debug?.living_chat_response_source).toBe("llm_chat_with_proactive_scope_offer");
|
||||
expect(output.chatText).not.toContain("llm-text");
|
||||
expect(output.debug?.living_chat_response_source).toBe("deterministic_smalltalk_with_proactive_scope_offer");
|
||||
expect(output.debug?.living_chat_proactive_scope_offer_applied).toBe(true);
|
||||
expect(output.debug?.living_chat_data_scope_probe_org_count).toBe(3);
|
||||
expect(output.debug?.assistant_known_organizations).toEqual(["ООО Альтернатива Плюс", "ООО Лайсвуд", "РАЙМ"]);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { createAssistantLivingModePolicy } from "../src/services/assistantLivingModePolicy";
|
||||
|
||||
function buildPolicy() {
|
||||
function buildPolicy(options?: { repairAddressMojibake?: (text: string) => string }) {
|
||||
return createAssistantLivingModePolicy({
|
||||
featureAssistantLivingChatRouterV1: true,
|
||||
compactWhitespace: (text: string) => text.replace(/\s+/g, " ").trim(),
|
||||
repairAddressMojibake: (text: string) => text,
|
||||
repairAddressMojibake: options?.repairAddressMojibake ?? ((text: string) => text),
|
||||
toNonEmptyString: (value: unknown) => {
|
||||
if (value === null || value === undefined) {
|
||||
return null;
|
||||
@@ -34,6 +34,8 @@ function buildPolicy() {
|
||||
}
|
||||
|
||||
describe("assistantLivingModePolicy", () => {
|
||||
const colloquialGreeting = "\u043f\u0440\u0438\u0432\u0435\u0442\u0438\u043a - \u0447\u0435 \u043a\u0430\u043a \u0442\u0430\u043c \u0434\u0435\u043b\u0430";
|
||||
|
||||
it("detects explicit recap wording as memory signal even when selected-object words are present", () => {
|
||||
const policy = buildPolicy();
|
||||
|
||||
@@ -63,6 +65,21 @@ describe("assistantLivingModePolicy", () => {
|
||||
expect(decision.reason).toBe("living_chat_signal_detected");
|
||||
});
|
||||
|
||||
it("detects colloquial greeting with extra words as living chat signal", () => {
|
||||
const policy = buildPolicy();
|
||||
|
||||
expect(policy.hasLivingChatSignal(colloquialGreeting)).toBe(true);
|
||||
});
|
||||
|
||||
it("detects mojibake colloquial greeting after repair", () => {
|
||||
const policy = buildPolicy({
|
||||
repairAddressMojibake: (text: string) =>
|
||||
text === "приветик - че как там дела" ? colloquialGreeting : text
|
||||
});
|
||||
|
||||
expect(policy.hasLivingChatSignal("приветик - че как там дела")).toBe(true);
|
||||
});
|
||||
|
||||
it("keeps explicit inventory question in deep mode", () => {
|
||||
const policy = buildPolicy();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user