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 기반 문서 검색
    • 검색 결과를 활용한 텍스트 생성
  • 최신성·정확성 확보에 유리

Tool Calling

  • 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
    • RAG 패턴 기반 질의응답
  • Content Safety Advisor
    • SafeGuardAdvisor를 통한 유해 콘텐츠 방지

사용자 정의 Advisor

  • ReReadingAdvisor
    • 모델의 추론 정확도를 높이기 위한 재검토 기법

results matching ""

    No results matching ""