ARCH: усилить semantic integrity и добавить human AGENT сценарии
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase64_human_vat_investigation_dialog",
|
||||
"domain": "address_phase64_human_vat_investigation_dialog",
|
||||
"title": "Phase 64 human VAT investigation dialog",
|
||||
"description": "Human-facing AGENT dialog for a finance user who first orients inside VAT-related 1C objects, then deliberately goes into VAT movements for one organization, pivots into supporting documents, and checks year-switch plus all-time continuity without dead filler turns or vague wording.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_metadata_orientation",
|
||||
"title": "The user asks where VAT data lives in 1C",
|
||||
"question": "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?",
|
||||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)metadata|метадан",
|
||||
"(?i)ндс",
|
||||
"(?i)документ|регистр"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["metadata_surface", "vat_orientation", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_choose_movements_with_org",
|
||||
"title": "The user explicitly chooses the movement lane with an organization",
|
||||
"question": "Хорошо, тогда покажи движения по ООО Альтернатива Плюс.",
|
||||
"allowed_reply_types": ["clarification_required", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)движени|регистр|операц",
|
||||
"(?i)период"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["movement_lane_after_metadata", "inline_organization_clarification", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_execute_movement_slice",
|
||||
"title": "The user provides the year and the movement slice executes",
|
||||
"question": "За 2020 год.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)ндс|движени|регистр|операц|платеж|поступлен|списан|строк"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["movement_lane_execution", "bounded_retrieval", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_document_pivot_same_scope",
|
||||
"title": "The user pivots from movements to supporting documents on the same slice",
|
||||
"question": "А теперь по документам?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт|строк"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните .*организац",
|
||||
"(?i)уточните .*период",
|
||||
"(?i)не найден контрагент"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["document_pivot_after_movement_retrieval", "scope_reuse", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_document_year_switch",
|
||||
"title": "The user asks for the same document slice in another year",
|
||||
"question": "А теперь за 2021 год?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2021",
|
||||
"(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт|строк"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)движени|регистр",
|
||||
"(?i)уточните .*организац",
|
||||
"(?i)уточните .*период"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["document_lane_continuity", "year_switch_after_pivot", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_document_all_time_followup",
|
||||
"title": "The user broadens the same document slice to all available time",
|
||||
"question": "А теперь за все время?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)все доступное время|все время|весь период",
|
||||
"(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт|строк"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)за 2021",
|
||||
"(?i)движени|регистр",
|
||||
"(?i)уточните .*период"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["document_lane_continuity", "all_time_followup", "human_dialog"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase65_human_svk_money_dialog",
|
||||
"domain": "address_phase65_human_svk_money_dialog",
|
||||
"title": "Phase 65 human SVK money dialog",
|
||||
"description": "Human-facing AGENT dialog for a user who grounds one counterparty in 1C, checks incoming money, outgoing money, and net for one year, then naturally pivots into documents and movements without dead filler turns.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_ground_counterparty",
|
||||
"title": "The user asks to find the counterparty in 1C",
|
||||
"question": "Хочу проверить одного контрагента. Найди в 1С Группу СВК.",
|
||||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)свк",
|
||||
"(?i)контрагент|каталог|1с"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["entity_grounding", "counterparty_resolution", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_incoming_value_flow",
|
||||
"title": "The user asks for incoming money in 2020",
|
||||
"question": "Посмотри, сколько денег мы получили от него за 2020 год.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)входящ|поступлен|получ"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["incoming_value_flow", "grounded_counterparty_followup", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_outgoing_value_flow",
|
||||
"title": "The user pivots into outgoing money on the same counterparty and year",
|
||||
"question": "А теперь сколько мы ему заплатили?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)исходящ|списан|заплат"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["outgoing_value_flow", "grounded_counterparty_followup", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_net_value_flow",
|
||||
"title": "The user asks for the same net flow",
|
||||
"question": "А какое получилось нетто?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)нетто|сальдо|чист"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["net_value_flow", "grounded_counterparty_followup", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_document_pivot",
|
||||
"title": "The user asks for documents on the same grounded counterparty",
|
||||
"question": "А по документам?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)документ|счет|сч[её]т[- ]?фактур|накладн|акт|строк"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните .*контрагент",
|
||||
"(?i)не найден контрагент"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["document_pivot_after_value_flow", "grounded_counterparty_followup", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_movement_pivot",
|
||||
"title": "The user asks for movements on the same grounded counterparty",
|
||||
"question": "А по движениям?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)движени|регистр|операц|платеж|поступлен|списан|строк"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните .*контрагент",
|
||||
"(?i)не найден контрагент"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["movement_pivot_after_value_flow", "grounded_counterparty_followup", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_year_switch_same_counterparty",
|
||||
"title": "The user asks for the same contour in 2021",
|
||||
"question": "А теперь за 2021 год?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2021"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["year_switch", "grounded_counterparty_followup", "human_dialog"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase66_human_org_open_scope_dialog",
|
||||
"domain": "address_phase66_human_org_open_scope_dialog",
|
||||
"title": "Phase 66 human open-scope organization money dialog",
|
||||
"description": "Human-facing AGENT dialog for organization-scoped money analytics without a preselected counterparty: the assistant first asks for the organization, then the same dialog continues through all-time follow-up, comparison, and ranking over that one company.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_open_scope_incoming_total",
|
||||
"title": "The user asks for incoming money without naming the organization yet",
|
||||
"question": "Хочу быстрый денежный срез по одной организации без привязки к контрагенту. Сколько вообще входящих денег было за 2020 год?",
|
||||
"allowed_reply_types": ["clarification_required", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)уточн|нужно",
|
||||
"(?i)организац"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["open_scope_total", "organization_scope", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_all_time_same_open_scope",
|
||||
"title": "The user selects the organization and gets the 2020 incoming total",
|
||||
"question": "По ООО Альтернатива Плюс.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)входящ|поступлен|получ"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)уточните .*контрагент",
|
||||
"(?i)не найден контрагент",
|
||||
"(?i)уточните .*организац"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["organization_clarification", "open_scope_total", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_all_time_same_open_scope",
|
||||
"title": "The user broadens the same organization slice to all available time",
|
||||
"question": "Понял, тогда за все время.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)все доступное время|все время|весь период",
|
||||
"(?i)входящ|поступлен|получ"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)за 2020",
|
||||
"(?i)уточните .*контрагент",
|
||||
"(?i)уточните .*период",
|
||||
"(?i)уточните .*организац"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["all_time_followup", "organization_scope", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_bidirectional_comparison",
|
||||
"title": "The user asks which money direction is larger for the organization",
|
||||
"question": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)входящ|исходящ|получ|заплат|больше"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["value_flow_comparison", "organization_scope", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_comparison_year_switch",
|
||||
"title": "The user asks the same comparison for another year",
|
||||
"question": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2021",
|
||||
"(?i)входящ|исходящ|получ|заплат|больше"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["value_flow_comparison", "year_switch", "organization_scope", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_ranking_top_counterparty",
|
||||
"title": "The user asks who brought the most money for the organization",
|
||||
"question": "И кто больше всего принес денег этой организации в 2020 году?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2020",
|
||||
"(?i)кто|контрагент|клиент|принес|доход"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["value_flow_ranking", "organization_scope", "human_dialog"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_ranking_year_switch",
|
||||
"title": "The user asks the same ranking for another year",
|
||||
"question": "А в 2021 году?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)2021"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["value_flow_ranking", "year_switch", "organization_scope", "human_dialog"]
|
||||
}
|
||||
]
|
||||
}
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase67_svk_grounded_counterparty_integrity",
|
||||
"domain": "address_phase67_svk_grounded_counterparty_integrity",
|
||||
"title": "Phase 67 grounded counterparty integrity for SVK dialog",
|
||||
"description": "Replay for the exact human dialog where one grounded counterparty must survive incoming, payout, net, documents, movements, and year-switch without being replaced by a stale focus object.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_ground_counterparty",
|
||||
"title": "Ground the counterparty in 1C",
|
||||
"question": "\u0425\u043e\u0447\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430. \u041d\u0430\u0439\u0434\u0438 \u0432 1\u0421 \u0413\u0440\u0443\u043f\u043f\u0443 \u0421\u0412\u041a.",
|
||||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)\u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442|\u043a\u0430\u0442\u0430\u043b\u043e\u0433|1\u0441"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["entity_grounding", "counterparty_resolution", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_incoming_2020",
|
||||
"title": "Ask about incoming money for 2020",
|
||||
"question": "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u043d\u0435\u0433 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0442 \u043d\u0435\u0433\u043e \u0437\u0430 2020 \u0433\u043e\u0434.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)2020",
|
||||
"(?i)\u0432\u0445\u043e\u0434\u044f\u0449|\u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d|\u043f\u043e\u043b\u0443\u0447"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["incoming_value_flow", "grounded_counterparty_followup", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_payout_2020_same_counterparty",
|
||||
"title": "Ask how much we paid to the same counterparty",
|
||||
"question": "\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u044b \u0435\u043c\u0443 \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b\u0438?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)\u0437\u0430\u043f\u043b\u0430\u0442|\u0438\u0441\u0445\u043e\u0434\u044f\u0449|\u0441\u043f\u0438\u0441\u0430\u043d|\u043f\u043b\u0430\u0442\u0435\u0436"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d",
|
||||
"(?i)\u0441\u0435\u0440\u0432\u0438\u0441\u043a\u043e\u043d\u0441\u0430\u043b\u0442"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["outgoing_value_flow", "grounded_counterparty_followup", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_net_same_counterparty",
|
||||
"title": "Ask for the same net flow",
|
||||
"question": "\u0410 \u043a\u0430\u043a\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0442\u0442\u043e?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)\u043d\u0435\u0442\u0442\u043e|\u0441\u0430\u043b\u044c\u0434\u043e|\u0447\u0438\u0441\u0442"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d",
|
||||
"(?i)\u0441\u0435\u0440\u0432\u0438\u0441\u043a\u043e\u043d\u0441\u0430\u043b\u0442"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["net_value_flow", "grounded_counterparty_followup", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_documents_same_counterparty",
|
||||
"title": "Pivot into documents without losing the counterparty",
|
||||
"question": "\u0410 \u043f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442|\u0441\u0447\u0435\u0442|\u0441\u0447[\u0435\u0451]\u0442[- ]?\u0444\u0430\u043a\u0442\u0443\u0440|\u043d\u0430\u043a\u043b\u0430\u0434\u043d|\u0430\u043a\u0442|\u0441\u0442\u0440\u043e\u043a"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d",
|
||||
"(?i)\u0441\u0435\u0440\u0432\u0438\u0441\u043a\u043e\u043d\u0441\u0430\u043b\u0442",
|
||||
"(?i)\u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 .* \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["document_pivot_after_value_flow", "grounded_counterparty_followup", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_movements_same_counterparty",
|
||||
"title": "Pivot into movements without losing the counterparty",
|
||||
"question": "\u0410 \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\u043c?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)\u0434\u0432\u0438\u0436\u0435\u043d\u0438|\u0440\u0435\u0433\u0438\u0441\u0442\u0440|\u043e\u043f\u0435\u0440\u0430\u0446|\u043f\u043b\u0430\u0442\u0435\u0436|\u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d|\u0441\u043f\u0438\u0441\u0430\u043d|\u0441\u0442\u0440\u043e\u043a"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d",
|
||||
"(?i)\u0441\u0435\u0440\u0432\u0438\u0441\u043a\u043e\u043d\u0441\u0430\u043b\u0442",
|
||||
"(?i)\u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 .* \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["movement_pivot_after_value_flow", "grounded_counterparty_followup", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_year_switch_same_counterparty",
|
||||
"title": "Switch to 2021 without losing the counterparty",
|
||||
"question": "\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430 2021 \u0433\u043e\u0434?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)\u0441\u0432\u043a",
|
||||
"(?i)2021"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)\u043d\u043e\u0440\u0442\u043e\u043d",
|
||||
"(?i)\u0441\u0435\u0440\u0432\u0438\u0441\u043a\u043e\u043d\u0441\u0430\u043b\u0442"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["year_switch", "grounded_counterparty_followup", "integrity_guard"]
|
||||
}
|
||||
]
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase68_referential_document_followup_integrity",
|
||||
"domain": "address_phase68_referential_document_followup_integrity",
|
||||
"title": "Phase 68 referential document follow-up integrity",
|
||||
"description": "Replay for a human document drilldown where a referential follow-up like 'кроме этого документа...' must stay in the exact document contour, keep the prior counterparty, and avoid drifting into metadata discovery.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_documents_by_counterparty",
|
||||
"title": "Open documents for the counterparty",
|
||||
"question": "Покажи документы по Жуковке 51.",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)жуковк",
|
||||
"(?i)документ|сч[её]т|акт|накладн|строк"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["documents_by_counterparty", "referential_followup_seed", "integrity_guard"]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_referential_document_followup",
|
||||
"title": "Ask whether there are more documents besides this one",
|
||||
"question": "Кроме этого документа есть еще что-то?",
|
||||
"allowed_reply_types": ["factual", "factual_with_explanation", "partial_coverage"],
|
||||
"required_answer_patterns_all": [
|
||||
"(?i)жуковк|контрагент",
|
||||
"(?i)документ|сч[её]т|акт|накладн|еще"
|
||||
],
|
||||
"forbidden_answer_patterns": [
|
||||
"(?i)метадан",
|
||||
"(?i)схем",
|
||||
"(?i)объект[а-я]* 1с",
|
||||
"(?i)регистр",
|
||||
"(?i)уточните .* контрагент"
|
||||
],
|
||||
"criticality": "critical",
|
||||
"semantic_tags": ["referential_document_followup", "counterparty_carryover", "integrity_guard"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user