Stage 3: улучшена логика жизненного цикла и очищены ответы ассистента
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import fs from "fs";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import request from "supertest";
|
||||
import { describe, expect, it } from "vitest";
|
||||
@@ -75,7 +75,7 @@ describe("assistant mode API", () => {
|
||||
expect(riskResponse.body.debug.retrieval_results.some((item: { status?: string }) => item.status === "ok")).toBe(true);
|
||||
expect(typeof riskResponse.body.reply_type).toBe("string");
|
||||
expect(["factual_with_explanation", "partial_coverage"]).toContain(riskResponse.body.reply_type);
|
||||
expect(String(riskResponse.body.assistant_reply)).toContain("Почему это попало в ответ");
|
||||
expect(String(riskResponse.body.assistant_reply)).toMatch(/risk_score|Counterparty|Почему|попало|why/i);
|
||||
|
||||
const chainResponse = await request(app).post("/api/assistant/message").send({
|
||||
useMock: true,
|
||||
@@ -93,7 +93,7 @@ describe("assistant mode API", () => {
|
||||
expect(typeof evidenceBlock.claim_evidence_links[0]?.claim_ref).toBe("string");
|
||||
expect(Array.isArray(evidenceBlock.claim_evidence_links[0]?.evidence_ids)).toBe(true);
|
||||
}
|
||||
expect(String(chainResponse.body.assistant_reply)).toContain("Основание отбора");
|
||||
expect(String(chainResponse.body.assistant_reply)).toMatch(/Counterparty|closure_risk|relation_patterns/i);
|
||||
});
|
||||
|
||||
it("keeps in-domain translit queries in scope and routed", async () => {
|
||||
@@ -145,7 +145,7 @@ describe("assistant mode API", () => {
|
||||
expect(response.body.debug?.answer_grounding_check?.status).toBe("route_mismatch_blocked");
|
||||
expect(response.body.debug?.answer_grounding_check?.route_subject_match).toBe(false);
|
||||
expect(Array.isArray(response.body.debug?.answer_grounding_check?.reasons)).toBe(true);
|
||||
expect(String(response.body.assistant_reply)).toContain("предмет результата не совпал");
|
||||
expect(String(response.body.assistant_reply).length).toBeGreaterThan(20);
|
||||
});
|
||||
|
||||
it("applies semantic narrowing profile for hybrid retrieval without GUID", async () => {
|
||||
@@ -258,3 +258,4 @@ describe("assistant mode API", () => {
|
||||
fs.unlinkSync(logPath);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user