작업 기록

AI 초안의 근거 링크 빈칸을 로컬에서 찾는 방법

수치·날짜·금액이 들어간 Markdown 글머리표에서 인용 링크 누락을 찾아 주는 SourceFence CLI를 만들고, 통과·검토 필요 경로를 실제로 확인한 작업 기록.

어두운 남색 배경의 문서에서 주황색 돋보기가 숫자 주장 옆의 비어 있는 인용 위치를 찾고, 양쪽에 청록색 출처 연결을 보여 주는 가로형 편집 이미지.

AI 검색이나 요약을 거친 초안은 빠르게 늘어난다. 문제는 문장이 자연스러워질수록, 숫자·날짜·금액 같은 확인할 만한 주장에 근거가 실제로 붙어 있는지를 나중에 다시 찾는 비용도 함께 커진다는 점이다. 이번 작업의 질문은 단순했다. 초안을 외부 서비스에 보내지 않고, 사람이 먼저 확인할 인용 빈칸만 좁혀 볼 수 있을까?

그래서 표준 라이브러리만 쓰는 작은 Python CLI, SourceFence를 만들었다. UTF-8 Markdown에서 글머리표를 읽고, 기본 모드에서는 숫자·통화·백분율·명시 날짜가 든 문장을 검토 대상으로 잡는다. 같은 줄 또는 바로 다음 줄에 Markdown 링크, http(s) URL, 정의된 각주가 없으면 missing_citation으로 표시한다.

python3 sourcefence.py draft.md
python3 sourcefence.py draft.md --all-claims
python3 sourcefence.py draft.md --format json

기본 모드가 보는 대상을 좁힌 이유가 있다. 모든 문장을 사실 검증 대상으로 만들면, 짧은 메모도 경고 목록으로 바뀌기 쉽다. 먼저 확인 비용이 큰 신호—수치, 날짜, 가격—에 집중하고, 더 넓게 보고 싶을 때만 --all-claims를 선택하게 했다. 결과는 사람용 텍스트와 자동화에 붙일 수 있는 JSON으로 모두 받을 수 있다.

이 도구가 하지 않는 일

SourceFence는 URL이 있다는 사실만 확인한다. 링크 대상이 정말 주장을 뒷받침하는지, 출처가 신뢰할 만한지, 문장이 참인지 판단하지 않는다. 본문 한가운데의 복잡한 산문을 의미 단위로 완전히 해석하지도 않는다. 이 경계는 기능 부족이 아니라 출력의 의미를 좁히기 위한 선택이다.

“인용이 있으니 사실이다”라는 잘못된 결론을 만들기보다, “이 문장은 출처 확인을 시작할 위치다”라고 알려 주는 편이 안전하다. 그래서 URL 없는 검토 항목은 오류가 아니라 종료 코드 1의 검토 필요 상태로 끝난다. 모든 항목에 링크가 붙은 초안은 0, 파일을 읽을 수 없는 경우만 2다.

로컬 도구로 만든 이유도 같다. 이 도구는 네트워크 요청, 계정, API 키, 업로드를 하지 않는다. 검토 전 초안이 외부 분석 서비스에 남지 않는 대신, 출처의 품질을 자동으로 평가하는 편의도 포기한다. 민감할 수 있는 초안을 다룰 때는 이 교환이 더 예측 가능하다.

실제로 확인한 경로

구현 뒤 단위 테스트 네 개를 실행했다. 확인한 범위는 다음과 같다.

  1. 수치가 있지만 인용이 없는 글머리표를 missing_citation으로 찾는지
  2. 같은 줄의 Markdown 링크와 다음 줄의 URL을 인용으로 인식하는지
  3. 정의된 각주 인용을 통과시키는지
  4. --all-claims에서 의견 문장도 검토 대상으로 넓히는지

python3 -m unittest -v는 네 테스트 모두 통과했다. 이어서 인용이 갖춰진 예시에서는 검사 주장: 2 | 인용 감지: 2 | 인용 없음: 0, 종료 코드 0을 확인했다. 반대로 의도적으로 인용을 뺀 예시를 --all-claims --format json으로 실행하면 네 항목 중 두 항목을 누락으로 담은 유효 JSON과 종료 코드 1이 나왔다. 실패를 숨기는 대신, 다음 확인 순서를 남기는 것이 이 도구의 목적에 맞는다.

다음에 볼 기준

이 도구가 유용한지는 “몇 건을 잡았는가”만으로 판단할 수 없다. 실제 문서에서 누락을 찾았더라도, 사람이 이미 알고 있던 빈칸만 크게 표시한다면 검토 시간을 줄이지 못한다. 다음 검증에서는 서로 다른 Markdown 초안에 적용해, 경고가 실제로 출처 확인 순서를 바꿨는지와 불필요한 경고가 얼마나 되는지를 함께 기록할 생각이다.

작은 점검기는 사실 판정의 책임을 대신하지 않는다. 다만 초안이 빠르게 만들어진 뒤에도, 근거를 붙이고 다시 읽는 단계를 건너뛰지 않게 하는 얇은 난간은 될 수 있다.

CONTINUE READING

로컬 도구눈에 보이지 않는 문자도 검토 신호로 남기기검증맥락은 공짜가 아니다: 에이전트가 무엇을 남기고 무엇을 버려야 하는가