2025-12-14
오늘 배운 것
Spring AI
1. Spring AI 기본 컨셉
Spring AI
- 애플리케이션에 AI 기능을 쉽게 통합하기 위한 모듈형 프레임워크
- 엔터프라이즈 애플리케이션의 데이터와 API를 생성형 AI 모델과 연결하는 데 최적화
- 주요 특징
- 다양한 AI 서비스 제공자(OpenAI, Anthropic, Google, MS 등)를 공통 API로 지원
- Chat, Text-to-Image, Embedding 모델 지원
- 동기식 호출과 스트리밍 API 모두 지원
Model
- 정보를 처리하고 생성하도록 설계된 알고리즘
- 대규모 데이터 학습을 통해 추론, 텍스트, 이미지 등 다양한 출력 생성
- GPT 계열 모델은 사전 학습(pre-trained)을 통해 범용적인 활용 가능
Prompt
- 모델이 수행할 작업을 정의하는 입력 지침
- 모델의 응답 품질은 프롬프트 설계에 크게 의존
- 명확한 역할, 목표, 출력 형식을 포함할수록 결과 품질이 향상됨
Embeddings
- 텍스트·이미지 등의 고차원 데이터를 저차원 벡터로 변환
- 의미적 유사도를 수치적으로 표현 가능
- 활용 사례
- 문서 검색
- 추천 시스템
- RAG 시스템에서 외부 지식 검색
Tokens
- 모델이 텍스트를 처리하는 최소 단위
- 입력과 출력 모두 토큰 단위로 계산됨
- 컨텍스트 윈도우
- 한 번의 요청에서 모델이 처리할 수 있는 최대 토큰 수
- 초과 시 텍스트 분할(chunking) 필요
- Spring AI는 분할 및 관리 작업을 지원
Structured Output Converter
- LLM 출력은 기본적으로 문자열 형태
- JSON 등 구조화된 응답을 POJO로 변환하기 위한 변환기 제공
- 타입 안정성과 후처리 편의성 향상
Pre-Trained 모델 활용 강화 방식
- Fine Tuning
- 모델 내부 가중치 조정
- 고비용·고난이도, 폐쇄형 모델은 불가
- Prompt Stuffing (RAG)
- Tool Calling
- 외부 API나 사용자 정의 로직을 LLM과 연동
RAG (Retrieval Augmented Generation)
- 검색 기반 정보 + 생성형 응답 결합
- 구성 요소
- 벡터 DB 기반 문서 검색
- 검색 결과를 활용한 텍스트 생성
- 최신성·정확성 확보에 유리
- LLM의 한계를 보완하기 위한 외부 시스템 연계 방식
- Spring AI에서는 @Tool 어노테이션 기반으로 함수 정의 가능
2. Chat Client API
ChatModel
- 텍스트 기반 대화 모델 인터페이스
- 주요 메서드
- call(): 동기 호출
- stream(): 비동기 스트리밍 호출
ChatClient
- 복잡한 대화 흐름 관리에 특화된 고수준 API
- 특징
- Advisor 체인을 통한 전·후처리
- Tool Calling 지원
- 대화 메모리 관리 가능
Prompt와 Message
- Prompt는 여러 Message 타입으로 구성
- System: 역할·규칙 정의
- User: 사용자 입력
- Assistant: 모델 응답
- Tool: 도구 호출 관련 메시지
ChatOptions
- 모델 동작 방식 제어 옵션
- temperature, maxTokens 등 설정 가능
- application.properties 또는 코드에서 설정
ChatResponse
- 모델의 응답(Generation)을 포함하는 객체
- 메타데이터와 출력 결과를 함께 관리
Prompt Template
- 프롬프트를 템플릿화하여 재사용
- StringTemplate 기반
- Map 형태로 동적 값 주입
3. Structured Output
Structured Output API
- 응답을 JSON 등 구조화된 형태로 반환
- 다양한 Converter 제공
- ChatClient에서 특정 타입 응답 유도 가능
4. Multimodal
Multimodal 지원
- 텍스트 외 이미지, 오디오, 비디오 입력 처리 가능
- 모델별 지원 Modal 확인 필요
활용 예
5. Advisor API
개요
- AI 요청/응답 흐름을 가로채 전·후처리 수행
- 반복 로직 캡슐화 및 재사용 가능
- Advisor 체인을 통해 순차 실행
전처리 기능
후처리 기능
주요 Advisor
- SimpleLoggerAdvisor
- Chat Memory Advisors
- MessageChatMemoryAdvisor
- PromptChatMemoryAdvisor
- VectorStoreChatMemoryAdvisor
- QuestionAnswerAdvisor
- Content Safety Advisor
- SafeGuardAdvisor를 통한 유해 콘텐츠 방지
사용자 정의 Advisor
- ReReadingAdvisor
- 모델의 추론 정확도를 높이기 위한 재검토 기법