NODEDC_1C/llm_normalizer/backend/tests/fixtures.ts

190 lines
6.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { NormalizedQueryV1, NormalizedQueryV2, NormalizedQueryV2_0_1, NormalizedQueryV2_0_2 } from "../src/types/normalizer";
export function normalizedFixture(): NormalizedQueryV1 {
return {
schema_version: "normalized_query_v1",
user_question_raw: "По каким поставщикам не бьются взаиморасчеты?",
normalized_question: "Показать поставщиков с расхождениями по взаиморасчетам.",
intent_class: "cross_entity",
business_problem_type: "reconciliation",
domain_entities: ["контрагент", "документ", "проводка"],
accounts_mentioned: ["60"],
documents_mentioned: ["поступление", "списание"],
registers_mentioned: ["взаиморасчеты"],
period_scope: {
type: "inferred",
value: "2020-06",
confidence: "medium"
},
requires: {
needs_cross_entity_join: true,
needs_causal_chain: true,
needs_exact_object_trace: false,
needs_ranking: false,
needs_anomaly_summary: false,
needs_runtime_truth: false,
needs_period_cut: true,
needs_evidence: true
},
expected_output_shape: "reconciliation_report",
route_hint: "hybrid_store_plus_live",
ambiguities: [],
confidence: {
overall: "medium",
intent_class: "high",
route_hint: "medium"
}
};
}
export function normalizedFixtureV2(): NormalizedQueryV2 {
return {
schema_version: "normalized_query_v2",
user_message_raw: "Проверь по поставщикам хвосты и отдельно скажи, что не относится к данным компании.",
message_in_scope: true,
scope_confidence: "medium",
contains_multiple_tasks: true,
fragments: [
{
fragment_id: "F1",
raw_fragment_text: "Проверь по поставщикам хвосты",
normalized_fragment_text: "Проверить хвосты по поставщикам",
domain_relevance: "in_scope",
business_scope: "company_specific_accounting",
entity_hints: ["поставщик", "взаиморасчеты"],
account_hints: ["60"],
document_hints: ["документ"],
register_hints: ["остатки"],
time_scope: {
type: "missing",
value: null,
confidence: "low"
},
flags: {
has_multi_entity_scope: true,
asks_for_chain_explanation: true,
asks_for_ranking_or_top: false,
asks_for_period_summary: false,
asks_for_rule_check: false,
asks_for_anomaly_scan: true,
asks_for_exact_object_trace: false,
asks_for_evidence: true,
mentions_period_close_context: false
},
candidate_labels: ["cross_entity", "anomaly_probe"],
confidence: "medium"
}
],
discarded_fragments: [
{
raw_fragment_text: "короче",
reason: "noise_or_too_short"
}
],
global_notes: {
needs_clarification: true,
clarification_reason: "Не указан период."
}
};
}
export function normalizedFixtureV2_0_1(): NormalizedQueryV2_0_1 {
return {
schema_version: "normalized_query_v2_0_1",
user_message_raw: "Проверь, что висит по 97 и где есть подозрительные хвосты.",
message_in_scope: true,
scope_confidence: "high",
contains_multiple_tasks: false,
fragments: [
{
fragment_id: "F1",
raw_fragment_text: "Проверь, что висит по 97 и где есть подозрительные хвосты",
normalized_fragment_text: "Проверить зависшие записи по 97 и подозрительные хвосты",
domain_relevance: "in_scope",
business_scope: "company_specific_accounting",
entity_hints: ["рбп"],
account_hints: ["97"],
document_hints: [],
register_hints: ["остатки"],
time_scope: {
type: "missing",
value: null,
confidence: "low"
},
flags: {
has_multi_entity_scope: false,
asks_for_chain_explanation: false,
asks_for_ranking_or_top: false,
asks_for_period_summary: false,
asks_for_rule_check: true,
asks_for_anomaly_scan: true,
asks_for_exact_object_trace: false,
asks_for_evidence: false,
mentions_period_close_context: false
},
candidate_labels: ["rule_based_account_control", "anomaly_probe"],
confidence: "high",
execution_readiness: "executable_with_soft_assumptions",
clarification_reason: null,
soft_assumption_used: ["problem_scan_mode_enabled"]
}
],
discarded_fragments: [],
global_notes: {
needs_clarification: false,
clarification_reason: null
}
};
}
export function normalizedFixtureV2_0_2(): NormalizedQueryV2_0_2 {
return {
schema_version: "normalized_query_v2_0_2",
user_message_raw: "Проверь зависшие истории по 97 и подсвети рискованные участки.",
message_in_scope: true,
scope_confidence: "high",
contains_multiple_tasks: false,
fragments: [
{
fragment_id: "F1",
raw_fragment_text: "Проверь зависшие истории по 97 и подсвети рискованные участки",
normalized_fragment_text: "Проверить зависшие истории по 97 и рискованные участки",
domain_relevance: "in_scope",
business_scope: "company_specific_accounting",
entity_hints: ["рбп"],
account_hints: ["97"],
document_hints: [],
register_hints: ["остатки"],
time_scope: {
type: "missing",
value: null,
confidence: "low"
},
flags: {
has_multi_entity_scope: false,
asks_for_chain_explanation: false,
asks_for_ranking_or_top: false,
asks_for_period_summary: false,
asks_for_rule_check: true,
asks_for_anomaly_scan: true,
asks_for_exact_object_trace: false,
asks_for_evidence: false,
mentions_period_close_context: false
},
candidate_labels: ["rule_based_account_control", "anomaly_probe"],
confidence: "high",
execution_readiness: "executable_with_soft_assumptions",
clarification_reason: null,
soft_assumption_used: ["problem_scan_mode_enabled"],
route_status: "routed",
no_route_reason: null
}
],
discarded_fragments: [],
global_notes: {
needs_clarification: false,
clarification_reason: null
}
};
}