Repository navigation
Hint Session 13 KO
riido-hints --session --limit 20은 같은 질문의 다음 페이지를 읽을 때 검색을 다시 계산하지 않는다. 첫 줄에 기존 요청을 JSON 한 줄로 보내면 첫 페이지가 나온다. 이후에는 응답의 next_cursor와 원하는 limit만 JSON 한 줄로 보낸다. 응답도 한 줄 JSON이다. 기존 단일 요청 모드는 그대로 사용할 수 있다.
go build -o riido-hints ./cmd/riido-hints
./riido-hints --session --limit 20 --identifier-hints첫 입력 예시:
{"snapshot_id":"public-demo","query":"read config","documents":[{"id":"a","text":"read"},{"id":"b","text":"config"},{"id":"c","text":"func ReadConfig() {}"}]}이 작은 예시는 한 페이지에 끝난다. 더 많은 후보가 있으면 다음 입력을 보낸다. 복사한 값은 실제 응답의 cursor로 바꾼다.
{"cursor":"복사한 값","limit":20}입력을 닫으면 프로세스가 종료된다. 라이브러리/에이전트는 표준 입력·출력 파이프로 연결하고 각 입력 줄을 보낸 뒤 flush한다. 예시처럼 모든 후보가 이미 반환됐으면 입력을 닫으면 된다. 정적 파일로 시험할 때는 첫 요청 한 줄만 보내도 정상 종료한다.
한 프로세스는 한 질문·한 스냅샷만 담당한다. 초기 검색이 끝난 뒤 보관하는 것은 후보 ID·순위·점수와 응답 메타데이터다. 애플리케이션이 원문이나 결과를 파일로 저장하지 않는다. 원문·인덱스 등 초기 임시 객체는 반환 뒤 Go GC의 회수 대상이 되지만 즉시 메모리 제거를 보장하지 않는다. 공용 캐시나 공유 잠금은 추가하지 않았다. 프로세스를 오래 열어두면 결과도 메모리에 남으므로 호출자가 수명을 관리한다.
다른 질문·권한·카탈로그로 바꾸려면 새 프로세스를 시작한다. 허용된 후보만 전달할 책임은 호출자에게 있다. 세션 중 권한 변경은 자동 반영되지 않으므로 권한이 바뀌면 기존 프로세스를 닫는다. cursor는 일관성 검사이며 인증 토큰이 아니다. 임의의 cursor, 추가 필드, 범위 밖 페이지, 너무 큰 입력은 오류로 종료한다. 이미 보낸 정상 응답은 취소하지 않지만 잘못된 요청의 부분 응답은 내보내지 않는다.
최대 초기 요청은 줄바꿈 포함 16 MiB, 이후 요청은 1,024바이트다. 후보 상한 4,096개와 기존 원문·질문 한도는 유지한다. 페이지 크기는 1..4,096이며 세션에서는 --cursor 시작 옵션을 쓰지 않는다. 자동 만료나 네트워크 서버는 없다.
기존 모드와 첫 페이지·다음 페이지가 동일한지 테스트한다. 공개 원천의 3,009개 후보를 양쪽 검색 정책으로 151페이지 끝까지 복원해 ID·순위·점수가 모두 같은지 별도 로컬 검사했다. 원문은 Git에 넣지 않았다.
RIIDO_PUBLIC_SESSION_FIXTURE=/path/to/public-catalog.json go test -race ./cmd/riido-hints성능 결과는 results-13.json에 기록한다. 전체 후보를 읽는 한 질문의 통신 시험이며 2,948개의 독립 질문 시험이나 실제 LLM 비용 절감 증거가 아니다. 작은 첫 페이지만 읽고 끝나는 경우에는 전체 순위 재사용의 이득이 훨씬 작다. 첫 준비 단계에는 기존 전체 응답을 내부 JSON으로 한 번 변환하는 비용도 포함된다.
| 한 질문, 전체 151페이지 | 기존 요청 반복 | 세션 |
|---|---|---|
| 기존 BM25 전체 시간 | 11.045초 | 0.072초 |
| 보조 검색 전체 시간 | 20.412초 | 0.138초 |
| 입력 전송량 | 360,069,617바이트 | 2,405,664바이트 |
세션 첫 페이지는 각각 0.068초/0.132초, 초기화를 포함한 최대 RSS는 33,505,280/40,992,768바이트였다. Apple M4 Pro에서 조건별 1회 측정이며 GPU는 사용하지 않았다. 전체 시간은 호출 측 JSON 처리·프로세스 시작·통신을 포함한다. 기존 모드의 최대 RSS는 이 시험에서 측정하지 않았으므로 메모리 감소를 주장하지 않는다. 세션 응답은 한 줄 JSON이라 출력 바이트 비교에는 들여쓰기 제거 효과도 포함된다. 보조 검색의 첫 페이지가 기존 검색보다 느린 사실은 그대로 남는다.
riidolaya is experimental. No demonstrated Codex cost savings; repository selection is preview-only.
riidolaya는 실험 단계입니다. Codex 절감은 미입증이며 저장소 선택은 preview입니다.
English README · 한국어 README · Versioned Wiki sources / Wiki 원본
이전 연구 안내 펼치기 / Earlier research
- 실제 이어 학습 V3 · 한국어 · Actual V3 training · English
- 진행·완료 보고·질문100건 결과 KO · 100-case results EN
- 라벨·이모지·상태 힌트 KO · Content/state hints EN
- 개발 진행·완료 보고·질문 pilot KO · Development pilot EN
- 작은 검증 기록 KO · Compact evidence EN
- 현재 개발 자료 35개·다음 학습 조건 · 35-row data and next training gates
- 개발용 학습 자료 2개 · Two qualified training requests
- 첫 두 과제 실제 관측 · First two actual observations
- 전체 사용법 KO · Full usage EN
- 작은 동작 힌트 KO · Small hints EN
- 설명 보강 비교76 · Caption diagnostic76
- Go 압축 가중치78 · Packed Go weights78
- 공개 함수 동작 검증 · Public function verification
- 다음 학습 자료 준비 · Training data preparation
- 동작에서 학습 정답·실제 학습79 · Grounded labels and actual fit79
- 소스 동작 관찰 · Source observations
- 저장 크기와 RAM · Storage and RAM
- 라이선스 · Licensing
- 시점별 기록 원문 / Chronological history
- 전체 연구 링크 / Full research index
- 문서 목록 / Documentation