본문 바로가기
반응형

langchain4

[사이드 프로젝트] #2. RAG 챗봇 개발기 (6) - 하이브리드 검색과 '의외의' 결과 4편에서는 FAQ 기반 문서 재설계를 통해 답변 품질을 극적으로 끌어올렸고, 5편에서는 메타데이터 필터링으로 검색의 정확도와 신뢰도를 높였습니다.이제 마지막 퍼즐 한 조각이 남았습니다. 바로 '하이브리드 검색(Hybrid Search)'입니다. 이번 글에서는 RAG 시스템의 검색 품질을 극대화하기 위해 하이브리드 검색을 도입한 과정과, 그 테스트 결과에서 얻은 예상치 못한 교훈을 공유합니다.1. 벡터(Vector) 검색의 2% 부족함현재까지 구축한 챗봇은 벡터 검색만으로도 약 90%의 높은 정확도를 보여주고 있습니다. 벡터 검색은 문맥과 의미(Semantic)를 이해하는 데 탁월하기 때문입니다.질문: "결제가 안 될 때 어떻게 하나요?"벡터 검색 결과:"결제 실패 처리 방법" 문서를 찾아냄 (성공 ✅) .. 2025. 11. 21.
[사이드 프로젝트] #2. RAG 챗봇 개발기 (5) - '메타데이터'를 활용한 필터링 지난 4편에서는 문서 자체를 FAQ 기반으로 재설계하는 것만으로도 RAG 챗봇의 답변 품질을 극적으로 향상시킬 수 있었습니다. 벡터 검색만으로도 꽤 만족스러운 결과를 얻을 수 있었죠.하지만 여기서 만족하지 않고, 3편에서 계획했던 개선안 중 하나인 '메타데이터(Metadata) 필터링'을 적용해 챗봇을 한 단계 더 고도화해 보았습니다.1. 왜 '메타데이터 필터링'이 필요한가?FAQ 기반으로 문서를 잘 설계했지만, 검색 범위를 더 확실하게 좁히고 싶다는 욕심이 생겼습니다.예를 들어, 제 업무 지식에는 'A-Pay 연동', 'B-배송 설정', 'C-인증 정책' 등 여러 카테고리가 섞여있습니다. 만약 사용자가 "설정 방법 알려줘"라고 모호하게 질문하면, AI가 A-Pay와 B-배송의 설정 방법을 섞어서 답변할.. 2025. 11. 13.
[사이드 프로젝트] #2. RAG 기반 '업무 지식' AI 챗봇 개발기 (3) - RAG 구축 삽질기 RAG(Retrieval-Augmented Generation) 개념을 배우고 예시 코드를 처음 적용했을 때는 정말 쉬워 보였습니다. "이거면 금방 끝나겠네!" 싶었죠.하지만 현실은 역시 만만치 않았습니다.❌ 첫 번째 문제: 부정확한 컨텍스트와 잘린 답변처음에는 간단한 설정으로 시작했습니다.# 초기 설정text_splitter = RecursiveCharacterTextSplitter( chunk_size=250, # 너무 작았음 chunk_overlap=100, separators=["\n## ", "\n### ", "\n\n", "\n", ". ", " ", ""], add_start_index=True,)def retrieve_context(query: str): .. 2025. 10. 29.
[사이드 프로젝트] #2. RAG 기반 '업무 지식' AI 챗봇 개발기 (1) 2025년도 얼마 남지 않은 지금, 3년 후의 미래를 준비하는 마음으로 두 번째 사이드 프로젝트에 도전합니다. 이번 프로젝트의 목표는 'RAG(Retrieval-Augmented Generation) 기반의 AI 챗봇 도우미'를 만드는 것입니다.1. 프로젝트 동기: 흩어진 8년 차 지식을 하나로개발자로서 현재의 불안감과 미래에 대한 고민은 늘 따라다니는 것 같습니다.특히 현재 직장에서 8년 넘게 근무하며 쌓인 수많은 업무 지식과 경험이 제 머릿속, 수많은 메일함, 그리고 이름 모를 문서 조각들로 흩어져 있다는 것을 깨달았습니다.이러한 정보들이 체계적으로 관리되지 않으면, 결국 기억에 의존하거나 매번 히스토리를 찾고 코드를 다시 분석해야 하는 비효율이 발생합니다. 이 과정에서 소중한 시간을 낭비하게 되고,.. 2025. 10. 22.
반응형