Skip to main content
필터는 랭킹 전에 돕니다. 기준에 맞는 청크만 남겨 후보 풀을 줄이고, 랭킹이 좁혀진 세트에서 일하게 합니다.

무엇으로 거를 수 있나

강화한 청크는 모두 메타데이터를 가집니다. 흔히 이런 필드로 거릅니다.
  • Tags 자동 태그 강화기가 붙인 태그.
  • Source 어느 문서·폴더·데이터베이스 행인지.
  • Path 헤딩 경로나 폴더 위치.
  • Language 청크의 감지된 언어.
  • Entities 뽑아낸 사람·조직·제품.
  • Modified date 소스를 마지막으로 고친 때.
  • Custom fields 인라인 강화기가 쓴 것.
필드는 Enrich 단계에서 더합니다.

필터 표현식

필터는 JSON 같은 술어로 씁니다. 예를 들면 이렇습니다.
연산자는 $eq, $ne, $in, $nin, $gt, $gte, $lt, $lte, $contains, $startsWith, $exists, $and, $or, $not 입니다.

세 층의 필터

필터는 층끼리 합쳐집니다. 위 층에서 정한 것이 아래 층 모두에 적용됩니다.
  1. 데이터 소스 층 문서 컬렉션에 붙입니다. 그 컬렉션에 대한 모든 쿼리에 적용됩니다.
  2. 프리셋 층 리트리벌 프리셋 안입니다. 그 프리셋을 쓰는 모든 Agent에 적용됩니다.
  3. 쿼리 층 호출마다, 런타임에 정합니다. Agent가 특별한 도구 인자로, 또는 여러분 코드로요.
런타임 필터는 프리셋 필터에 합쳐집니다(둘 다 맞아야 합니다). 이렇게 하면 “고객 대상 문서만 검색 가능” 을 시스템 룰로 드러내지 않고도 Agent가 더 좁힐 수 있습니다.

변수로 만드는 동적 필터

필터는 Flow 변수를 참조할 수 있습니다.
흔한 방법은 테넌트별 스코핑입니다. 실행 시작 때 변수를 요청자의 테넌트 ID로 두면, 모든 리트리벌이 자동으로 스코프됩니다.

테스트

프리셋 Test 패널에서 런타임 필터를 걸고 결과가 어떻게 바뀌는지 봅니다. 배포 전에 접근 통제를 확인하기 좋습니다.

성능

인덱스된 필드(태그, 소스, 날짜)로 거는 필터는 공짜입니다. 인덱스 스캔 때 함께 돕니다. 인덱스 안 된 커스텀 필드 필터는 가져온 뒤 훑는 방식이라, 컬렉션이 커질수록 느려집니다. 컬렉션 설정에서 자주 쓰는 필터 필드에 인덱스를 더하세요.