NEW코딩일지 · 11.05코퍼스 메인에 주장 연구실을 세웠다: 사유고2 주장 29만 개를 자동 등록하고 스파크 두 대가 반증 조건까지 검토한다
← 개발로그
·2분

위키룸 개발로그 · 4화

근거 번호 없는 문장은 버린다: 교재가 근거 30개 중 4개만 썼다

검색 결과를 통계와 문서로 넓혔다. 숫자는 로컬 코드가 센다. 카카오톡 발췌로 만든 교재는 그럴듯했지만 30개 근거 중 4개만 쓰고 있었다. 근거 번호와 원문 인용이 없는 문장은 버리는 규칙을 만들었다.

▸ 위키룸#grounding#citation#llm#rust

8월 13일에 이런 질문이 나왔다. 에이전트한테 부탁하면 자연어로 통계도 내고 HTML 보고서도 만들어 주는데, 왜 앱에서는 안 되느냐는 것이었다. 검색기가 분석 도구로 넓어진 계기다.

숫자는 로컬이 센다

“GPT, Claude, Gemini를 단순 언급 횟수로 비교해 줘” 같은 질문을 받는 통계 모드를 만들었다. 이때 언어 모델에게 맡기는 일은 계획뿐이다. 질문만 보내서 무엇과 무엇을 비교할지, 각각 어떤 별칭으로 불리는지 목록을 받는다. 실제 개수는 로컬 Rust 엔진이 전체 대화를 직접 센다. 모델은 대화 원문을 보지 않는다.

개수까지 모델에게 세라고 하면 편하다. 하지만 같은 질문을 두 번 했을 때 숫자가 달라질 수 있고, 그 숫자를 확인할 방법이 없다. 코드가 센 숫자는 다시 돌리면 똑같이 나온다. 결과는 표와 막대그래프로 보여 주고 HTML, Word, PDF로 내보낸다. 보고서에는 원문과 화자와 대화방 이름을 넣지 않고 언급 횟수, 포함 메시지 수, 대화방 수, 집계 기간만 남긴다.

같은 주에 자료 종합 모드도 붙였다. 검색해서 고른 대화 발췌를 교재나 가이드 형태로 엮는 기능이다.

30개를 가져와 4개를 썼다

8월 14일, 자료 종합으로 만든 교재를 읽다가 이상한 느낌이 들었다. 실제 카카오톡 발췌로 만들었다는데, 본문은 어디서나 볼 수 있는 일반론처럼 읽혔다. 근거 번호가 붙어 있었지만 눌러도 아무 데도 가지 않았다.

점검해 보니 가져온 발췌 30개는 모두 실제 DB와 일치했다. 발췌 자체는 진짜였다. 문제는 본문이었다. 30개 중 본문에 실제로 연결된 건 4개였고, 나머지 문장은 모델이 알고 있던 일반 지식으로 채운 것이었다. 발췌가 진짜인지만 확인하고, 본문의 문장 하나하나가 그 발췌에서 나왔는지는 확인하지 않았던 것이다.

기준을 이렇게 정했다. 카카오톡 DB를 빼도 쓸 수 있는 문서라면 카카오톡 기반 문서가 아니다.

근거 없는 문장은 버린다

생성 규칙을 바꿨다. 요약, 학습 목표, 핵심 내용, 실습, 용어, 체크리스트까지 모든 항목에 유효한 근거 번호와, 실제 발췌에서 그대로 복사한 8자 이상의 인용을 요구한다. 앱은 모델이 낸 결과를 받아서 로컬에서 다시 검사한다. 근거 번호가 발췌 목록에 있는지, 인용한 문장이 그 발췌에 글자 그대로 들어 있는지. 통과하지 못한 문장은 버리고, 근거가 하나도 남지 않은 장은 통째로 뺀다.

근거 번호는 이제 누를 수 있다. 위키룸 전용 링크(wikiroom://)로 앱이 열리고 그 대화 구간의 원문과 앞뒤 문맥을 보여 준다. 모델이 쓴 문장에서 원문까지 한 번에 돌아간다.

규칙을 바꾸고 나니 문서가 짧아졌다. 일반론이 빠진 자리는 그대로 비었다. 대신 남은 문장은 모두 누군가 실제로 한 말로 돌아간다.

로컬 우선은 처리 경계다: 외부 모델에는 골라서 가린 발췌만 보낸다

이 시기에 정리된 원칙이 하나 더 있다. 로컬 우선은 저장 위치가 아니라 처리 경계라는 것이다. 원문과 벡터를 맥에 둔다고 끝나지 않는다. 통계는 로컬이 세고, 영상은 고른 한 편, 책은 고른 한 쪽, 자료 종합은 골라서 가린 발췌만 외부 모델로 간다. 앱은 보낼 때마다 무엇이 나가는지 먼저 알린다.

위키룸 개발로그 · 전 6화

  1. 1화카톡 검색 도구 첫 색인: '전부 찾기'는 분모부터 정해야 했다
  2. 2화카톡 검색기를 유튜브 타임코드 검색으로 바꿔 끼웠다
  3. 3화사유고 책을 붙여 위키룸이 됐다: '새 화면 적용'과 실제 연결은 달랐다
  4. 4화근거 번호 없는 문장은 버린다: 교재가 근거 30개 중 4개만 썼다
  5. 5화예측 사건 자동 연결 12,490건, 감사하니 절반도 맞지 않았다
  6. 6화AI 세션 41개로 인수인계 원장과 개발 타임라인을 엮었다