springai3 Spring AI + pgvector RAG 검색 품질 개선기: 쿼리 리라이팅부터 Re-ranking까지 들어가며이전 글에서 MessageChatMemoryAdvisor를 적용해 멀티 턴 대화까지 구현했다. 그런데 실제로 다양한 질문을 던져보니, 검색 자체가 잘 안 되는 문제가 있었다."환불 ㄱㄴ?" 같은 구어체 질문은 벡터 검색에서 관련 문서를 못 찾는다유사도 점수가 낮은 문서도 무조건 포함되어 답변 품질이 떨어진다검색 결과의 순서를 조정할 방법이 없다이 글에서는 기존 QuestionAnswerAdvisor를 커스텀 Advisor 체인으로 교체하여 검색 품질을 개선한 과정을 정리한다기존 구조의 한계이전 글에서 구성한 Advisor 체인은 이랬다.MessageChatMemoryAdvisor → QuestionAnswerAdvisor (벡터 top-5 검색)실제로 테스트해보면 이런 문제가 발생한다.질문검색 결.. 2026. 2. 25. Spring AI가 제공하는 주요 기능 정리 들어가며Spring AI는 Java/Spring 생태계에서 AI 애플리케이션을 구축하기 위한 프레임워크다. LLM 호출, 문서 임베딩, 벡터 검색, 대화 이력 관리 등 AI 앱에 필요한 기능들을 Spring 스타일의 추상화로 제공한다.이 글에서는 Spring AI가 제공하는 주요 기능들을 지원하는 기능 → 원리 → 사용 방법 순서로 정리한다. 예시 구현 프로젝트https://github.com/Kimgyuilli/rag-template GitHub - Kimgyuilli/rag-template: rag 템플릿rag 템플릿. Contribute to Kimgyuilli/rag-template development by creating an account on GitHub.github.com1. ChatCl.. 2026. 2. 22. Spring AI로 멀티 턴 대화(Conversation Memory) 구현하기 들어가며이 프로젝트는 Spring AI를 학습하기 위한 프로젝트다. 고객센터 같은 상황에서 문서 기반으로 질문에 답변하면서, 동시에 이전 대화 맥락도 이어갈 수 있는 챗봇을 만드는 것이 목표다. 즉, 멀티 턴 대화와 RAG 기능을 모두 갖춘 프로그램을 완성하는 것이다.이전 글에서 RAG 기능까지 구현했지만, 한 가지 아쉬운 점이 있었다. "아까 말한 거 자세히 알려줘" 같은 맥락을 이어가는 대화가 불가능하다는 것이다. 매 요청이 독립적(stateless)이기 때문이다.이 글에서는 Spring AI의 MessageChatMemoryAdvisor를 활용해 세션 기반 대화 이력을 관리하는 과정과, 그 과정에서 겪은 삽질들을 정리한다.목표같은 세션 내에서 이전 대화 내용을 기억문서 컨텍스트(RAG)와 대화 이력.. 2026. 2. 22. 이전 1 다음