오늘은 STOMP와 AI(ChatGPT) 연동을 활용한 WebSocket 확장에 대해 학습했다.
기본 WebSocket의 한계를 보완하기 위해 STOMP 프로토콜과 AI 챗봇을 추가로 적용해봤습니다.
application.yml)AiService)@Service
public class AiService {
@Value("${spring.ai.openai.api-key}")
private String openAiApiKey;
public String getChatbotResponse(String question) {
String prompt = "1. 반갑게 인사를 해주고 내 말에 따듯한 반응을 해줘. "
+ "2. 최대한 짧게 말해줘. "
+ "3. 내가 한 말은: " + question;
OpenAiApi openAiApi = OpenAiApi.builder().apiKey(openAiApiKey).build();
ChatModel chatModel = OpenAiChatModel.builder().openAiApi(openAiApi).build();
return ChatClient.create(chatModel).prompt(prompt).call().content();
}
}
1) 클라이언트가 WebSocket을 통해 메시지 전송
2) 서버가 AI(ChatGPT) 응답을 생성
3) WebSocket을 통해 클라이언트에게 응답 전달
AI 챗봇 기능 추가 시 이점
AI(ChatGPT)와 결합하면 실시간 대화형 서비스가 더욱 지능적으로 확장될 수 있다는 점이 흥미로웠다.
추가적으로 RabbitMQ 같은 외부 메시지 브로커 연동도 시도하고 공부해야겠다.