RAG 하이브리드 검색
작성: Ai Flowi · 게시일
RAG 하이브리드 검색은 단어와 정확한 용어를 사용하는 어휘 검색에, 임베딩으로 표현된 의미를 사용하는 의미 검색을 결합합니다. 결합된 후보는 검색 증강 생성의 근거가 됩니다. 정확한 식별자와 바꿔 쓴 질문을 따로 평가하여 두 종류의 근거가 모두 선택 결과에 남는지 확인합니다.
이 제안된 점검 경로에서 AI Flowi Workflow의 OpenSearch, Prompt Template, Language Model 컴포넌트는 카탈로그에 문서화되어 있지만 Ai Flowi가 운영 환경에서 테스트하지는 않았습니다. OpenSearch 설명에는 하이브리드 검색이 언급되지만 내보낸 인터페이스만으로는 쿼리 구성, 검색 신호 결합, 외부 인덱스 설정이 확인되지 않습니다. 이 가이드는 테스트 설계이며, 검증된 내장 하이브리드 검색 구성 예제가 아닙니다.
1. 검색 신호를 구분할 수 있는 문서 집합 구성
명시적인 식별자, 자연어 설명, 비슷하지만 적용되지 않는 기록이 있는 가상의 텍스트 구간을 준비합니다. 한 텍스트 구간에는 가상의 장비 코드를 넣고 다른 테스트에는 그 용도를 설명하는 질문을 사용합니다. 답변이 자연스럽다는 이유로 신뢰하지 말고 어떤 근거가 반환되었는지 점검할 수 있도록 버전과 텍스트 구간 ID를 명확히 유지합니다.
| 텍스트 구간의 특징 | 질문 방식 | 기대하는 근거 |
|---|---|---|
| 정확한 장비 코드 | 해당 코드의 사용 지침을 질문합니다. | 검색된 텍스트에서 해당 코드를 식별할 수 있어야 합니다. |
| 일상적인 표현의 절차 | 같은 작업을 다른 표현으로 질문합니다. | 정확히 같은 표현을 반복하지 않아도 절차를 찾을 수 있어야 합니다. |
| 비슷한 코드의 다른 항목 | 원래 코드를 질문합니다. | 별도 표시 없이 비슷한 다른 식별자로 대체되어서는 안 됩니다. |
| 규칙과 적용 조건 | 특정 상황에 규칙이 적용되는지 질문합니다. | 답변 생성에 규칙과 적용 조건을 모두 제공할 수 있어야 합니다. |
이는 기록된 검색 결과가 아니라 제안된 사례입니다. 시험 전에 필요한 텍스트 구간에 레이블을 붙입니다. 코드 조회에는 식별자의 정확한 보존이 필요하고, 바꿔 쓴 질문에는 개념을 포괄하는 검색이 필요하므로 결합 결과를 두 요구에 맞춰 평가합니다. 두 신호가 있다는 이유만으로 완전하거나 정확한 맥락이 제공된다고 가정하지 않습니다.
관련 자료: RAG 청킹 전략.
2. 외부 검색 설정을 선행 조건으로 취급
조회 권한이 있는 OpenSearch 서비스, 준비된 문서 집합이 들어 있는 인덱스, 필요한 작업으로 범위가 제한된 인증 정보, 적합한 임베딩 연결이 필요합니다. 답변을 생성하기 전에 Language Model 연결 지침에 따라 필요한 서비스 계정과 키를 준비합니다. 모델 서비스와 외부 검색 서비스는 워크플로우 실행과 별도로 과금합니다.
검색 서비스 관리자가 비교에 사용할 실제 어휘 검색, 의미 검색, 결합 검색 설정을 문서화하게 합니다. 외부 설정은 OpenSearch 공식 하이브리드 검색 문서를 참고합니다. 이 오프라인 초안에서는 해당 문서를 검증하지 않았습니다. 이 페이지는 지원 쿼리, 프로세서, 엔진 동작에 대해 특정 버전의 기능을 주장하지 않습니다.
시작점으로 선택하기 전에 활용 사례 라이브러리에서 Hybrid Search RAG 시작용 구성의 선행 조건을 확인합니다. 해당 구성을 아래 OpenSearch 설계의 실행 테스트로 간주하지 않습니다. 이 절차는 내보낸 OpenSearch 규약을 사용하고 서비스 설정과 빌더 필드 설정을 분리합니다.
3. 컴포넌트가 실제로 제공하는 인터페이스 점검
OpenSearch의 카탈로그 설명은 의미 검색과 키워드 검색 기능을 함께 언급하므로 여기서는 코드 질문과 바꿔 쓴 질문을 비교합니다. 검색 입력에는 search_query, index_name, number_of_results, embedding, filter_expression이 있습니다. 출력은 JSON인 search_results, Table인 dataframe, VectorStore인 vectorstoreconnection입니다.
내보낸 자료에는 하이브리드 모드, 어휘 검색 가중치, 결합 규칙, 정규화 파이프라인이라는 이름의 입력이 없습니다. engine에는 선택지가 있지만 엔진 이름만으로 어휘 검색과 의미 검색 결과가 어떻게 결합되는지 알 수는 없습니다. 하이브리드 전환 기능을 만들어 내거나 search_query에 문서화되지 않은 구조화 쿼리 문법을 넣지 않습니다. 이 필드는 Message 연결을 받습니다.
4. 준비된 인덱스의 점검 경로 설정
준비된 인덱스 점검: 구성 예시이며, 기록된 테스트가 아닙니다
| 컴포넌트 | 설정할 카탈로그 입력 | 계속하기 전 점검 |
|---|---|---|
| OpenSearch | opensearch_url: 조회 권한이 있는 서비스; index_name: 준비된 테스트 인덱스; auth_mode: 설정에 맞는 "basic" 또는 "jwt"; use_ssl: true; verify_certs: true입니다. | 인증 정보 값을 공개하지 않고 엔드포인트 접근과 인증서 유효성을 검증합니다. |
| OpenSearch 검색 설정 | search_query: 레이블이 있는 질문 1개; number_of_results: 5; embedding: 필요한 경우 설정된 Embeddings 연결; vector_field: 관리자가 확인한 필드입니다. | 5는 예시로 요청하는 결과 수이며 서비스 한도나 내장 하이브리드 설정이 아닙니다. |
| Prompt Template | template: 검토된 근거 텍스트, 원래 질문, 원본 근거에 기반하도록 하는 지침입니다. | 첫 점검에서는 근거를 수동으로 입력합니다. 입력값의 동적 바인딩은 편집기에서 검증해야 합니다. |
| Language Model | input_value: Prompt Message; model: 설정된 LanguageModel; system_message: 제공된 근거만으로 답하도록 하는 지침입니다. | 답변을 검색 시험과 별도로 점검합니다. |
제안된 검색 전용 시험에서는 ingest_data를 설정하지 않습니다. 비워 두면 의도적인 데이터 적재 요청은 피할 수 있지만 인증 정보가 허용하는 작업을 제한할 수는 없습니다. 외부 서비스에서 해당 권한을 통제합니다. 실제 데이터를 사용하기 전에 JWT 필드의 의미를 포함한 인증 요구 사항을 관리자와 확인합니다.
5. 실제 어휘·의미·결합 검색 결과 비교
모든 검색 설정에 동일한 문서 집합 스냅샷과 질문 모음을 사용합니다. 외부 테스트 환경에서 어휘 전용, 의미 전용, 결합 검색의 결과를 각각 구분하여 확보합니다. 검증된 설정으로 빌더에서 이 모드를 선택할 수 없다면 동일한 호출 3개를 서로 다른 실험으로 이름만 바꾸지 말고 그 한계를 기록합니다.
각 질문에 대해 반환된 텍스트 구간 ID, 순서, 적용 필터를 저장합니다. 정확한 코드로 검색했을 때의 오류, 바꿔 쓴 질문의 검색 누락, 적용 조건 텍스트 구간의 누락을 점검합니다. 각 관찰과 함께 실제 서비스 설정을 기록합니다. 결합 실행 여부는 서비스 설정으로 확인합니다. 컴포넌트 설명이나 반환 목록만으로는 신호 가중치가 확인되지 않습니다.
외부 서비스 권한은 신호 비교 실험과 별도로 관리합니다. 지식 기반 가이드는 더 단순한 비교 기준이 될 검색 방식을 준비하는 방법을 설명합니다.
어휘, 의미, 결합 실행을 비교할 때는 검색 대상이 될 수 있는 원본 집합을 일정하게 유지합니다. 그렇지 않으면 새로 허용된 텍스트 구간 때문에 검색 성능이 좋아진 것처럼 보일 수 있습니다. 실행마다 관리자가 확인한 설정과 검색 대상 문서 집합을 함께 기록합니다. 내보낸 filter_expression 필드는 문법을 제공하지 않으며 어떤 필터가 실제로 실행되었는지도 입증하지 않습니다.
6. 답변 초안 작성 전 근거 검토
검색된 근거를 생성에 사용할 때는 지식 기반 챗봇과 Prompt Template 안내의 답변 생성용 형식을 구성할 때 확인해야 할 경계 조건을 확인합니다.
하이브리드 검색에 유용한 비교는 같은 가상 항목에 관한 질문 2개를 짝짓는 것입니다. 하나는 정확한 장비 코드를 명시하고 다른 하나는 코드 없이 용도를 설명합니다. 각 외부 설정에서 두 질문 모두의 결과에 어떤 원본 ID가 남는지 기록합니다. 바꿔 쓴 질문은 성공하지만 정확한 코드 질문이 비슷한 다른 항목을 검색하면 통합 평균이 식별자 결함을 가릴 수 있습니다. 검토 시 두 질문을 함께 유지하고, 모델의 표현이 대체 오류를 가리기 전에 결합된 근거를 점검합니다.
기대하는 답변은 주장을 반환된 원본 텍스트 구간에 연결하고 근거가 없는 부분은 명확히 표시합니다. 요청한 식별자를 정확하게 보존해야 합니다. 필요한 텍스트 구간이 검색 결과에 얼마나 포함되는지와 답변이 근거에 기반하는지를 RAG 평가로 확인합니다. 남은 문제가 후보 순서라면 RAG 리랭킹을 살펴봅니다. 리랭킹은 이후의 선택 단계이며 하이브리드 검색이 설정되었다는 근거가 아닙니다.
7. 하이브리드 검색이 필요 없는 경우는 언제인가요?
더 단순한 검색 경로가 질문 모음을 이미 충족한다면 외부 검색 인프라를 추가하지 않습니다. 하이브리드 검색으로 누락된 원본 문서, 모호한 식별자, 잘못 준비된 텍스트를 해결할 수는 없습니다. 문서 집합이 지식 기반 검색 가이드에서 다루는 범위에 맞는다면 더 간단한 방법으로 시작할 수 있습니다.
이 제안에는 호스팅 인덱스 제공, 내장 모드 제어, 엔진 호환성, 쿼리 문법, 자동 실패 복구가 확인되어 있지 않습니다. 내보낸 자료에는 측정된 지연 시간이나 품질 비교도 없습니다. 빌더 실행을 하이브리드 검색이라고 설명하기 전에 외부 설정을 확인하고 출력을 점검합니다. 검색이 실패하면 오류 데이터로 답변을 작성하지 말고 생성 연결을 끊어 둡니다.
하이브리드 검색의 사용량 가정
요금제: Go 연간 결제 시 월 USD8부터(월간 USD10), Plus 월 USD16부터(월간 USD20), Pro 100 월 USD80부터(월간 USD100), Pro 200 월 USD160부터(월간 USD200), Pro 500 월 USD400부터(월간 USD500). 매월 5,000~250,000 Flowi Tokens가 제공되며 충전도 가능합니다. 노드 실행 1회당 1토큰, 타사 API 및 모델 사용 요금은 포함되지 않습니다.
외부 인덱싱, 임베딩, 검색 비교, 모델의 답변 생성 비용은 별도로 산정합니다. 요청한 결과 수만으로 검색 서비스가 작업을 어떻게 과금하는지 알 수는 없습니다.