서론

image.png

초록스터디 디스코드 채널에 Spring AI 클로즈 베타 참가자 모집 글이 올라왔다. 주어진 요구사항을 해결하며 Spring AI에 대해 학습하고, 실무에서 발생하는 문제를 경험할 수 있음을 글을 통해 확인할 수 있었다. 내가 ㅂ타 참가자에 신청한 이유는 다음과 같다.

이번 글에서는 1주차 동안 진행한 내용을 다룰 것이다.

본론

Spring AI

OpenAI, Claude와 같은 AI API를 스프링에서 호출하기 위해서는 RestTemplate와 같은 HTTP 통신 클래스를 사용해야했다. API 호출 후에도 응답값 파싱 등 부가적인 로직을 개발자가 직접 구현해야하는 번거러움이 존재했다. 또한, 여러 AI 벤더가 존재하기 때문에 사용하던 AI 벤더를 변경한다면 그에 맞도록 코드를 수정해야하는 번거러움이 존재했다.

Spring AI에서는 여러 AI 벤더를 추상화하고, AI를 Spring의 개발 철학에 맞게 사용할 수 있도록 API를 제공해주는 프레임워크로 이해했다.

요구사항

리파지토리는 https://github.com/cho-log/spring-ai-bootcamp-basic에서 확인할 수 있다.

내가 이해한 요구사항의 큰 틀은 다음과 같다.

  1. 제공되는 데이터(FAQ, Policy, Chatlog)를 모두 활용하고, OpenAI API를 사용하여 챗봇을 구현한다.
  2. 제공된 스크립트를 통해 테스트 질문 150개의 검증을 모두 통과한다.

여기서 OpenAI API는 ChatClient 를 통해 호출하고, 모든 응답값에는 토큰 사용량을 반환해야한다.

환경 파악

요구사항을 해결하기 위해 우선적으로 프로젝트 환경을 파악했다. 제공된 데이터는 다음과 같았다.