@@ -14,7 +14,7 @@ import org.springframework.stereotype.Service
1414class AiChatService (
1515 private val aiChatMessageRepository : AiChatMessageRepository ,
1616 private val aiChatSessionRepository : AiChatSessionRepository ,
17- private val chatClient : ChatClient
17+ private val chatClient : ChatClient ,
1818) {
1919 fun getSessions (userId : Long ): List <AiChatSession > {
2020 return aiChatSessionRepository.findByUserIdOrderByCreatedAtDesc(userId)
@@ -25,46 +25,62 @@ class AiChatService(
2525 return aiChatSessionRepository.save(newSession)
2626 }
2727
28- fun deleteSession (sessionId : Long , userId : Long ) {
29- val session = aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
30- ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 삭제 권한이 없습니다." )
28+ fun deleteSession (
29+ sessionId : Long ,
30+ userId : Long ,
31+ ) {
32+ val session =
33+ aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
34+ ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 삭제 권한이 없습니다." )
3135
3236 aiChatSessionRepository.deleteById(sessionId)
3337 }
3438
35- fun getSessionMessages (sessionId : Long , userId : Long ): List <AiChatMessage > {
36- val session = aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
37- ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 접근 권한이 없습니다." )
39+ fun getSessionMessages (
40+ sessionId : Long ,
41+ userId : Long ,
42+ ): List <AiChatMessage > {
43+ val session =
44+ aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
45+ ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 접근 권한이 없습니다." )
3846
3947 return aiChatMessageRepository.findByAiChatSessionIdOrderByCreatedAtAsc(sessionId)
4048 }
4149
42- fun sendMessage (sessionId : Long , userId : Long , message : String ): Pair <AiChatMessage , AiChatMessage > {
43- val session = aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
44- ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 접근 권한이 없습니다." )
50+ fun sendMessage (
51+ sessionId : Long ,
52+ userId : Long ,
53+ message : String ,
54+ ): Pair <AiChatMessage , AiChatMessage > {
55+ val session =
56+ aiChatSessionRepository.findByIdAndUserId(sessionId, userId)
57+ ? : throw IllegalArgumentException (" 해당 채팅방이 없거나 접근 권한이 없습니다." )
4558
46- val userMessage = AiChatMessage (
47- aiChatSession = session,
48- senderType = SenderType .USER ,
49- content = message
50- )
59+ val userMessage =
60+ AiChatMessage (
61+ aiChatSession = session,
62+ senderType = SenderType .USER ,
63+ content = message,
64+ )
5165 val savedUserMessage = aiChatMessageRepository.save(userMessage)
5266
53- val response = try {
54- chatClient.prompt()
55- .system(KOREA_TRAVEL_GUIDE_SYSTEM )
56- .user(message)
57- .call()
58- .content() ? : AI_ERROR_FALLBACK
59- } catch (e: Exception ) {
60- AI_ERROR_FALLBACK
61- }
67+ val response =
68+ try {
69+ chatClient.prompt()
70+ .system(KOREA_TRAVEL_GUIDE_SYSTEM )
71+ .user(message)
72+ .call()
73+ .content() ? : AI_ERROR_FALLBACK
74+ } catch (e: Exception ) {
75+ AI_ERROR_FALLBACK
76+ }
6277
63- val aiMessage = AiChatMessage (
64- aiChatSession = session,
65- senderType = SenderType .AI ,
66- content = response
67- )
78+ val aiMessage =
79+ AiChatMessage (
80+ aiChatSession = session,
81+ senderType = SenderType .AI ,
82+ content = response,
83+ )
6884 val savedAiMessage = aiChatMessageRepository.save(aiMessage)
6985 return Pair (savedUserMessage, savedAiMessage)
7086 }
0 commit comments