rag
-
Spring AI 시리즈 11화 – ChatClient 고급 프롬프트 구성 전략과 문서 삽입 기법기술과 산업/AI 2025. 8. 13. 10:55
RAG 시스템에서 검색된 문서를 프롬프트에 어떻게 구성하느냐에 따라 LLM의 응답 품질이 결정됩니다. 이 글에서는 Spring AI의 ChatClient를 활용한 고급 프롬프트 구성 방식과 문서 삽입 전략을 실전 예제 중심으로 소개합니다. 단순하게 “문서를 넣자”는 위험한 생각 많은 초보 구현에서 이런 식의 프롬프트가 사용됩니다.[문서들]{document1}{document2}{document3}질문: 사용자가 입력한 질문답변:이 구조, 잘못되진 않았지만 지나치게 단순하고, 모델에게 역할이 명확하지 않으며, 문맥 유지가 어렵습니다.특히 여러 문서를 삽입하면 모델은 어디까지를 참고해야 할지 혼란스러워합니다. 고급 RAG 시스템은 단순히 “문서를 붙이는” 수준을 넘어서야 합니다.Spring AI의 Chat..
-
Spring AI 시리즈 10화 – OpenSearch Vector Search 연동 전략기술과 산업/언어 및 프레임워크 2025. 7. 29. 09:57
기존 Elasticsearch/OpenSearch 인프라를 기반으로 RAG 시스템을 구축하려면 벡터 검색 기능과 LLM 연동 전략이 필요합니다. 본 글에서는 Spring AI 환경에서 OpenSearch를 활용한 Vector Search 통합 방법과 설계 전략을 정리합니다. 왜 OpenSearch 벡터 검색인가? 많은 기업에서 이미 Elasticsearch 또는 OpenSearch를 로그, 검색, 운영 데이터 저장소로 사용하고 있습니다.이런 환경에 새로 LLM 기반 RAG 시스템을 도입할 때 가장 이상적인 방법은 기존 인프라를 그대로 활용하는 것입니다. OpenSearch는 최근 버전부터 Dense Vector Field와 k-NN 검색 기능을 공식 지원하고 있으며,Spring 애플리케이션에서 바로 연..
-
Spring AI 시리즈 9화 – RAG 구축하기 (4): 문서 포맷 처리와 Text Chunking 전략기술과 산업/언어 및 프레임워크 2025. 6. 22. 13:19
RAG 시스템에서 문서 기반 응답을 구성하려면 다양한 문서 포맷을 파싱하고 의미 있는 단위로 분할하는 청크 전략이 핵심입니다. Spring AI의 문서 처리 컴포넌트 사용법과 실전에서 적용 가능한 Text Chunking 기법을 정리합니다. 문서를 넣으면 “LLM이 알아서 다 한다”? 많은 개발자들이 이렇게 생각합니다. “PDF나 HTML을 넣으면 GPT가 알아서 문서를 읽고 답해주겠지.” 그러나 실제로는 그렇지 않습니다.LLM은 길고 복잡한 문서를 한 번에 잘라내서 던져주면 오히려 문맥을 잃고 무의미한 답을 할 확률이 높습니다. 따라서 문서를 LLM이 이해할 수 있는 단위로 잘게 쪼개는 작업,즉 Text Chunking 전략이 RAG 시스템의 응답 품질을 좌우합니다. Spring AI의 문서 처리 ..
-
Spring AI 시리즈 8화 – RAG 구축하기 (3): VectorStore 비교와 확장 전략기술과 산업/언어 및 프레임워크 2025. 6. 16. 18:57
RAG 시스템에서 핵심적인 컴포넌트인 VectorStore의 선택과 확장은 응답 품질과 성능에 직결됩니다. Chroma, Milvus, Weaviate, pgvector 등 주요 Vector DB들의 차이를 비교하고, Spring AI에서의 적용 방식을 전략적으로 분석합니다. VectorStore 선택, RAG의 품질을 결정한다 RAG 시스템을 구축할 때 가장 많은 시간과 고민이 들어가는 영역 중 하나가 바로 VectorStore 선택입니다.단순히 “벡터를 저장하는 곳”이라기보다는, 질문과 가장 밀접한 문서를 어떻게 빠르고 정확하게 찾아낼 수 있는가를 결정짓는 핵심 컴포넌트이기 때문입니다. LLM이 아무리 뛰어나더라도, 검색된 문서가 엉뚱하면 결과는 부정확하고 불안정할 수밖에 없습니다.따라서 이 글에서..
-
Spring AI 시리즈 7화 – RAG 구축하기 (2): Chroma 연동 실습과 문서 기반 검색기술과 산업/언어 및 프레임워크 2025. 6. 9. 19:24
Spring AI에서 Chroma Vector DB를 연동해 RAG 시스템을 구성하는 방법을 실습 중심으로 소개합니다. 문서 인덱싱, 벡터 저장, 유사도 기반 검색, LLM 응답까지의 전체 파이프라인을 구성합니다. 이전 글에서 우리는 RAG의 구조와 Vector Store의 역할에 대해 분석했습니다.이번 글에서는 그 개념을 실제 코드로 구현해보는 단계입니다.Spring AI가 제공하는 Chroma 연동 기능을 활용해 문서를 벡터로 저장하고,유사 문서를 검색한 뒤 LLM에 전달하는 전 과정을 구현해보겠습니다.개발 환경 준비Java 17+Spring Boot 3.2.xSpring AI 0.8.0Chroma (로컬 실행)OpenAI 또는 Hugging Face API 키1. 의존성 추가Chroma와 Embed..
-
Spring AI 시리즈 6화 – RAG 구축하기 (1): Vector Store란 무엇인가기술과 산업/언어 및 프레임워크 2025. 6. 5. 12:19
RAG(Retrieval-Augmented Generation)는 외부 지식과 LLM을 결합해 보다 정확한 응답을 생성하는 대표적인 아키텍처입니다. 본 글에서는 RAG의 개념과 핵심 요소인 Vector Store의 구조와 역할, Spring AI에서의 구현 방식을 심층적으로 분석합니다. RAG, 이제 선택이 아닌 기본 전략이 되다 LLM을 활용한 서비스에서 자주 나오는 요구사항이 있습니다. “GPT에게 우리 회사 메뉴얼을 학습시켜야 합니다.”“PDF 문서를 기반으로 답을 해줬으면 해요.”“특정 용어는 우리 업계 기준에 맞게 설명되었으면 좋겠어요.” 이런 요구는 단순한 텍스트 생성만으로는 충족되지 않습니다.바로 이때 등장하는 전략이 **RAG(Retrieval-Augmented Generation)**입니..
-
Spring AI 시리즈 5화 – Prompt Template과 Prompt Engineering 전략기술과 산업/언어 및 프레임워크 2025. 6. 3. 11:47
Spring AI에서 제공하는 PromptTemplate 기능을 바탕으로, LLM 응답을 더 정밀하게 제어할 수 있는 프롬프트 설계 전략을 살펴봅니다. 다양한 실전 예시와 함께 Prompt Engineering의 핵심 개념을 정리합니다. 우리가 GPT나 Hugging Face 모델을 쓸 때 가장 많이 하는 실수 중 하나는 이겁니다.그냥 질문만 던지고 결과가 별로면 모델 탓을 한다는 거죠.사실 LLM의 성능은 모델의 파라미터 수나 학습 데이터만으로 결정되지 않습니다.**어떻게 질문하느냐(Prompting)**도 그 못지않게 중요합니다.프롬프트 엔지니어링(Prompt Engineering)은 이 “질문 설계”를 통해 원하는 출력을 이끌어내는 기술입니다.Spring AI는 이걸 위한 도구로 PromptTemp..
-
Spring AI 시리즈 2화 – Spring AI 프로젝트 구조와 주요 모듈 개요기술과 산업/언어 및 프레임워크 2025. 5. 30. 18:03
Spring AI는 OpenAI, Hugging Face, Chroma 등 다양한 AI 서비스를 선언적으로 연동할 수 있도록 돕는 Spring 기반 프레임워크입니다. 본 글에서는 프로젝트 구조와 주요 모듈 역할을 중심으로, Spring AI의 구성 원리를 소개합니다. AI 기능을 애플리케이션에 녹여내기 위해 Spring AI를 도입하려 할 때, 가장 먼저 부딪히는 질문은 이것입니다. “Spring AI는 정확히 어떤 구조로 구성돼 있고, 어떤 모듈을 어떻게 의존해야 하지?” 이 질문은 단순히 설정을 어떻게 하느냐를 넘어,AI 기능을 어떻게 확장할 수 있는가,어떤 모듈이 어떤 기능을 담당하는가,그리고내가 사용하는 LLM과 Vector DB는 어떤 식으로 연동되는가를 이해하는 데 매우 중요합니다. 이번 글..