ЮИ - фикс кодировки + порядок в карточках автопрогонов
This commit is contained in:
parent
0fb5190cbd
commit
6d131b0e30
|
|
@ -178,25 +178,25 @@ function buildAddressMemoryRecapReply(input) {
|
||||||
}
|
}
|
||||||
function buildSelectedObjectAnswerInspectionReply(input) {
|
function buildSelectedObjectAnswerInspectionReply(input) {
|
||||||
const contextFacts = (0, assistantContinuityPolicy_1.resolveAddressDebugContextFacts)(input.addressDebug, input.toNonEmptyString);
|
const contextFacts = (0, assistantContinuityPolicy_1.resolveAddressDebugContextFacts)(input.addressDebug, input.toNonEmptyString);
|
||||||
const itemLabel = contextFacts.item ?? "эта позиция";
|
const itemLabel = contextFacts.item ?? "эта позиция";
|
||||||
const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
|
const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
|
||||||
if (detectedIntent === "inventory_sale_trace_for_item") {
|
if (detectedIntent === "inventory_sale_trace_for_item") {
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
|
||||||
"В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
|
"В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
|
||||||
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
|
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
if (detectedIntent === "inventory_purchase_provenance_for_item" ||
|
if (detectedIntent === "inventory_purchase_provenance_for_item" ||
|
||||||
detectedIntent === "inventory_purchase_documents_for_item") {
|
detectedIntent === "inventory_purchase_documents_for_item") {
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция / номенклатура.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция или номенклатура.`,
|
||||||
"В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
|
"В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
|
||||||
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
|
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
function resolveAssistantLivingChatMemoryContext(input) {
|
function resolveAssistantLivingChatMemoryContext(input) {
|
||||||
|
|
|
||||||
|
|
@ -263,14 +263,14 @@ export function buildSelectedObjectAnswerInspectionReply(input: {
|
||||||
toNonEmptyString: (value: unknown) => string | null;
|
toNonEmptyString: (value: unknown) => string | null;
|
||||||
}): string {
|
}): string {
|
||||||
const contextFacts = resolveAddressDebugContextFacts(input.addressDebug, input.toNonEmptyString);
|
const contextFacts = resolveAddressDebugContextFacts(input.addressDebug, input.toNonEmptyString);
|
||||||
const itemLabel = contextFacts.item ?? "эта позиция";
|
const itemLabel = contextFacts.item ?? "эта позиция";
|
||||||
const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
|
const detectedIntent = String(input.addressDebug?.detected_intent ?? "");
|
||||||
|
|
||||||
if (detectedIntent === "inventory_sale_trace_for_item") {
|
if (detectedIntent === "inventory_sale_trace_for_item") {
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция, по которой мы смотрели продажу.`,
|
||||||
"В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
|
"В предыдущем ответе я показывал документы выбытия по этой позиции. Покупатель в доступных данных отдельно не выделен, поэтому назвать контрагента-покупателя я там не мог.",
|
||||||
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
|
"Если хочешь, следующим шагом могу отдельно проверить, можно ли вытащить покупателя по связанным документам реализации."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -279,14 +279,14 @@ export function buildSelectedObjectAnswerInspectionReply(input: {
|
||||||
detectedIntent === "inventory_purchase_documents_for_item"
|
detectedIntent === "inventory_purchase_documents_for_item"
|
||||||
) {
|
) {
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция / номенклатура.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а сама позиция или номенклатура.`,
|
||||||
"В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
|
"В предыдущем ответе речь шла о закупке этой позиции: я перечислял поставщиков или закупочные документы по ней, а не называл саму позицию контрагентом."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
|
`Да, если так прозвучало, это ошибка чтения ответа. «${itemLabel}» здесь не контрагент, а выбранный объект разбора.`,
|
||||||
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
|
"Я сейчас уточняю именно смысл предыдущего grounded-ответа по этой позиции, а не запускаю новый адресный поиск."
|
||||||
].join(" ");
|
].join(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -274,8 +274,8 @@ describe("assistantMemoryRecapPolicy", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(context.contextualAnswerInspectionFollowup).toBe(true);
|
expect(context.contextualAnswerInspectionFollowup).toBe(true);
|
||||||
expect(reply).toContain("не контрагент");
|
expect(reply).toContain("не контрагент");
|
||||||
expect(reply).toContain("Рабочая станция");
|
expect(reply).toContain("Рабочая станция");
|
||||||
expect(reply).toContain("Покупатель");
|
expect(reply).toContain("Покупатель");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,90 +1,4 @@
|
||||||
[
|
[
|
||||||
{
|
|
||||||
"generation_id": "gen-ag04181425-56e29e",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"mode": "saved_user_sessions",
|
|
||||||
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
|
|
||||||
"count": 20,
|
|
||||||
"domain": "address_phase12_wider_saved_session_pool",
|
|
||||||
"questions": [
|
|
||||||
"приветик - че как там дела",
|
|
||||||
"Альтернатива Плюс",
|
|
||||||
"расскажи что можешь интересного",
|
|
||||||
"кайф - что там на складе по остаткам?",
|
|
||||||
"а исторические остатки на другие даты умеешь?",
|
|
||||||
"март 2016",
|
|
||||||
"По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
|
|
||||||
"а кому продали?",
|
|
||||||
"ндс можешь прикинуть на дату покупки рабочей станции?",
|
|
||||||
"кто у нас самый доходный клиент за все время",
|
|
||||||
"кто нам должен денег на май 2017",
|
|
||||||
"а какой ндс мы должны примерно заплатить за этот период?",
|
|
||||||
"мы должны комуто денег на сегодня?",
|
|
||||||
"а нам?",
|
|
||||||
"ты умеешь считать дельту по договорам?",
|
|
||||||
"по чепурнову покажи все доки",
|
|
||||||
"а по свк",
|
|
||||||
"хвосты покажи по счету 60 на август 2022",
|
|
||||||
"Есть ли остатки товара, которые закупались очень давно",
|
|
||||||
"а по Альтернативе Плюс сколько лет активности в базе 1С?"
|
|
||||||
],
|
|
||||||
"generated_by": "codex_agent",
|
|
||||||
"saved_case_set_file": "assistant_autogen_saved_user_sessions_20260418142537_gen-ag04181425-56e29e.json",
|
|
||||||
"context": {
|
|
||||||
"llm_provider": null,
|
|
||||||
"model": null,
|
|
||||||
"assistant_prompt_version": null,
|
|
||||||
"decomposition_prompt_version": null,
|
|
||||||
"prompt_fingerprint": null,
|
|
||||||
"autogen_personality_id": null,
|
|
||||||
"autogen_personality_prompt": null,
|
|
||||||
"source_session_id": null,
|
|
||||||
"saved_session_file": "assistant_saved_session_20260418142537_gen-ag04181425-56e29e.json",
|
|
||||||
"saved_case_set_kind": "agent_semantic_scenario",
|
|
||||||
"agent_run": true,
|
|
||||||
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
|
|
||||||
"architecture_phase": "turnaround_11",
|
|
||||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
|
|
||||||
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
|
|
||||||
"semantic_tags": [
|
|
||||||
"aggregate_revenue",
|
|
||||||
"bridge_inventory_to_vat",
|
|
||||||
"capability_over_followup",
|
|
||||||
"company_authority",
|
|
||||||
"company_selected",
|
|
||||||
"counterparty_followup",
|
|
||||||
"counterparty_root",
|
|
||||||
"cross_domain_pivot",
|
|
||||||
"date_carryover",
|
|
||||||
"display_label_integrity",
|
|
||||||
"documents",
|
|
||||||
"historical_date_anchor",
|
|
||||||
"human_answer_quality",
|
|
||||||
"inventory_aging",
|
|
||||||
"inventory_provenance",
|
|
||||||
"inventory_root",
|
|
||||||
"inventory_sale_trace",
|
|
||||||
"late_session_stability",
|
|
||||||
"meta_capability",
|
|
||||||
"meta_historical_capability",
|
|
||||||
"meta_smalltalk",
|
|
||||||
"organization_activity_age",
|
|
||||||
"organization_authority",
|
|
||||||
"proactive_scope_offer",
|
|
||||||
"same_date_restore",
|
|
||||||
"same_period_restore",
|
|
||||||
"selected_object",
|
|
||||||
"settlements_account_60",
|
|
||||||
"settlements_mirror_followup",
|
|
||||||
"settlements_payables",
|
|
||||||
"settlements_receivables",
|
|
||||||
"tail_authority_proof",
|
|
||||||
"today_scope",
|
|
||||||
"vat_followup"
|
|
||||||
],
|
|
||||||
"latest_acceptance": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"generation_id": "gen-ag04171508-760111",
|
"generation_id": "gen-ag04171508-760111",
|
||||||
"created_at": "2026-04-17T15:08:06+00:00",
|
"created_at": "2026-04-17T15:08:06+00:00",
|
||||||
|
|
|
||||||
|
|
@ -1,307 +0,0 @@
|
||||||
{
|
|
||||||
"saved_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"generation_id": "gen-ag04181425-56e29e",
|
|
||||||
"mode": "saved_user_sessions",
|
|
||||||
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
|
|
||||||
"agent_run": true,
|
|
||||||
"questions": [
|
|
||||||
"приветик - че как там дела",
|
|
||||||
"Альтернатива Плюс",
|
|
||||||
"расскажи что можешь интересного",
|
|
||||||
"кайф - что там на складе по остаткам?",
|
|
||||||
"а исторические остатки на другие даты умеешь?",
|
|
||||||
"март 2016",
|
|
||||||
"По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
|
|
||||||
"а кому продали?",
|
|
||||||
"ндс можешь прикинуть на дату покупки рабочей станции?",
|
|
||||||
"кто у нас самый доходный клиент за все время",
|
|
||||||
"кто нам должен денег на май 2017",
|
|
||||||
"а какой ндс мы должны примерно заплатить за этот период?",
|
|
||||||
"мы должны комуто денег на сегодня?",
|
|
||||||
"а нам?",
|
|
||||||
"ты умеешь считать дельту по договорам?",
|
|
||||||
"по чепурнову покажи все доки",
|
|
||||||
"а по свк",
|
|
||||||
"хвосты покажи по счету 60 на август 2022",
|
|
||||||
"Есть ли остатки товара, которые закупались очень давно",
|
|
||||||
"а по Альтернативе Плюс сколько лет активности в базе 1С?"
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"assistant_prompt_version": null,
|
|
||||||
"decomposition_prompt_version": null,
|
|
||||||
"prompt_fingerprint": null,
|
|
||||||
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
|
|
||||||
"architecture_phase": "turnaround_11",
|
|
||||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
|
|
||||||
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
|
|
||||||
"semantic_tags": [
|
|
||||||
"aggregate_revenue",
|
|
||||||
"bridge_inventory_to_vat",
|
|
||||||
"capability_over_followup",
|
|
||||||
"company_authority",
|
|
||||||
"company_selected",
|
|
||||||
"counterparty_followup",
|
|
||||||
"counterparty_root",
|
|
||||||
"cross_domain_pivot",
|
|
||||||
"date_carryover",
|
|
||||||
"display_label_integrity",
|
|
||||||
"documents",
|
|
||||||
"historical_date_anchor",
|
|
||||||
"human_answer_quality",
|
|
||||||
"inventory_aging",
|
|
||||||
"inventory_provenance",
|
|
||||||
"inventory_root",
|
|
||||||
"inventory_sale_trace",
|
|
||||||
"late_session_stability",
|
|
||||||
"meta_capability",
|
|
||||||
"meta_historical_capability",
|
|
||||||
"meta_smalltalk",
|
|
||||||
"organization_activity_age",
|
|
||||||
"organization_authority",
|
|
||||||
"proactive_scope_offer",
|
|
||||||
"same_date_restore",
|
|
||||||
"same_period_restore",
|
|
||||||
"selected_object",
|
|
||||||
"settlements_account_60",
|
|
||||||
"settlements_mirror_followup",
|
|
||||||
"settlements_payables",
|
|
||||||
"settlements_receivables",
|
|
||||||
"tail_authority_proof",
|
|
||||||
"today_scope",
|
|
||||||
"vat_followup"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"source_session_id": null,
|
|
||||||
"session": {
|
|
||||||
"session_id": null,
|
|
||||||
"mode": "agent_semantic_run",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-001",
|
|
||||||
"role": "user",
|
|
||||||
"text": "приветик - че как там дела",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-002",
|
|
||||||
"role": "user",
|
|
||||||
"text": "Альтернатива Плюс",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-003",
|
|
||||||
"role": "user",
|
|
||||||
"text": "расскажи что можешь интересного",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-004",
|
|
||||||
"role": "user",
|
|
||||||
"text": "кайф - что там на складе по остаткам?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-005",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а исторические остатки на другие даты умеешь?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-006",
|
|
||||||
"role": "user",
|
|
||||||
"text": "март 2016",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-007",
|
|
||||||
"role": "user",
|
|
||||||
"text": "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-008",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а кому продали?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-009",
|
|
||||||
"role": "user",
|
|
||||||
"text": "ндс можешь прикинуть на дату покупки рабочей станции?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-010",
|
|
||||||
"role": "user",
|
|
||||||
"text": "кто у нас самый доходный клиент за все время",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-011",
|
|
||||||
"role": "user",
|
|
||||||
"text": "кто нам должен денег на май 2017",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-012",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а какой ндс мы должны примерно заплатить за этот период?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-013",
|
|
||||||
"role": "user",
|
|
||||||
"text": "мы должны комуто денег на сегодня?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-014",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а нам?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-015",
|
|
||||||
"role": "user",
|
|
||||||
"text": "ты умеешь считать дельту по договорам?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-016",
|
|
||||||
"role": "user",
|
|
||||||
"text": "по чепурнову покажи все доки",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-017",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а по свк",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-018",
|
|
||||||
"role": "user",
|
|
||||||
"text": "хвосты покажи по счету 60 на август 2022",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-019",
|
|
||||||
"role": "user",
|
|
||||||
"text": "Есть ли остатки товара, которые закупались очень давно",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"message_id": "agent-user-020",
|
|
||||||
"role": "user",
|
|
||||||
"text": "а по Альтернативе Плюс сколько лет активности в базе 1С?",
|
|
||||||
"created_at": "2026-04-18T14:25:37+00:00",
|
|
||||||
"reply_type": null,
|
|
||||||
"trace_id": null,
|
|
||||||
"debug": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"agent_run": true,
|
|
||||||
"metadata": {
|
|
||||||
"assistant_prompt_version": null,
|
|
||||||
"decomposition_prompt_version": null,
|
|
||||||
"prompt_fingerprint": null,
|
|
||||||
"agent_focus": "Broad AGENT replay built from the repaired manual session contour and extended with explicit company selection. The scenario validates proactive multi-company entry, capability meta honesty, inventory roots and history, selected-object carryover, VAT bridges and period carryover, receivables/payables polarity flip, counterparty document follow-ups, account 60 tails, old-purchase inventory aging, and organization activity age in one long live session.",
|
|
||||||
"architecture_phase": "turnaround_11",
|
|
||||||
"source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase12_wider_saved_session_pool.json",
|
|
||||||
"scenario_id": "address_truth_harness_phase12_wider_saved_session_pool",
|
|
||||||
"semantic_tags": [
|
|
||||||
"aggregate_revenue",
|
|
||||||
"bridge_inventory_to_vat",
|
|
||||||
"capability_over_followup",
|
|
||||||
"company_authority",
|
|
||||||
"company_selected",
|
|
||||||
"counterparty_followup",
|
|
||||||
"counterparty_root",
|
|
||||||
"cross_domain_pivot",
|
|
||||||
"date_carryover",
|
|
||||||
"display_label_integrity",
|
|
||||||
"documents",
|
|
||||||
"historical_date_anchor",
|
|
||||||
"human_answer_quality",
|
|
||||||
"inventory_aging",
|
|
||||||
"inventory_provenance",
|
|
||||||
"inventory_root",
|
|
||||||
"inventory_sale_trace",
|
|
||||||
"late_session_stability",
|
|
||||||
"meta_capability",
|
|
||||||
"meta_historical_capability",
|
|
||||||
"meta_smalltalk",
|
|
||||||
"organization_activity_age",
|
|
||||||
"organization_authority",
|
|
||||||
"proactive_scope_offer",
|
|
||||||
"same_date_restore",
|
|
||||||
"same_period_restore",
|
|
||||||
"selected_object",
|
|
||||||
"settlements_account_60",
|
|
||||||
"settlements_mirror_followup",
|
|
||||||
"settlements_payables",
|
|
||||||
"settlements_receivables",
|
|
||||||
"tail_authority_proof",
|
|
||||||
"today_scope",
|
|
||||||
"vat_followup"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +1,8 @@
|
||||||
{
|
{
|
||||||
"suite_id": "assistant_saved_session_gen-ag04181425-56e29e",
|
"suite_id": "assistant_saved_session_runtime_job-MrKjMFH_UA",
|
||||||
"suite_version": "0.1.0",
|
"suite_version": "0.1.0",
|
||||||
"schema_version": "assistant_saved_session_suite_v0_1",
|
"schema_version": "assistant_saved_session_runtime_v0_1",
|
||||||
"generated_at": "2026-04-18T14:25:37+00:00",
|
"title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
|
||||||
"generation_id": "gen-ag04181425-56e29e",
|
|
||||||
"mode": "saved_user_sessions",
|
|
||||||
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
|
|
||||||
"domain": "address_phase12_wider_saved_session_pool",
|
|
||||||
"scenario_count": 1,
|
"scenario_count": 1,
|
||||||
"case_ids": [
|
"case_ids": [
|
||||||
"SAVED-001"
|
"SAVED-001"
|
||||||
|
|
@ -14,26 +10,29 @@
|
||||||
"cases": [
|
"cases": [
|
||||||
{
|
{
|
||||||
"case_id": "SAVED-001",
|
"case_id": "SAVED-001",
|
||||||
"scenario_tag": "agent_saved_user_sessions",
|
"scenario_tag": "saved_user_sessions_runtime",
|
||||||
"title": "AGENT | Phase 12 wider saved-session replay for multi-trajectory organization authority",
|
"title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06",
|
||||||
"question_type": "followup",
|
"question_type": "followup",
|
||||||
"broadness_level": "medium",
|
"broadness_level": "medium",
|
||||||
"turns": [
|
"turns": [
|
||||||
{
|
{
|
||||||
"user_message": "приветик - че как там дела"
|
"user_message": "приветик - че как там дела"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"user_message": "Альтернатива Плюс"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"user_message": "расскажи что можешь интересного"
|
"user_message": "расскажи что можешь интересного"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"user_message": "кайф - что там на складе по остаткам?"
|
"user_message": "кайф - что там на складе по остаткам?"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "АЛЬТЕРНАТИВА"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "а исторические остатки на другие даты умеешь?"
|
"user_message": "а исторические остатки на другие даты умеешь?"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "давай на июль 2017"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "март 2016"
|
"user_message": "март 2016"
|
||||||
},
|
},
|
||||||
|
|
@ -43,9 +42,18 @@
|
||||||
{
|
{
|
||||||
"user_message": "а кому продали?"
|
"user_message": "а кому продали?"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "у тебя написано кто контрагент: рабочая станция - это ошибка?"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "ндс можешь прикинуть на дату покупки рабочей станции?"
|
"user_message": "ндс можешь прикинуть на дату покупки рабочей станции?"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "а какой ндс мы должны сгрузить на март 2020?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "прикинь какой ндс нам надо заплатить на февраль 2017"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "кто у нас самый доходный клиент за все время"
|
"user_message": "кто у нас самый доходный клиент за все время"
|
||||||
},
|
},
|
||||||
|
|
@ -61,6 +69,15 @@
|
||||||
{
|
{
|
||||||
"user_message": "а нам?"
|
"user_message": "а нам?"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "какой у нас самый доходный год"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "а за 2017 мы скок заработали?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "сколько вообще денег мы заработали за все время?"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "ты умеешь считать дельту по договорам?"
|
"user_message": "ты умеешь считать дельту по договорам?"
|
||||||
},
|
},
|
||||||
|
|
@ -70,14 +87,32 @@
|
||||||
{
|
{
|
||||||
"user_message": "а по свк"
|
"user_message": "а по свк"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "а сейчас у нас есть что на складе?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "что нам отгружал чепурнов? какой товар или услугу?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "какие остатки на складе на сегодня"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "остатки на март 2016"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "хвосты покажи по счету 60 на август 2022"
|
"user_message": "хвосты покажи по счету 60 на август 2022"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"user_message": "Есть ли остатки товара, которые закупались очень давно"
|
"user_message": "Есть ли остатки товара, которые закупались очень давно"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user_message": "Какие конкретно номенклатуры формируют остаток по складу на май 2020"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?"
|
"user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user_message": "Как ты оценишь деятельность компании?"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,8 +4,8 @@
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>NDC AI Normalizer Playground</title>
|
<title>NDC AI Normalizer Playground</title>
|
||||||
<script type="module" crossorigin src="/assets/index-DWgwfAPc.js"></script>
|
<script type="module" crossorigin src="/assets/index-6meEannb.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-sbJz56_k.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-BURU4_Sm.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|
|
||||||
|
|
@ -3076,7 +3076,6 @@ export function AutoRunsHistoryPanel({
|
||||||
<header>
|
<header>
|
||||||
<strong>{formatAutoGenGenerationTitle(item)}</strong>
|
<strong>{formatAutoGenGenerationTitle(item)}</strong>
|
||||||
<div className="autoruns-autogen-card-actions">
|
<div className="autoruns-autogen-card-actions">
|
||||||
<span>{formatDateTime(item.created_at)}</span>
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="autoruns-autogen-delete-btn"
|
className="autoruns-autogen-delete-btn"
|
||||||
|
|
@ -3092,8 +3091,15 @@ export function AutoRunsHistoryPanel({
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div className="autoruns-run-meta autoruns-run-id-row">
|
<div className="autoruns-saved-session-meta">
|
||||||
<span>{item.generation_id}</span>
|
<strong className="autoruns-saved-session-meta-label">Дата и время</strong>
|
||||||
|
<span className="autoruns-saved-session-meta-value">| {formatDateTime(item.created_at)}</span>
|
||||||
|
</div>
|
||||||
|
<div className="autoruns-saved-session-meta autoruns-saved-session-meta-id">
|
||||||
|
<div className="autoruns-saved-session-meta-id-main">
|
||||||
|
<strong className="autoruns-saved-session-meta-label">ID</strong>
|
||||||
|
<span className="autoruns-saved-session-meta-value">| {item.generation_id}</span>
|
||||||
|
</div>
|
||||||
<span
|
<span
|
||||||
role="button"
|
role="button"
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
|
|
@ -3111,14 +3117,22 @@ export function AutoRunsHistoryPanel({
|
||||||
<CopyOutlineIcon />
|
<CopyOutlineIcon />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="autoruns-run-meta">
|
<div className="autoruns-saved-session-meta">
|
||||||
режим={formatAutoGenModeLabel(item.mode)}
|
<strong className="autoruns-saved-session-meta-label">Режим</strong>
|
||||||
|
<span className="autoruns-saved-session-meta-value">| {formatAutoGenModeLabel(item.mode)}</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="autoruns-run-meta">
|
<div className="autoruns-saved-session-meta">
|
||||||
тип={isAgentSemanticGeneration(item) ? "АГЕНТНЫЙ ПРОГОН" : "АВТОПРОГОН"}
|
<strong className="autoruns-saved-session-meta-label">Тип</strong>
|
||||||
|
<span className="autoruns-saved-session-meta-value">
|
||||||
|
| {isAgentSemanticGeneration(item) ? "АГЕНТНЫЙ ПРОГОН" : "АВТОПРОГОН"}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{isSavedUserSessionsMode ? (
|
{isSavedUserSessionsMode ? (
|
||||||
<>
|
<>
|
||||||
|
<div className="autoruns-saved-session-meta">
|
||||||
|
<strong className="autoruns-saved-session-meta-label">Количество вопросов</strong>
|
||||||
|
<span className="autoruns-saved-session-meta-value">| {item.questions.length}</span>
|
||||||
|
</div>
|
||||||
<div className="autoruns-saved-session-footer">
|
<div className="autoruns-saved-session-footer">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|
|
||||||
|
|
@ -1558,6 +1558,57 @@ button:disabled {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
font-size: 0.74rem;
|
||||||
|
line-height: 1.35;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-label {
|
||||||
|
font-size: inherit;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-value {
|
||||||
|
color: rgba(255, 255, 255, 0.82);
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-id {
|
||||||
|
width: 100%;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-id-main {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
min-width: 0;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-id-main .autoruns-saved-session-meta-value {
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-id .autoruns-copy-run-id-btn {
|
||||||
|
color: rgba(255, 255, 255, 0.82);
|
||||||
|
margin-left: auto;
|
||||||
|
align-self: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autoruns-saved-session-meta-id .autoruns-copy-run-id-btn:hover {
|
||||||
|
color: rgb(var(--rgb-active));
|
||||||
|
}
|
||||||
|
|
||||||
.autoruns-saved-session-topbar {
|
.autoruns-saved-session-topbar {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -1570,6 +1621,7 @@ button:disabled {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
|
gap: 10px;
|
||||||
min-height: 20px;
|
min-height: 20px;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue