Skip to content

넓힌 인용에 표식이 안 남는다 — EVIDENCE_WIDENED 는 로그까지만 가고 고쳐 쓴 인용만 저장된다 (#613 후속) #631

Description

@hd0rable

#613 리뷰에서 찾았습니다. 넓힌 사실은 휘발하고 넓힌 결과는 남습니다.

무엇인가

#613 이 _widen_to_cover 를 넣으면서 인용을 우리가 고쳐 쓰게 됐습니다. 모델이 조건절만 인용해도 루브릭 필수요소를 덮도록 결정론으로 넓히고, 그 사실을 EVIDENCE_WIDENED 경고로 남깁니다 — 그쪽 독스트링이 이유를 이렇게 적었습니다.

조용히 넓히면 «모델이 전문을 인용했다»로 읽히므로 경고로 남긴다.

그 경고가 서버에서 로그까지만 갑니다.

// ProductRiskItems:157
for (AiServiceClient.Warning warning : result.warnings()) {
    log.warn("추출 경고 [{}] product={} item={} — {}", …);   ← 여기서 끝난다
}
// 응답    RiskItemsResponse 는 경고를 안 싣는다 (그 자리 주석이 그렇게 정해 뒀다)
// 스냅샷  ExtractedRiskItem 에 경고 칸이 없다 — conditionValueText 만 저장된다

그래서 나중에 스냅샷·화면·교부 문서로 그 항목을 여는 사람은 긴 축자 인용 하나를 봅니다. 그게 «모델이 이만큼 인용했다» 로 읽히는데, 정확히 그 경고가 막으려던 오독입니다.

왜 지금 걸리나

모든 추출 경고가 같은 처지라 #613 이 만든 결함은 아닙니다. 다만 그 PR 이 지속되는 산출물을 처음 만듭니다.

ITEM_NOT_FOUND · SPAN_UNRESOLVED …   실패를 말한다 → status=extraction_failed 로 응답에 이미 실린다
LOOSE_MATCH · PAGE_CORRECTED         찾은 방법을 말한다 → 결과는 모델이 낸 그대로다
EVIDENCE_WIDENED                     ❗**결과 자체가 우리가 고쳐 쓴 것**이다

앞의 것들은 결과를 보면 사실이 드러나거나(실패) 결과가 모델의 것이지만, 이것은 결과만 보고는 우리가 손댔다는 것을 알 수 없습니다.

MANUAL_SOURCE 가 있는 이유와 같은 자리입니다(schemas.py 주석) — "표식을 만들어 두고 아무도 안 읽으면 다음 사람이 그 표식을 안 믿는다". 거기는 읽는 쪽이 app/ 에 없던 것이고, 여기는 읽는 쪽이 서버인데 서버가 안 남깁니다.

어디에 남길까

ⓐ 스냅샷에 칸 하나          ExtractedRiskItem 에 경고 코드(또는 「넓혔다」 불리언)
                           → 항목을 여는 모든 자리가 같이 본다. 마이그레이션이 붙는다
ⓑ 응답 계약에 싣는다        RiskItemsResponse 에 warnings[]
                           → 화면이 배지를 달 수 있다. 계약 변경 + 여섯 벌은 아니지만 수요자가 늘어난다
ⓒ 불변 기록에 남긴다        추출 시점 evidence 항목
                           → 감사에는 맞는데 화면은 여전히 못 본다. evidence/ 소유자 판단이 필요하다

ⓐ 가 먼저라고 봅니다. 이 사실이 필요한 자리가 「그 항목을 읽는 모든 곳」이고, 스냅샷이 그 단일 출처입니다. 칸 하나면 #478 이 세운 «저장된 추출뿐» 규약 안에서 끝납니다.

다만 #613 이 머지된 뒤에 정합니다 — 지금 EVIDENCE_WIDENED 는 그 브랜치에만 있습니다.

급하지 않은 이유

옵트인이라 지금 선언된 항목이 하나(ELS-MATURITY-LOSS-CONDITION)뿐이고, 추출 시점 로그에는 남습니다. 데모 경로에서 이 값을 읽고 판단하는 사람이 아직 없습니다.

관련: #613 · #456 · #478(저장된 추출뿐) · #436·#441(MANUAL_SOURCE 가 같은 모양)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

serverSpring (:8000)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions