다크 모드
Retriever 노드
Retriever는 선택한 Knowledge Base의 하나 이상의 컬렉션에서 쿼리와 관련된 문서를 검색하는 노드입니다. 검색된 본문, 점수, 문서 메타데이터를 LLM이나 조건 분기에 전달할 수 있습니다.
언제 사용하나요?
- 사내 문서나 등록된 지식에서 질문과 관련된 내용을 찾을 때
- LLM 답변을 실제 문서 근거에 연결할 때
- 검색 결과 수나 점수에 따라 후속 실행을 분기할 때
- 여러 컬렉션을 한 번에 검색하고 상위 결과만 사용할 때
입력
Query에 검색 문구를 작성합니다. 입력란에서 /를 사용하면 이전 노드의 출력값을 검색어에 포함할 수 있습니다.
text
다음 질문에 답할 수 있는 내부 문서를 찾으세요: /INPUT.question실행 시 Query가 최종 문자열로 변환되며, 빈 쿼리는 실행할 수 없습니다.
주요 설정
| 설정 | 설명 |
|---|---|
| 이름 | 캔버스와 실행 이력에 표시할 고유한 노드 이름입니다. |
| 설명 | 무엇을 검색하고 결과를 어디에 사용할지 기록합니다. |
| Knowledge Base | 검색할 Knowledge Base를 선택합니다. 변경하면 기존 컬렉션 선택이 초기화됩니다. |
| Collection | 선택한 Knowledge Base 안에서 검색할 컬렉션을 하나 이상 선택합니다. 여러 컬렉션을 함께 선택할 수 있습니다. |
| Top K | 1차 검색에서 가져올 최대 결과 수입니다. 편집기에서는 1에서 50 사이로 설정합니다. 기본값은 5입니다. |
| Search Type | DENSE, SPARSE, HYBRID 중 하나를 선택합니다. |
| Score Threshold | 활성화하면 설정한 최소 점수보다 낮은 결과를 제외합니다. 값 범위는 0에서 1입니다. |
| Semantic Weight | HYBRID 검색에서 의미 검색의 가중치를 설정합니다. 값 범위는 0에서 1이며 기본값은 0.7입니다. |
| Rerank | 검색 결과를 선택한 재정렬 모델로 다시 정렬합니다. |
| Rerank Model | Rerank를 켰을 때 사용할 모델입니다. 반드시 선택해야 합니다. |
| Top N | Rerank 후 남길 결과 수입니다. 1 이상이고 Top K 이하여야 합니다. |
| Query | 실제 검색 문구입니다. 일반 텍스트와 이전 노드 변수 참조를 함께 사용할 수 있습니다. |
검색 유형은 다음 기준으로 선택합니다.
| 유형 | 적합한 상황 |
|---|---|
| DENSE | 표현이 달라도 의미가 비슷한 문서를 찾고 싶을 때 |
| SPARSE | 제품명, 코드, 고유 용어처럼 정확한 단어 일치가 중요할 때 |
| HYBRID | 의미 유사도와 키워드 일치를 함께 반영하고 싶을 때 |
컬렉션을 새로 선택하면 그 컬렉션에 저장된 검색 설정이 Top K, Search Type, Threshold, Semantic Weight, Rerank 설정에 반영됩니다. 여러 컬렉션을 사용할 때는 최종 설정을 다시 확인하세요.
출력
| 필드 | 타입 | 설명 |
|---|---|---|
query | String | 실행에 사용된 최종 검색어입니다. |
total | Number | 검색에서 확인된 전체 일치 건수입니다. |
documents | Array | 상위 검색 문서 목록입니다. |
documents의 각 항목은 다음 필드를 제공합니다.
| 필드 | 타입 | 설명 |
|---|---|---|
content | String | 검색된 문서 조각의 본문입니다. |
score | Number | 검색 관련도 점수입니다. |
documentId | String | 원본 문서 식별자입니다. |
title | String | 문서 제목입니다. |
fullPath | String | 문서의 전체 경로입니다. |
collectionName | String | 결과가 속한 컬렉션 이름입니다. |
metadata | Object | 문서에 저장된 추가 메타데이터입니다. |
연결과 배치 제약
- Knowledge Base와 하나 이상의 Collection을 선택해야 합니다.
- Query가 설정되어 있어야 하며 실행 시 빈 문자열이어서는 안 됩니다.
- Top K는 양수여야 합니다. 편집기에서 입력할 수 있는 범위는 1에서 50입니다.
- HYBRID를 선택하면 Semantic Weight가 0에서 1 사이여야 합니다.
- Score Threshold를 사용한다면 값은 0에서 1 사이여야 합니다.
- Rerank를 켜면 Rerank Model과 양수인 Top N이 필요하며 Top N은 Top K를 넘을 수 없습니다.
- Retriever는 루트 워크플로우뿐 아니라 Loop와 Iteration 내부에도 배치할 수 있지만 컨테이너 경계를 가로질러 연결할 수 없습니다.
예시
내부 정책 문서를 근거로 질문에 답하는 흐름은 다음과 같이 구성합니다.
- Input에 필수 String 필드
question을 추가합니다. - Retriever에서 정책 Knowledge Base와 검색할 컬렉션을 선택합니다.
- Query에 “다음 질문에 답할 문서를 찾으세요:”를 쓰고
/INPUT.question을 삽입합니다. - HYBRID, Top K 5, Semantic Weight 0.7로 시작하고 테스트 결과를 확인합니다.
- Condition에서
RETRIEVER.total이 0보다 큰지 검사합니다. - 결과가 있으면 LLM에
RETRIEVER.documents와INPUT.question을 전달하고, 없으면 안내 메시지 경로로 분기합니다.
주의사항
- Top K를 크게 하면 더 많은 후보를 얻지만 후속 LLM에 전달하는 데이터와 처리 시간이 늘어날 수 있습니다.
- Score Threshold를 너무 높게 설정하면 관련 문서가 있어도 결과가 비어 있을 수 있습니다. 실제 질문으로 점수를 확인하며 조정하세요.
- 여러 컬렉션을 선택하면 새로 선택한 컬렉션의 검색 설정이 적용될 수 있으므로 Top K와 Rerank 값을 다시 확인하세요.
documents를 LLM에 전달할 때는 문서에 없는 내용을 만들지 말고 제목이나 경로를 근거로 표시하도록 메시지에 지시하세요.- Knowledge Base나 컬렉션이 삭제되거나 접근 권한이 바뀌면 실행할 수 없습니다.