
왜 청킹을 하나
리트리벌은 쿼리에 가장 관련 있는, 가장 작은 콘텐츠 조각을 찾아냅니다. 200페이지 PDF 통째로는 너무 굵습니다(관련 없는 부분이 신호를 덮습니다). 문장 하나는 너무 잘습니다(맥락을 잃습니다). 청크가 딱 알맞은 단위죠. 알맞은 청크 크기는 콘텐츠마다 다릅니다. 문서 페이지는 200~500 토큰, 채팅 트랜스크립트는 대화 통째로, 코드는 파일이나 함수 단위입니다. Nora에 무난한 기본값이 있지만, 블록마다 손볼 수 있습니다.청커 종류
마크다운 청커
마크다운, HTML, 구조가 좋은 PDF, Notion 페이지에 씁니다.- 먼저 헤딩 계층에서 나눕니다(섹션 중간을 자르지 않습니다).
- 청크마다 헤딩 경로(
Guides > Auth > OAuth)를 메타데이터로 답니다. - 섹션이 너무 길면 1200자쯤에서 문자 단위로 나누고 100자를 겹칩니다.
시맨틱 청커
작은 모델로 자연스러운 주제 경계를 찾습니다. 느리고 비싸지만, 뚜렷한 헤딩이 없는 산문에서는 더 나은 청크를 만듭니다.PDF 청커
레이아웃이 있는 PDF를 다룹니다. 컬럼, 각주, 표를 처리하고 읽는 순서를 지킵니다. 취향에 따라 표를 HTML이나 CSV로 뽑습니다.스프레드시트 청커
CSV, XLSX, Google Sheets 용입니다. 두 모드가 있습니다.- Row-wise 행마다 청크입니다. 레코드 같은 데이터에 좋습니다.
- Table-summary 시트마다 청크 하나입니다(요약 + 원본 데이터 링크). 리트리벌이 레코드 조회가 아니라 주제형인 큰 표에 좋습니다.
코드 청커
언어를 압니다. 함수/클래스 경계에서 나눕니다. 임포트와 파일 스코프 맥락을 함수 청크마다 붙여 둡니다. JS/TS, Python, Rust, Go, Java, C++, C#, Ruby, PHP, SQL을 지원합니다. 나머지는 문자 단위로 나눕니다.커스텀 청커(인라인)
항목을 받아 청크 객체 목록을 돌려주는 JS/Python 함수를 씁니다. 완전히 통제할 수 있습니다.청크 메타데이터
청크마다 이런 걸 가집니다.- Content 텍스트.
- Source ID 어느 소스 항목에서 왔는지.
- Path 계층 위치(예: 헤딩 경로, 시트 이름, 함수 이름).
- Position 소스 안에서 청크 번호.
- 커스텀 필드 상류에서 더한 임의 메타데이터.