Add production prompt version and audit result examples
This commit is contained in:
parent
9a75ff43eb
commit
714112fa4b
25
CHANGELOG.md
Normal file
25
CHANGELOG.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Prompt Registry Demo Changelog
|
||||
|
||||
## v5_production_balanced
|
||||
|
||||
- Added production-style JSON schema.
|
||||
- Added `risk_flags`, `evidence`, `audit_notes`, and human-review hints.
|
||||
- Marked as the recommended demo production candidate.
|
||||
|
||||
## v4_accounting_safety
|
||||
|
||||
- Added explicit accounting and tax safety checks.
|
||||
- Added high-risk guidance for VAT, reconciliation acts, month close, and primary document dates.
|
||||
|
||||
## v3_empathy_escalation
|
||||
|
||||
- Added customer sentiment and escalation logic.
|
||||
- Improved evaluation of tense calls and follow-up quality.
|
||||
|
||||
## v2_structured_rubric
|
||||
|
||||
- Split one overall score into empathy, diagnostics, accounting accuracy, and resolution status.
|
||||
|
||||
## v1_basic
|
||||
|
||||
- Initial basic score, issue type, summary, and risks.
|
||||
40
prompts/call_quality_score/v5.md
Normal file
40
prompts/call_quality_score/v5.md
Normal file
@ -0,0 +1,40 @@
|
||||
Ты production-контролер качества звонков поддержки 1С Бухгалтерии и сопровождения клиентов.
|
||||
|
||||
Версия: v5_production_balanced.
|
||||
Цель: дать воспроизводимую оценку, которую можно связать с конкретной версией промпта и результатом проверки.
|
||||
|
||||
Верни строго валидный JSON без Markdown:
|
||||
{
|
||||
"schema_version": "call_quality_score.v5",
|
||||
"prompt_version": "v5_production_balanced",
|
||||
"quality_score": 1,
|
||||
"scores": {
|
||||
"empathy": 1,
|
||||
"diagnostics": 1,
|
||||
"accounting_safety": 1,
|
||||
"resolution_clarity": 1,
|
||||
"process_followup": 1
|
||||
},
|
||||
"classification": {
|
||||
"issue_type": "vat",
|
||||
"customer_sentiment": "concerned",
|
||||
"resolution_status": "partially_resolved"
|
||||
},
|
||||
"risk_flags": [],
|
||||
"evidence": [],
|
||||
"recommended_follow_up": "",
|
||||
"audit_notes": {
|
||||
"do_not_use_for_tax_advice": true,
|
||||
"requires_human_review_if_risk_high": true
|
||||
}
|
||||
}
|
||||
|
||||
Оценивание:
|
||||
- quality_score от 1 до 5, с учетом всех scores.
|
||||
- Не ставь 5, если нет ясного следующего шага или есть учетный риск.
|
||||
- При high-risk ситуациях перечисли risk_flags и предложи human review.
|
||||
- evidence заполняй короткими фактами из транскрипта, не цитируй длинно.
|
||||
- Не добавляй реальные персональные данные и не выдумывай отсутствующие факты.
|
||||
|
||||
Транскрипт:
|
||||
{{transcript}}
|
||||
@ -0,0 +1,28 @@
|
||||
{
|
||||
"call_id": "sample_002_1c_reconciliation_act",
|
||||
"transcript_hash": "44d2f05f3707ea9e81643be04dd2dbd067e041c9e36fc3bdc9fb95ce1085a677",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v1_v1_basic",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "40ae1850040f4bc0b87fa15c6e69fa75b1505e97fe0571af7a7006e91464c1b1",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v1",
|
||||
"quality_score": 4,
|
||||
"resolution_status": "partially_resolved",
|
||||
"risk_flags": [
|
||||
"contract_filter_mismatch",
|
||||
"payment_date_boundary"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "eef6278afa64175f042746edab0635d74943d5061211511936f161ff00946219",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_003_vat_invoice_register",
|
||||
"transcript_hash": "df2ba4dbc524f31f80105e514b156bf94d6dc2f2dc078b11c70a06f889104e0f",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v2_v2_structured_rubric",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "4b80048d2ab7d09536fe2becad3406ea8aa026de5c22cdbc8cbd81cfc7343e8c",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v2",
|
||||
"quality_score": 5,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"vat_period_boundary"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "247d4d42fa3080719861606d7be54c12cf69ff2e866c60ca457fd14136daf3d6",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
{
|
||||
"call_id": "sample_005_reconciliation_tense_customer",
|
||||
"transcript_hash": "c6480ef04104098a5d0e985445e467cbe8589d0bf877096bdc83789daa53b6a6",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v3_v3_empathy_escalation",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "becd13bca2fd52c77a84f31b47193bcf0cc7c9ab9af601a70fb68b06690cfe8f",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v3",
|
||||
"quality_score": 5,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"customer_frustrated",
|
||||
"corrective_document_deleted"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "fd5752cb5dfb429661c58ecc02ac60f48c0932949d9747260c9460408c7b1c4d",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_006_month_close_vat_advance",
|
||||
"transcript_hash": "763e785759800516c143d6e352b528511aca829250ba61446f38769d8c86ae08",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v4_v4_accounting_safety",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "0c319ff0a12e0cbc3256109e1d9044132f849e34d96917e1a4e3fbb686f32db6",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v4",
|
||||
"quality_score": 4,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"advance_vat_timing"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "551e93d8de7dba8c5d47b53742b00815a8ce61069ca25c6941589e8c3e39b456",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_007_payroll_report",
|
||||
"transcript_hash": "1f61f8b91517e685e129e2d5d1e9104558da2e834219e617d0d373a344846ecb",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v5_v5_production_balanced",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "fcd2279d4d9416e5e9f44123494a4373dd4a9741360c698e471dd20408ded806",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v5",
|
||||
"quality_score": 5,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"submitted_report_may_need_review"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "9d6a631a94a6353bd2c1945c05c282445deaeaa811e7337950ff167d9a223984",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_008_edo_primary_docs",
|
||||
"transcript_hash": "01b3c79344fd12f3b06a5cbaed2c5b5f798c8cf855413ef630342182a3d4aa00",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v5_v5_production_balanced",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "49b9673f3d9785d3a0fd6a1ef4747049ad3bc515583329483ea5e85f2f997acc",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v5",
|
||||
"quality_score": 4,
|
||||
"resolution_status": "partially_resolved",
|
||||
"risk_flags": [
|
||||
"primary_doc_period_question"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "888e22f02e1fcb1dc6a240e1cf45739b88dbdf7d935af8e916ae528340585078",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_009_bank_client_import",
|
||||
"transcript_hash": "59f60dbe50a3770924ebed549c7cb36aa4eeeca9ab534e0cb5f8736381328eb9",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v4_v4_accounting_safety",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "c34cf9f6b38b1d7035702c0797c0ca801a336f920bab15ad6b61b59ca09ac07c",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v4",
|
||||
"quality_score": 5,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"wrong_contract_mapping"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "0d086fff9ff7d1ca21428fe2e33c8c6f6ab504fe399c843e5a05e39efb747a2e",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
{
|
||||
"call_id": "sample_010_inventory_writeoff",
|
||||
"transcript_hash": "a2ed1fdff9eca83df4ce1364c712842f3b67b189c9d518f5e97fda20da537ec0",
|
||||
"prompt_key": "call_quality_score",
|
||||
"prompt_version": "v5_v5_production_balanced",
|
||||
"prompt_environment": "mock-demo",
|
||||
"model_provider": "mock",
|
||||
"model_name": "mock-call-qa-evaluator",
|
||||
"model_params": {
|
||||
"temperature": 0,
|
||||
"max_tokens": 800
|
||||
},
|
||||
"rendered_prompt_hash": "228b653d23af149ff1d7b5ad1176f316c4c5bf7da4760bad70c5df9608dd0f8b",
|
||||
"output": {
|
||||
"schema_version": "call_quality_score.v5",
|
||||
"quality_score": 5,
|
||||
"resolution_status": "resolved",
|
||||
"risk_flags": [
|
||||
"cost_allocation_analytics"
|
||||
],
|
||||
"summary": "Synthetic mock result for Prompt Lab demo package.",
|
||||
"mock": true
|
||||
},
|
||||
"output_hash": "789a45815caa64ba05851ee56851f6828b2682bb4740bd7d64fae74f6428aa75",
|
||||
"timestamp": "2026-05-15T09:00:00+04:00",
|
||||
"tool_source": "demos/call_qa/mock_dataset_v2"
|
||||
}
|
||||
15
tests/transcripts/sample_008_edo_primary_docs.txt
Normal file
15
tests/transcripts/sample_008_edo_primary_docs.txt
Normal file
@ -0,0 +1,15 @@
|
||||
Call ID: demo-edo-primary-docs-008
|
||||
Scenario: Customer sees EDI primary documents in 1C but they are not reflected in accounting.
|
||||
Synthetic data notice: All names, companies, amounts, and document references are fictional.
|
||||
|
||||
Specialist: Здравствуйте, линия сопровождения 1С, Наталья.
|
||||
Customer: Добрый день. Документы из ЭДО от поставщика "Орион-Плюс" пришли, но в учете поступления нет. Менеджер говорит, что все подписано.
|
||||
Specialist: Давайте проверим статус электронного документа и связанный документ учета. В списке ЭДО какой статус стоит?
|
||||
Customer: "Подписан обеими сторонами".
|
||||
Specialist: Хорошо. Откройте документ ЭДО и посмотрите, создан ли на основании документ "Поступление товаров и услуг".
|
||||
Customer: Нет, вижу только входящий УПД.
|
||||
Specialist: Тогда сам факт подписания еще не создал хозяйственную операцию. Создайте поступление на основании УПД, проверьте договор, склад, ставку НДС и счет учета, затем проведите.
|
||||
Customer: А дата поступления должна быть датой подписи?
|
||||
Specialist: Дату нужно ставить по фактическому первичному документу и учетной политике, не просто ради попадания в период. Если есть сомнение по периоду, лучше согласовать с бухгалтером.
|
||||
Customer: Создала поступление, НДС появился на 19 счете.
|
||||
Specialist: После этого проверьте книгу покупок и связь с исходным электронным документом, чтобы потом быстро подтвердить основание.
|
||||
13
tests/transcripts/sample_009_bank_client_import.txt
Normal file
13
tests/transcripts/sample_009_bank_client_import.txt
Normal file
@ -0,0 +1,13 @@
|
||||
Call ID: demo-bank-client-import-009
|
||||
Scenario: Customer imported a bank statement and payments were matched to the wrong counterparty contract.
|
||||
Synthetic data notice: All names, companies, amounts, and document references are fictional.
|
||||
|
||||
Specialist: Добрый день, поддержка 1С, Виктор.
|
||||
Customer: После загрузки банка платежи сели на неправильный договор. Теперь акт сверки с покупателем показывает странный аванс.
|
||||
Specialist: Понял. Сначала не будем перепроводить весь квартал. Откройте банковскую выписку и платеж на сумму, которая попала в аванс. Какой договор указан в расшифровке платежа?
|
||||
Customer: Договор "Разовый", а должен быть "Сопровождение 2026".
|
||||
Specialist: Тогда исправьте договор в документе списания или поступления на расчетный счет и перепроведите этот документ. После этого сформируйте карточку счета 62 по контрагенту.
|
||||
Customer: А можно просто поправить акт сверки вручную?
|
||||
Specialist: Лучше не править акт вручную, иначе причина останется в учете. Исправляем первичный документ, потом проверяем акт и обороты.
|
||||
Customer: Исправила договор, аванс ушел, акт стал правильным.
|
||||
Specialist: Хорошо. Чтобы не повторялось, проверьте правила подстановки договора при загрузке банка и карточку контрагента.
|
||||
15
tests/transcripts/sample_010_inventory_writeoff.txt
Normal file
15
tests/transcripts/sample_010_inventory_writeoff.txt
Normal file
@ -0,0 +1,15 @@
|
||||
Call ID: demo-inventory-writeoff-010
|
||||
Scenario: Customer asks why inventory write-off changed cost of goods and gross margin.
|
||||
Synthetic data notice: All names, companies, amounts, and document references are fictional.
|
||||
|
||||
Specialist: Добрый день, поддержка 1С Бухгалтерии, Елена.
|
||||
Customer: Здравствуйте. После списания материалов у нас резко изменилась себестоимость и валовая прибыль в управленческом отчете. Руководитель считает, что программа ошиблась.
|
||||
Specialist: Давайте проверим, каким документом списывали материалы и на какой счет затрат они ушли.
|
||||
Customer: Документ "Требование-накладная" от 31 марта, счет 20, статья "Материалы".
|
||||
Specialist: Проверьте, к какой номенклатурной группе и подразделению привязан документ. Если аналитика не совпадает с выпуском, себестоимость может распределиться не туда.
|
||||
Customer: Подразделение стоит "Склад", а должно быть "Производство".
|
||||
Specialist: Это вероятная причина. Исправьте подразделение, перепроведите требование-накладную и повторите закрытие месяца, потому что себестоимость рассчитывается регламентной операцией.
|
||||
Customer: А можно только отчет обновить?
|
||||
Specialist: Нет, отчет отражает данные учета. Нужно исправить документ и закрытие месяца, иначе отчет снова покажет старую картину.
|
||||
Customer: Поменяла подразделение и перезакрыла март, валовая прибыль стала ожидаемой.
|
||||
Specialist: Отлично. Сохраните справку-расчет себестоимости, чтобы показать руководителю причину изменения.
|
||||
Loading…
x
Reference in New Issue
Block a user