diff --git a/src/main/kotlin/me/misik/api/app/CreateReviewFacade.kt b/src/main/kotlin/me/misik/api/app/CreateReviewFacade.kt index ff128d7..8c46dff 100644 --- a/src/main/kotlin/me/misik/api/app/CreateReviewFacade.kt +++ b/src/main/kotlin/me/misik/api/app/CreateReviewFacade.kt @@ -4,6 +4,8 @@ import com.fasterxml.jackson.databind.ObjectMapper import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.filterNot import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.withTimeout import me.misik.api.api.response.ParsedOcrResponse import me.misik.api.core.Chatbot import me.misik.api.core.GracefulShutdownDispatcher @@ -18,6 +20,7 @@ import me.misik.api.domain.request.CreateReviewRequest import me.misik.api.domain.request.OcrTextRequest import org.slf4j.LoggerFactory import org.springframework.stereotype.Service +import kotlin.time.Duration.Companion.milliseconds @Service class CreateReviewFacade( @@ -75,8 +78,12 @@ class CreateReviewFacade( } fun parseOcrText(ocrText: OcrTextRequest): ParsedOcrResponse { - val prompt = promptService.findAllByType(PromptType.OCR).first() - return parseOcrWithRetry(prompt, ocrText, 0) + return runBlocking(GracefulShutdownDispatcher.dispatcher) { + withTimeout(10.milliseconds) { + val prompt = promptService.findAllByType(PromptType.OCR).first() + parseOcrWithRetry(prompt, ocrText, 0) + } + } } private fun parseOcrWithRetry( diff --git a/src/main/kotlin/me/misik/api/domain/ReviewStyle.kt b/src/main/kotlin/me/misik/api/domain/ReviewStyle.kt index adaf6a2..ad979d5 100644 --- a/src/main/kotlin/me/misik/api/domain/ReviewStyle.kt +++ b/src/main/kotlin/me/misik/api/domain/ReviewStyle.kt @@ -4,4 +4,6 @@ enum class ReviewStyle(val iconUrl: String) { PROFESSIONAL("https://kr.object.ncloudstorage.com/misik/review-style/professional-icon.png"), FRIENDLY("https://kr.object.ncloudstorage.com/misik/review-style/friendly-icon.png"), CUTE("https://kr.object.ncloudstorage.com/misik/review-style/cute-icon.png"), + OCR("NOT_USE"), + ; } diff --git a/src/main/kotlin/me/misik/api/domain/response/ReviewStylesResponse.kt b/src/main/kotlin/me/misik/api/domain/response/ReviewStylesResponse.kt index 6e0e499..5526306 100644 --- a/src/main/kotlin/me/misik/api/domain/response/ReviewStylesResponse.kt +++ b/src/main/kotlin/me/misik/api/domain/response/ReviewStylesResponse.kt @@ -6,10 +6,11 @@ data class ReviewStylesResponse( val reviewStyles: List ) { companion object { - fun from(reviewStyles: List) : ReviewStylesResponse { + fun from(reviewStyles: List): ReviewStylesResponse { return ReviewStylesResponse( - reviewStyles.map { ReviewStyleResponse.from(it) } + reviewStyles.filterNot { it != ReviewStyle.OCR } + .map { ReviewStyleResponse.from(it) } ) } } -} \ No newline at end of file +}