평가 및 화면 구조 정리
This commit is contained in:
parent
1248ae8ca4
commit
391639c1de
44 changed files with 5816 additions and 4501 deletions
74
data/privacy/pii-masking-eval-input.schema.json
Normal file
74
data/privacy/pii-masking-eval-input.schema.json
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "vignette.pii_masking_eval_input.v1",
|
||||
"title": "Vignette PII masking evaluation input",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"locale",
|
||||
"source",
|
||||
"category",
|
||||
"severity",
|
||||
"text",
|
||||
"expected_entities",
|
||||
"forbidden_substrings"
|
||||
],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"locale": { "type": "string", "default": "ko-KR" },
|
||||
"source": {
|
||||
"type": "string",
|
||||
"enum": ["synthetic", "operator_supplied_redacted", "operational_gold"],
|
||||
"default": "synthetic"
|
||||
},
|
||||
"category": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"name",
|
||||
"organization",
|
||||
"contact",
|
||||
"national_id",
|
||||
"quasi_identifier",
|
||||
"negative_control",
|
||||
"unspecified"
|
||||
],
|
||||
"default": "unspecified"
|
||||
},
|
||||
"severity": {
|
||||
"type": "string",
|
||||
"enum": ["low", "medium", "high", "critical"],
|
||||
"default": "medium"
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Evaluation input text. Use only local synthetic or approved redacted/gold text according to data governance gates."
|
||||
},
|
||||
"expected_entities": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"uniqueItems": true,
|
||||
"default": []
|
||||
},
|
||||
"unexpected_entities": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"uniqueItems": true,
|
||||
"default": []
|
||||
},
|
||||
"forbidden_substrings": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"default": []
|
||||
},
|
||||
"required_substrings": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"default": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
99
data/privacy/pii-masking-eval-report.schema.json
Normal file
99
data/privacy/pii-masking-eval-report.schema.json
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "vignette.pii_masking_eval_report.v1",
|
||||
"title": "Vignette PII masking evaluation report",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schema_version",
|
||||
"input_schema_version",
|
||||
"run_mode",
|
||||
"data_source",
|
||||
"evidence_text_included",
|
||||
"passed",
|
||||
"cases_total",
|
||||
"cases_passed",
|
||||
"cases_failed",
|
||||
"expected_entity_recall",
|
||||
"forbidden_substring_removal",
|
||||
"unexpected_entity_violations",
|
||||
"by_source",
|
||||
"by_category",
|
||||
"by_severity",
|
||||
"results"
|
||||
],
|
||||
"properties": {
|
||||
"schema_version": { "const": "vignette.pii_masking_eval_report.v1" },
|
||||
"input_schema_version": { "const": "vignette.pii_masking_eval_input.v1" },
|
||||
"run_mode": { "const": "technical_dry_run" },
|
||||
"data_source": { "type": "string" },
|
||||
"evidence_text_included": { "type": "boolean" },
|
||||
"passed": { "type": "boolean" },
|
||||
"cases_total": { "type": "integer", "minimum": 0 },
|
||||
"cases_passed": { "type": "integer", "minimum": 0 },
|
||||
"cases_failed": { "type": "integer", "minimum": 0 },
|
||||
"expected_entity_recall": { "type": "number", "minimum": 0, "maximum": 1 },
|
||||
"forbidden_substring_removal": { "type": "number", "minimum": 0, "maximum": 1 },
|
||||
"unexpected_entity_violations": { "type": "integer", "minimum": 0 },
|
||||
"by_source": { "$ref": "#/$defs/breakdown" },
|
||||
"by_category": { "$ref": "#/$defs/breakdown" },
|
||||
"by_severity": { "$ref": "#/$defs/breakdown" },
|
||||
"results": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"locale",
|
||||
"source",
|
||||
"category",
|
||||
"severity",
|
||||
"passed",
|
||||
"entities",
|
||||
"missing_entities",
|
||||
"unexpected_entities",
|
||||
"forbidden_remaining_count",
|
||||
"required_missing"
|
||||
],
|
||||
"properties": {
|
||||
"id": { "type": "string" },
|
||||
"locale": { "type": "string" },
|
||||
"source": { "type": "string" },
|
||||
"category": { "type": "string" },
|
||||
"severity": { "type": "string" },
|
||||
"passed": { "type": "boolean" },
|
||||
"entities": { "type": "array", "items": { "type": "string" } },
|
||||
"masked_text": {
|
||||
"type": "string",
|
||||
"description": "Optional local synthetic debugging evidence. Do not include this field in operational reports."
|
||||
},
|
||||
"forbidden_remaining_count": { "type": "integer", "minimum": 0 },
|
||||
"missing_entities": { "type": "array", "items": { "type": "string" } },
|
||||
"unexpected_entities": { "type": "array", "items": { "type": "string" } },
|
||||
"forbidden_remaining": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"description": "Optional local synthetic debugging evidence. Do not include this field in operational reports."
|
||||
},
|
||||
"required_missing": { "type": "array", "items": { "type": "string" } }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"breakdown": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["cases_total", "cases_passed", "cases_failed"],
|
||||
"properties": {
|
||||
"cases_total": { "type": "integer", "minimum": 0 },
|
||||
"cases_passed": { "type": "integer", "minimum": 0 },
|
||||
"cases_failed": { "type": "integer", "minimum": 0 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
[
|
||||
{
|
||||
"id": "ko_name_label",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "이름: 김서연, 연락은 하지 말아 주세요.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["김서연"],
|
||||
|
|
@ -8,13 +12,65 @@
|
|||
},
|
||||
{
|
||||
"id": "ko_name_relationship_context",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "친구 박민수에게 오늘 상담 내용을 말하지 않았어요.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["박민수"],
|
||||
"required_substrings": ["친구 [NAME]에게"]
|
||||
},
|
||||
{
|
||||
"id": "ko_name_role_particle",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "상담자 최하늘은 이전 상담 기록을 보지 않았습니다.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["최하늘"],
|
||||
"required_substrings": ["상담자 [NAME]은"]
|
||||
},
|
||||
{
|
||||
"id": "ko_name_natural_label_self",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "제 이름은 김서연입니다.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["김서연"],
|
||||
"required_substrings": ["제 이름은 [NAME]입니다"]
|
||||
},
|
||||
{
|
||||
"id": "ko_name_natural_label_guardian",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "보호자 이름은 박민수입니다.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["박민수"],
|
||||
"required_substrings": ["보호자 이름은 [NAME]입니다"]
|
||||
},
|
||||
{
|
||||
"id": "ko_name_self_intro_copula",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "name",
|
||||
"severity": "high",
|
||||
"text": "저는 최하늘입니다.",
|
||||
"expected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["최하늘"],
|
||||
"required_substrings": ["저는 [NAME]입니다"]
|
||||
},
|
||||
{
|
||||
"id": "ko_org_school_department",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "organization",
|
||||
"severity": "high",
|
||||
"text": "소속은 한신대학교 상담심리학과입니다.",
|
||||
"expected_entities": ["ORG"],
|
||||
"unexpected_entities": ["NAME"],
|
||||
|
|
@ -23,16 +79,94 @@
|
|||
},
|
||||
{
|
||||
"id": "ko_org_health_center",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "organization",
|
||||
"severity": "high",
|
||||
"text": "지난주 마음봄상담센터에서 안내를 받았습니다.",
|
||||
"expected_entities": ["ORG"],
|
||||
"unexpected_entities": ["NAME"],
|
||||
"forbidden_substrings": ["마음봄상담센터"],
|
||||
"required_substrings": ["[ORG]"]
|
||||
},
|
||||
{
|
||||
"id": "ko_org_hospital",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "organization",
|
||||
"severity": "high",
|
||||
"text": "새봄병원에서 진료를 받았다고 말했어요.",
|
||||
"expected_entities": ["ORG"],
|
||||
"forbidden_substrings": ["새봄병원"],
|
||||
"required_substrings": ["[ORG]"]
|
||||
},
|
||||
{
|
||||
"id": "ko_contact_phone_email",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "contact",
|
||||
"severity": "critical",
|
||||
"text": "연락처는 010-1234-5678이고 이메일은 seoyeon@example.com입니다.",
|
||||
"expected_entities": ["PHONE", "EMAIL"],
|
||||
"forbidden_substrings": ["010-1234-5678", "seoyeon@example.com"],
|
||||
"required_substrings": ["[PHONE]", "[EMAIL]"]
|
||||
},
|
||||
{
|
||||
"id": "ko_rrn_numid",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "national_id",
|
||||
"severity": "critical",
|
||||
"text": "주민번호는 990101-1234567이고 보호자 번호는 123456789012입니다.",
|
||||
"expected_entities": ["RRN", "NUMID"],
|
||||
"forbidden_substrings": ["990101-1234567", "123456789012"],
|
||||
"required_substrings": ["[RRN]", "[NUMID]"]
|
||||
},
|
||||
{
|
||||
"id": "ko_date_money_address",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "quasi_identifier",
|
||||
"severity": "medium",
|
||||
"text": "2001년 4월 18일 서울시 강남구 역삼동에서 1200원을 냈어요.",
|
||||
"expected_entities": ["DATE", "ADDR", "MONEY"],
|
||||
"forbidden_substrings": ["2001년 4월 18일", "서울시 강남구 역삼동", "1200원"],
|
||||
"required_substrings": ["[DATE]", "[ADDR]", "[MONEY]"]
|
||||
},
|
||||
{
|
||||
"id": "ko_common_words_false_positive",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "negative_control",
|
||||
"severity": "medium",
|
||||
"text": "학교 가는 게 힘들고 엄마랑 친구 이야기를 하면 불안해요.",
|
||||
"expected_entities": [],
|
||||
"unexpected_entities": ["NAME", "ORG"],
|
||||
"forbidden_substrings": [],
|
||||
"required_substrings": ["학교", "엄마", "친구"]
|
||||
},
|
||||
{
|
||||
"id": "ko_address_negative_control",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "negative_control",
|
||||
"severity": "medium",
|
||||
"text": "서울 가는 길 이야기를 하면 그냥 마음이 답답해요.",
|
||||
"expected_entities": [],
|
||||
"unexpected_entities": ["ADDR"],
|
||||
"forbidden_substrings": [],
|
||||
"required_substrings": ["서울 가는 길"]
|
||||
},
|
||||
{
|
||||
"id": "ko_name_label_negative_control",
|
||||
"locale": "ko-KR",
|
||||
"source": "synthetic",
|
||||
"category": "negative_control",
|
||||
"severity": "medium",
|
||||
"text": "이름은 중요하지 않고 상담 내용만 이야기하고 싶어요.",
|
||||
"expected_entities": [],
|
||||
"unexpected_entities": ["NAME"],
|
||||
"forbidden_substrings": [],
|
||||
"required_substrings": ["이름은 중요하지"]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue