|
|
@@ -649,6 +649,12 @@ class StreamlitOCRValidator:
|
|
|
|
|
|
def _get_severity_level(self, diff: dict) -> str:
|
|
|
"""根据差异类型和内容判断严重程度"""
|
|
|
+ # 如果差异中已经包含严重程度,直接使用
|
|
|
+ if 'severity' in diff:
|
|
|
+ severity_map = {'high': '高', 'medium': '中', 'low': '低'}
|
|
|
+ return severity_map.get(diff['severity'], '中')
|
|
|
+
|
|
|
+ # 原有的逻辑作为后备
|
|
|
diff_type = diff['type'].lower()
|
|
|
|
|
|
# 金额相关差异为高严重程度
|
|
|
@@ -659,6 +665,16 @@ class StreamlitOCRValidator:
|
|
|
if 'table' in diff_type or 'structure' in diff_type:
|
|
|
return '中'
|
|
|
|
|
|
+ # 检查相似度
|
|
|
+ if 'similarity' in diff:
|
|
|
+ similarity = diff['similarity']
|
|
|
+ if similarity < 50:
|
|
|
+ return '高'
|
|
|
+ elif similarity < 85:
|
|
|
+ return '中'
|
|
|
+ else:
|
|
|
+ return '低'
|
|
|
+
|
|
|
# 检查内容长度差异
|
|
|
len_diff = abs(len(diff['file1_value']) - len(diff['file2_value']))
|
|
|
if len_diff > 50:
|