실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
slug
understanding-spring-ai-chat-options
type
post
updatedAt
✅ 1. Spring AI Prompts란 무엇일까?
흔히 AI에게 질문을 던질 때 하나의 긴 텍스트 문장만 보낸다고 생각하기 쉬움. 하지만 Spring AI에서 AI 모델로 전달되는 최종 형태는 문자열이 아니라 Prompt라는 전용 객체임
Prompt 객체의 내부 구조
List<Message> : 대화의 맥락을 구성하는 여러 종류의 메시지 묶음
ChatOptions : 온도(Temperature), 사용할 모델명(GPT-4)와 같은 AI 실행 옵션
✅ 2. Chat Options란 무엇일까?
우리가 스마트폰 카메라를 사용할 때도, 자동 모드로 찍을 수도 있지만 더 퀄리티 높은 사진 촬영을 위해 프로 모드로 들어가서 ISO, 셔터 스피드, 화이트 밸런스 같은 상세값을 조절하곤 한다.
Chat Options는 바로 AI 모델의 프로 모드 설정이라고 생각하면 된다.
AI가 답변을 생성할 때 얼마나 창의적일지, 얼마나 길게 말할지 등 응답의 특성을 제어할 수 있는 공통 옵션 설정
✅ 3. 핵심 공통 옵션
Temperature(온도)
응답이 얼마나 창의적이고 무작위적으로 생성될지 결정
0.0 ~ 0.3(낮은 온도)
매우 결정적이고 일관된 응답
언제 물어봐도 똑같이 정답을 말해야 하는 사실 기반 답변, 데이터 분류, 코드 생성에 적합
0.4 ~ 0.7(중간 온도)
균형 잡힌 응답
일반적인 대화나 정보 제공용 챗봇에 가장 많이 쓰는 표준 값
0.8 ~ 1.0(높은 온도)
창의적이고 다양한 응답
엉뚱하고 기발한 생각이 필요한 스토리텔링, 소설 쓰기, 아이디어 브레인스토밍에 적합
Output Length (최대 길이 제한)
모델이 한 번에 생성할 수 있는 최대 토큰 수를 제한
5 ~ 25
한두 단어, 짧은 구절, 혹은 "긍정/부정" 같은 분류 라벨
50 ~ 500
하나의 깔끔한 문단이나 짧은 설명을 원할 때 적합
1000+
장문의 글, 소설 스토리, 복잡한 로직의 아키텍처 설명
Sampling Controls (샘플링 제어)
AI가 다음에 올 단어(토큰) 후보군을 추려내는 고도의 필터링 기법
Top-K(상위 K개 필터링)
다음 토큰을 선택할 때, 확률이 가장 높은 상위 K개의 토큰으로만 후보군을 제한
값이 클수록 다양한 단어가 섞여 나와 다양성이 증가하고, 작을수록 늘 쓰던 단어만 써서 결정적인 답변이 나옴
OpenAI의 모델(GPT 시리즈)들은 이 Top-K 옵션을 지원하지 않으니 주의할 것!
Top-P (누적 확률 필터링 / Nucleus Sampling)
후보 단어들을 확률 높은 순으로 줄 세운 뒤, 누적 확률이 P(예: 90%)를 초과하기 전까지만 동적으로 단어 후보군을 선택
상위 90%의 안전한 단어들 안에서만 고르게 하므로 문맥이 꼬이지 않으면서도 자연스러운 변화를 줌
일반적으로 0.8 ~ 0.95 사이의 값을 사용
💁♀️
정답은 없지만 일반적으로 금융 챗봇을 만든다면 Temperature를 0.1로 낮춰서 절대 거짓말(환각 현상)을 안 하도록 묶어야 하고, 반대로 카피라이팅 AI를 만든다면 0.9로 높이는 게 좋습니다. 프로그래밍적으로 이 레버들을 조절하는 것이 백엔드 엔지니어의 핵심 역할임을 기억하세요!