Spring AI ChatOptions
1. ChatOptions 인터페이스
- 단순히 질문(프롬프트)만 던지는 것이 아니라, AI의 창의성, 응답 길이, 사용할 모델 종류 등을 디테일하게 제어할 수 있게 해주는 핵심 컴포넌트
- ChatOptions 인터페이스의 핵심 파라미터들
-- model (모델 선택): 어떤 AI 모델을 사용할지 지정합니다. (예: gpt-4o-mini, o1-mini, gemma:2b 등)
-- temperature (온도/창의성): 0.0 ~ 1.0 (또는 2.0) 사이의 값을 가집니다. 값이 낮을수록 딱딱하고 일관된 정답을 내놓고, 값이 높을수록 창의적이고 예상치 못한 답변을 내놓습니다.
-- maxTokens(최대 길이): AI가 생성할 수 있는 답변의 최대 길이를 제한합니다. 무한정 긴 답변을 막고 비용을 통제하기 위해 사용합니다.
-- TopK & TopP(음식 고르기 전략 비유)
--- TopK (개수 제한)
--- 비유: "무조건 판매량 상위 10개 메뉴 안에서만 골라!
--- 단점: 11위가 사실은 오늘 가장 신선하고 맛있는 음식이어도, 무조건 1~10위 안에서만 골라야 하니 선택지가 좁아집니다.
--- TopP (확률 누적 제한)
--- 비유: "맛있는 순서대로 담아서, 총 만족도가 90%가 될 때까지 담아!"
--- 장점: 메뉴가 인기가 많든 적든, '어느 정도 맛이 보장된 수준'까지는 유연하게 후보를 늘렸다 줄였다 합니다. 그래서 요즘 훨씬 똑똑하다고 평가받습니다.
2. ChatResponse
- AI에게 질문을 던졌을 때, AI가 그 질문에 대해 답변을 생성한 뒤 되돌려주는 완성된 결과물 꾸러미
- Prompt(질문)가 입력이라면, ChatResponse는 그에 대한 종합 결과 보고서
- 단순히 답변 텍스트만 들어있는 게 아니라, AI가 답변을 만들기 위해 사용한 비용, 시간, 상태 등 다양한 정보가 담겨 있음
- ChatResponse의 핵심 구조
-- Result (답변의 알맹이)
--- AI가 생성한 실제 답변(텍스트)이 들어있는 핵심 부분입니다.
-- Metadata (운영 정보)
--- 모델 정보: 어떤 모델이 답변을 만들었는지(gpt-4o-mini 등) 알려줍니다.
-- Status (통신 상태)
--- 답변이 정상적으로 완성되었는지, 아니면 도중에 끊겼는지(예: 토큰 제한 도달) 상태를 알려줍니다.
3. Advisor
- Spring AI의 Advisor는 ChatClient 요청과 응답 사이에 끼어드는 인터셉터
-- Spring Web의 Interceptor 개념을 완벽히 계승했다.
-- 애플리케이션과 LLM 사이의 요청/응답 흐름을 가로채서(Intercept) 전처리와 후처리를 수행한다.
-- 전처리 작업은 주로 프롬프트에 컨텍스트(Context, 문맥)를 추가하는 과정을 의미한다.
-- 후처리 작업은 주로 LLM의 응답을 검사하고, 애플리케이션이 요구히는 형식으로 변환하는 과정을 의미
댓글
댓글이 없습니다.
