파파고 번역 시 내용을 분리할 DELIMITER 변경

This commit is contained in:
2025-12-11 18:57:46 +09:00
parent 4498af4509
commit 3ff38bb73a

View File

@@ -36,7 +36,7 @@ class PapagoTranslationService(
val translatedTexts = mutableListOf<String>() val translatedTexts = mutableListOf<String>()
chunks.forEach { chunk -> chunks.forEach { chunk ->
val textsInChunkCount = chunk.split(S3P_DELIMITER).size val textsInChunkCount = chunk.split(DELIMITER).size
try { try {
val body = mapOf( val body = mapOf(
@@ -61,7 +61,7 @@ class PapagoTranslationService(
if (translated.isNullOrBlank()) { if (translated.isNullOrBlank()) {
repeat(textsInChunkCount) { translatedTexts.add("") } repeat(textsInChunkCount) { translatedTexts.add("") }
} else { } else {
translated.split(S3P_DELIMITER).forEach { translatedTexts.add(it) } translated.split(DELIMITER).forEach { translatedTexts.add(it) }
} }
} catch (_: Exception) { } catch (_: Exception) {
repeat(textsInChunkCount) { translatedTexts.add("") } repeat(textsInChunkCount) { translatedTexts.add("") }
@@ -91,7 +91,7 @@ class PapagoTranslationService(
var endIndex = texts.size var endIndex = texts.size
while (endIndex > startIndex) { while (endIndex > startIndex) {
val candidate = texts.subList(startIndex, endIndex) val candidate = texts.subList(startIndex, endIndex)
val joined = candidate.joinToString(S3P_DELIMITER) val joined = candidate.joinToString(DELIMITER)
if (joined.length <= MAX_TEXT_LENGTH || endIndex - startIndex == 1) { if (joined.length <= MAX_TEXT_LENGTH || endIndex - startIndex == 1) {
chunks.add(joined) chunks.add(joined)
startIndex = endIndex startIndex = endIndex
@@ -121,7 +121,7 @@ class PapagoTranslationService(
"it" "it"
) )
private const val S3P_DELIMITER = "__S3P__" private const val DELIMITER = "\u001F\u001E\u001D\u001C\u001F\u001E\u001D\u001C"
private const val MAX_TEXT_LENGTH = 3000 private const val MAX_TEXT_LENGTH = 3000
} }
} }