spring-ai
-
이번 포스트에서는 일반 text 문서, json data, pdf 등 다양한 입력 소스에서 값을 읽어 embedding 시키기 위한 ETL Pipeline에 대해 살펴보자. ETL Pipeline 정의앞서 살펴봤던 ETL Pipeline에 대해서 다시 한번 정리하고 가자. ETL(Extract, Transform, Load)는 데이터 소스에서 정보를 읽고 원하는 형태로 변형하여 저장소에 로드하는 과정이다.ETL Pipeline에는 크게 3가지 객체가 사용된다.DocumentReader: Supplier>의 구현체로 json, markdown, pdf, text 등에서 데이터 수집DocumentTransformer: Function, List>의 구현체로 수집된 Document를 원하는 형태로 변환Do..
04.ETL Pipeline이번 포스트에서는 일반 text 문서, json data, pdf 등 다양한 입력 소스에서 값을 읽어 embedding 시키기 위한 ETL Pipeline에 대해 살펴보자. ETL Pipeline 정의앞서 살펴봤던 ETL Pipeline에 대해서 다시 한번 정리하고 가자. ETL(Extract, Transform, Load)는 데이터 소스에서 정보를 읽고 원하는 형태로 변형하여 저장소에 로드하는 과정이다.ETL Pipeline에는 크게 3가지 객체가 사용된다.DocumentReader: Supplier>의 구현체로 json, markdown, pdf, text 등에서 데이터 수집DocumentTransformer: Function, List>의 구현체로 수집된 Document를 원하는 형태로 변환Do..
2025.06.07 -
이번 포스트에서는 RAG를 위한 Spring AI의 지원을 살펴보자. RAG RAG란Retrieval Augmented Generation(RAG: 검색 증강 생성)는 긴 형식의 콘텐츠 처리에 대한 어려움, 사실의 정확성, 맥락 인식의 어려움 등 문제를 해결하기 위한 기술이다. 모델이 학습 데이터에 포함되지 않은 외부 데이터를 실시간으로 검색(retrieval)하고 이를 기존 지식에 보강(Augmented) 해서 답변을 생성(generation)하는 것을 의미한다.Spring AI는 모듈형 아키텍쳐를 제공하여 사용자가 직접 맞춤형 RAG 흐름을 구축하거나 Advisor API를 사용하여 RAG 흐름을 이용할 수 있도록 지원한다. ETL Pipeline과 DocumentRAG의 출발은 데이터를 쌓는 것..
03. RAG와 QuestionAnswerAdvisor이번 포스트에서는 RAG를 위한 Spring AI의 지원을 살펴보자. RAG RAG란Retrieval Augmented Generation(RAG: 검색 증강 생성)는 긴 형식의 콘텐츠 처리에 대한 어려움, 사실의 정확성, 맥락 인식의 어려움 등 문제를 해결하기 위한 기술이다. 모델이 학습 데이터에 포함되지 않은 외부 데이터를 실시간으로 검색(retrieval)하고 이를 기존 지식에 보강(Augmented) 해서 답변을 생성(generation)하는 것을 의미한다.Spring AI는 모듈형 아키텍쳐를 제공하여 사용자가 직접 맞춤형 RAG 흐름을 구축하거나 Advisor API를 사용하여 RAG 흐름을 이용할 수 있도록 지원한다. ETL Pipeline과 DocumentRAG의 출발은 데이터를 쌓는 것..
2025.06.06 -
이번 포스트에서는 Vector Database에 대해 알아보자. Vector Database 개요Vector DB는 AI 애플리케이션에서 RAG 서비스를 위해 필수적인 역할을 수행하는 특수한 유형의 DB이다. RAG는 모델이 가지고 있지 않은 데이터를 DB 등에서 검색해서 컨텍스트를 보완 후 사용하는 서비스다. 모델이 학습한 데이터는 벡터화 되어있기 때문에 보완할 데이터 역시 벡터 형태로 저장되어야 한다. Vector DB는 기존의 RDBMS처럼 정확히 일치하는 데이터를 찾는 대신 유사도 검색을 수행한다. 쿼리가 벡터로 주어지면 벡터 DB는 쿼리 벡터와 유사한 벡터를 반환한다.벡터 DB는 데이터를 AI 모델과 통합하는데 사용된다. 사용의 첫 번째 단계는 데이터를 벡터 DB에 로드하는 것이다. 그런 다..
02. Vector Database이번 포스트에서는 Vector Database에 대해 알아보자. Vector Database 개요Vector DB는 AI 애플리케이션에서 RAG 서비스를 위해 필수적인 역할을 수행하는 특수한 유형의 DB이다. RAG는 모델이 가지고 있지 않은 데이터를 DB 등에서 검색해서 컨텍스트를 보완 후 사용하는 서비스다. 모델이 학습한 데이터는 벡터화 되어있기 때문에 보완할 데이터 역시 벡터 형태로 저장되어야 한다. Vector DB는 기존의 RDBMS처럼 정확히 일치하는 데이터를 찾는 대신 유사도 검색을 수행한다. 쿼리가 벡터로 주어지면 벡터 DB는 쿼리 벡터와 유사한 벡터를 반환한다.벡터 DB는 데이터를 AI 모델과 통합하는데 사용된다. 사용의 첫 번째 단계는 데이터를 벡터 DB에 로드하는 것이다. 그런 다..
2025.06.06 -
Tool Calling(Tool: 함수)은 특정 시점을 기준으로 학습되서 닫힌 LLM이 외부 세계와 상호작용하거나 특정 작업을 수행할 수 있도록 하는 확장 기능으로 현재의 날씨를 가져오거나 계산을 수행하거나 이메일을 보내는 등의 부가적인 작업을 수행하게 하는 기능이다.이 기능은 모델이 Tool 기능을 지원 해야 사용 가능하다. qwen3같은 경우는 Tool을 지원하지만 gemma3는 지원하지 않는다.Overview Pre-Trained 된 LLM의 한계기본적으로 LLM은 특정 시점까지 훈련된 내용을 바탕으로 하기 때문에 현실감이 떨어질 수 있다. 따라서 LLM 외부 세계의 정보를 전달해서 현실감을 끌어올릴 필요가 있는데 이때 사용할 수 있는 기능 중 하나가 Tool Calling이다.이런 경우 사용할 수..
01. Tool CallingTool Calling(Tool: 함수)은 특정 시점을 기준으로 학습되서 닫힌 LLM이 외부 세계와 상호작용하거나 특정 작업을 수행할 수 있도록 하는 확장 기능으로 현재의 날씨를 가져오거나 계산을 수행하거나 이메일을 보내는 등의 부가적인 작업을 수행하게 하는 기능이다.이 기능은 모델이 Tool 기능을 지원 해야 사용 가능하다. qwen3같은 경우는 Tool을 지원하지만 gemma3는 지원하지 않는다.Overview Pre-Trained 된 LLM의 한계기본적으로 LLM은 특정 시점까지 훈련된 내용을 바탕으로 하기 때문에 현실감이 떨어질 수 있다. 따라서 LLM 외부 세계의 정보를 전달해서 현실감을 끌어올릴 필요가 있는데 이때 사용할 수 있는 기능 중 하나가 Tool Calling이다.이런 경우 사용할 수..
2025.06.05 -
이번 포스트에서는 ChatMemory를 사용하는 built in advisor들에 대해 살펴보자. Spring AI의 Built-in Advisors Spring AI의 Built-in AdvisorSpring AI는 앞서 소개한 SimpleLoggerAdvisor 외에도 다양한 Built-in Advisor들을 제공한다.Chat Memory AdvisorsChatMemory에 대화를 저장해 대화의 맥락을 유지하기 위한 AdvisorsMessageChatMemoryAdvisor: 대화 이력 전달prompt와 completion을 관리해서 대화의 맥락과 흐름 유지PromptChatMemoryAdvisor: 프롬프트 조작user message와 agent message(completion)을 이용해서 새로..
02. ChatMemory이번 포스트에서는 ChatMemory를 사용하는 built in advisor들에 대해 살펴보자. Spring AI의 Built-in Advisors Spring AI의 Built-in AdvisorSpring AI는 앞서 소개한 SimpleLoggerAdvisor 외에도 다양한 Built-in Advisor들을 제공한다.Chat Memory AdvisorsChatMemory에 대화를 저장해 대화의 맥락을 유지하기 위한 AdvisorsMessageChatMemoryAdvisor: 대화 이력 전달prompt와 completion을 관리해서 대화의 맥락과 흐름 유지PromptChatMemoryAdvisor: 프롬프트 조작user message와 agent message(completion)을 이용해서 새로..
2025.06.01 -
이번 포스트에서는 Model의 multimodality에 대해 살펴보자. Multimodality API Multimodality란?인간이 무언가를 인식하는 방법은 단순히 텍스트 뿐만은 아니라 시각, 청각, 텍스트 등 다양하다. 우리가 학습하는 방식과 경험을 multimodal이라고 한다.초창기의 모델은 단일 modality를 처리하도록 제작되었으나 최근의 모델들은 인간처럼 multi modal을 지원하기 시작했다. 예를 들어 OpenAI의 GPT-4o, Google의 Vertex AI Gemini 1.5, Anthropic의 Claude3, 오픈 소스 제품인 Llama3.2, LLaVA 및 BakLLaVA는 텍스트 이미지, 오디오 및 비디오를 포함한 여러 입력을 수용하고 이러한 입력을 통합하여 텍스트 ..
04.Multimodal이번 포스트에서는 Model의 multimodality에 대해 살펴보자. Multimodality API Multimodality란?인간이 무언가를 인식하는 방법은 단순히 텍스트 뿐만은 아니라 시각, 청각, 텍스트 등 다양하다. 우리가 학습하는 방식과 경험을 multimodal이라고 한다.초창기의 모델은 단일 modality를 처리하도록 제작되었으나 최근의 모델들은 인간처럼 multi modal을 지원하기 시작했다. 예를 들어 OpenAI의 GPT-4o, Google의 Vertex AI Gemini 1.5, Anthropic의 Claude3, 오픈 소스 제품인 Llama3.2, LLaVA 및 BakLLaVA는 텍스트 이미지, 오디오 및 비디오를 포함한 여러 입력을 수용하고 이러한 입력을 통합하여 텍스트 ..
2025.06.01 -
이번 포스트에서는 효율적인 Prompting 기법에 대해 살펴보자. 주 내용은 다음을 참조한다.https://docs.spring.io/spring-ai/reference/api/chat/prompt-engineering-patterns.html Prompt Engineering Patterns :: Spring AI ReferenceSpring AI provides an elegant Java API for implementing all major prompt engineering techniques. By combining these techniques with Spring’s powerful entity mapping and fluent API, developers can build sophisti..
03. Prompt Engineering Pattern이번 포스트에서는 효율적인 Prompting 기법에 대해 살펴보자. 주 내용은 다음을 참조한다.https://docs.spring.io/spring-ai/reference/api/chat/prompt-engineering-patterns.html Prompt Engineering Patterns :: Spring AI ReferenceSpring AI provides an elegant Java API for implementing all major prompt engineering techniques. By combining these techniques with Spring’s powerful entity mapping and fluent API, developers can build sophisti..
2025.05.31 -
이번 포스트에서는 ChatClient를 이용해 모델과 소통해보자. ChatClient 설정 ChatClient 기본 설정ChatClient는 ChatModel을 통해서 구성하는데 다음의 3단계로 설정이 진행될 수 있다.application.properties에 설정된 내용 활용(spring.ai.ollama.chat.options.temperature) 등ChatClient 빈 생성 시 defaultXXX 메서드를 이용한 기본 설정서비스에서 ChatClient의 prompt()를 통한 얻은 ChatClientRequestSpec를 통한 설정 수정설정은 1>2>3으로 재정의된다. 1번 방식은 하나의 ChatModel을 이용할 때 간단히 사용할 수 있고 일반적으로 2번 방식을 활용 할 일이 많다. 특별한 ..
02. ChatClient API 사용이번 포스트에서는 ChatClient를 이용해 모델과 소통해보자. ChatClient 설정 ChatClient 기본 설정ChatClient는 ChatModel을 통해서 구성하는데 다음의 3단계로 설정이 진행될 수 있다.application.properties에 설정된 내용 활용(spring.ai.ollama.chat.options.temperature) 등ChatClient 빈 생성 시 defaultXXX 메서드를 이용한 기본 설정서비스에서 ChatClient의 prompt()를 통한 얻은 ChatClientRequestSpec를 통한 설정 수정설정은 1>2>3으로 재정의된다. 1번 방식은 하나의 ChatModel을 이용할 때 간단히 사용할 수 있고 일반적으로 2번 방식을 활용 할 일이 많다. 특별한 ..
2025.05.30