diff --git a/infrastructure/src/main/kotlin/com/dobby/external/prompt/ExperimentPostKeywordMapper.kt b/infrastructure/src/main/kotlin/com/dobby/external/prompt/ExperimentPostKeywordMapper.kt index 9d739bed..be7fdcc7 100644 --- a/infrastructure/src/main/kotlin/com/dobby/external/prompt/ExperimentPostKeywordMapper.kt +++ b/infrastructure/src/main/kotlin/com/dobby/external/prompt/ExperimentPostKeywordMapper.kt @@ -3,9 +3,7 @@ package com.dobby.external.prompt import com.dobby.enums.MatchType import com.dobby.enums.experiment.TimeSlot import com.dobby.enums.member.GenderType -import com.dobby.external.prompt.dto.ApplyMethodDto import com.dobby.external.prompt.dto.ExperimentPostKeywordDto -import com.dobby.external.prompt.dto.TargetGroupDto import com.dobby.model.experiment.keyword.ApplyMethodKeyword import com.dobby.model.experiment.keyword.ExperimentPostKeywords import com.dobby.model.experiment.keyword.TargetGroupKeyword @@ -18,37 +16,36 @@ class ExperimentPostKeywordMapper { return ExperimentPostKeywords( targetGroup = dto.targetGroup?.let { targetGroupDto -> TargetGroupKeyword( - startAge = targetGroupDto.startAge ?: 0, - endAge = targetGroupDto.endAge ?: 0, - genderType = targetGroupDto.genderType?.let { genderStr -> - when (genderStr) { - "MALE" -> GenderType.MALE - "FEMALE" -> GenderType.FEMALE - "ALL" -> GenderType.ALL - else -> GenderType.ALL + startAge = targetGroupDto.startAge, + endAge = targetGroupDto.endAge, + genderType = targetGroupDto.genderType?.let { + try { + GenderType.valueOf(it) + } catch (e: IllegalArgumentException) { + null } - } ?: GenderType.ALL, + }, otherCondition = targetGroupDto.otherCondition ) }, applyMethod = dto.applyMethod?.let { applyMethodDto -> ApplyMethodKeyword( - content = applyMethodDto.content ?: "", + content = applyMethodDto.content, isFormUrl = applyMethodDto.isFormUrl, - formUrl = applyMethodDto.formUrl ?: "", + formUrl = applyMethodDto.formUrl, isPhoneNum = applyMethodDto.isPhoneNum, - phoneNum = applyMethodDto.phoneNum ?: "" + phoneNum = applyMethodDto.phoneNum ) }, matchType = dto.matchType?.let { matchTypeStr -> try { MatchType.valueOf(matchTypeStr) } catch (e: IllegalArgumentException) { - MatchType.ALL + null } - } ?: MatchType.ALL, - reward = dto.reward ?: "", - count = dto.count ?: 0, + }, + reward = dto.reward, + count = dto.count, timeRequired = dto.timeRequired?.takeIf { it.isNotBlank() }?.let { timeSlotStr -> try { TimeSlot.valueOf(timeSlotStr) @@ -58,30 +55,4 @@ class ExperimentPostKeywordMapper { } ) } - - fun toDto(domain: ExperimentPostKeywords): ExperimentPostKeywordDto { - return ExperimentPostKeywordDto( - targetGroup = domain.targetGroup?.let { targetGroupDomain -> - TargetGroupDto( - startAge = targetGroupDomain.startAge, - endAge = targetGroupDomain.endAge, - genderType = targetGroupDomain.genderType?.name, - otherCondition = targetGroupDomain.otherCondition - ) - }, - applyMethod = domain.applyMethod?.let { applyMethodDomain -> - ApplyMethodDto( - content = applyMethodDomain.content, - isFormUrl = applyMethodDomain.isFormUrl, - formUrl = applyMethodDomain.formUrl, - isPhoneNum = applyMethodDomain.isPhoneNum, - phoneNum = applyMethodDomain.phoneNum - ) - }, - matchType = domain.matchType?.name, - reward = domain.reward, - count = domain.count, - timeRequired = domain.timeRequired?.name - ) - } } diff --git a/infrastructure/src/main/resources/prompts/keyword_extraction_prompt.json b/infrastructure/src/main/resources/prompts/keyword_extraction_prompt.json index 5313e256..261fe6a1 100644 --- a/infrastructure/src/main/resources/prompts/keyword_extraction_prompt.json +++ b/infrastructure/src/main/resources/prompts/keyword_extraction_prompt.json @@ -35,7 +35,7 @@ "conditions": [ "공고 본문을 정확히 분석하여 각 항목에 맞는 정보를 추출한다.", "추출된 정보는 반드시 output_format에 따라 JSON 형태로 출력한다.", - "정보가 명시되지 않은 경우 해당 필드는 빈 문자열(\"\") 또는 0으로 설정한다.", + "정보가 명시되지 않은 경우 해당 필드는 null로 설정한다.", "URL이나 전화번호가 포함된 경우 해당 boolean 값을 true로 설정한다.", "각 항목은 지정된 최대 글자 수를 초과하지 않도록 한다." ]