Hint Session 13 KO - teamswyg/laya-tools GitHub Wiki

검색 κ²°κ³Ό μž¬μ‚¬μš© μ„Έμ…˜ 13

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이라 좜λ ₯ λ°”μ΄νŠΈ λΉ„κ΅μ—λŠ” λ“€μ—¬μ“°κΈ° 제거 νš¨κ³Όλ„ ν¬ν•¨λœλ‹€. 보쑰 κ²€μƒ‰μ˜ 첫 νŽ˜μ΄μ§€κ°€ κΈ°μ‘΄ 검색보닀 느린 사싀은 κ·ΈλŒ€λ‘œ λ‚¨λŠ”λ‹€.