feat(check): 偏离栏直读、响应错位判断;复查复用和硬预算(C2)
- deviation.py:模型判已响应的条目,证据所在表格行的偏离格写着「偏离 / 部分满足」等 就改判负偏离;照抄要求格、响应格写的是别的内容的改判「响应可能对不上」 - reuse.py:按「提示词 + 要求 + 候选句原文」算缓存键,存模型原始结论;复查时内容没变、 证据找得回的条目直接沿用,不调模型 - 每次检查送给模型的字数有上限,超出的条目列为请人工核对,写进覆盖范围 - 开发集 17 份:召回 61% → 73%,负偏离未说明 64% → 90%,规矩投标文件问题数不变 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ from decimal import Decimal, InvalidOperation
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from bid_doctor.check import deviation
|
||||
from bid_doctor.check.match import BidDoc
|
||||
from bid_doctor.document.pipeline import layout
|
||||
from bid_doctor.document.pipeline.layout import column as _col
|
||||
@@ -996,7 +997,7 @@ SERIAL = re.compile(r"\d{1,3}")
|
||||
|
||||
def _negative(cell: str, head: str) -> bool:
|
||||
t = norm(cell)
|
||||
if NEG_RESP.match(t):
|
||||
if NEG_RESP.match(t) or deviation.negative(t):
|
||||
return True
|
||||
if YES_NO_HEAD.search(head) and t in ("否", "×"):
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user