feat(regulatory): 增加法规核查基础服务

This commit is contained in:
2026-06-07 00:36:18 +08:00
parent 44d31d2a14
commit ec89e62661
11 changed files with 327 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
from __future__ import annotations
import re
from collections import defaultdict
from review_agent.regulatory_review.schemas import Finding
FIELDS = {
"产品名称": r"产品名称[:]\s*([^\n\r]+)",
"型号规格": r"型号规格[:]\s*([^\n\r]+)",
"预期用途": r"预期用途[:]\s*([^\n\r]+)",
}
def run_consistency_check(document_texts: dict[str, str]) -> list[Finding]:
findings: list[Finding] = []
for label, pattern in FIELDS.items():
values: dict[str, list[str]] = defaultdict(list)
for file_name, text in document_texts.items():
match = re.search(pattern, text)
if match:
values[_normalize(match.group(1))].append(file_name)
if len(values) <= 1:
continue
findings.append(
Finding(
rule_code=f"consistency:{label}",
category="consistency",
severity="high",
title=f"{label}在不同文件中不一致",
detail=f"发现 {len(values)} 个不同的{label}取值。",
suggestion=f"请统一各注册资料中的{label}",
evidence={"field": label, "values": dict(values)},
)
)
return findings
def _normalize(value: str) -> str:
return " ".join(value.strip().split())