Skip to content

Commit

Permalink
optimal
Browse files Browse the repository at this point in the history
  • Loading branch information
hoanganhtuan95ptit committed Jan 27, 2023
1 parent 2bf7a14 commit 35dcbd4
Show file tree
Hide file tree
Showing 8 changed files with 10 additions and 24 deletions.
Binary file modified .gradle/7.2/executionHistory/executionHistory.bin
Binary file not shown.
Binary file modified .gradle/7.2/executionHistory/executionHistory.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ abstract class MlkitDetectTask : DetectTask {

state.toSuccess()?.data?.forEach { paragraph ->

if (paragraph.languageCode !in listOf("", "und")) return@forEach

paragraph.languageCode = identifyLanguage(paragraph.text)

Expand All @@ -142,7 +141,7 @@ abstract class MlkitDetectTask : DetectTask {

LanguageIdentification.getClient(LanguageIdentificationOptions.Builder().setConfidenceThreshold(0.34f).build()).identifyLanguage(text).addOnSuccessListener { languageCode ->

a.resumeActive(languageCode.takeIf { !it.equals("und", true) } ?: "")
a.resumeActive(languageCode.lowercase().replace("-latn", "").replace("und", ""))
}.addOnFailureListener {

a.resumeActive("")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ class MlkitTranslateTask : TranslateTask {
return@withContext ResultState.Failed(java.lang.RuntimeException("not support inputCode:$inputCode outputCode:$outputCode"))
}


log("mlkit translate task step 1 inputCode:$inputCode outputCode:$outputCode", "")


val downloadInputCodeStateDeferred = async {

Lock.withLock(inputCode) { downloadModelIfNeededTimeout(inputCode) }
Expand Down Expand Up @@ -76,7 +80,8 @@ class MlkitTranslateTask : TranslateTask {
val translator = Translation.getClient(options)


log("Mlkit Translate Task", "$inputCode $outputCode")
log("mlkit translate task step 2 inputCode:$inputCode outputCode:$outputCode", "")


val translateStateList = param.text.map {

Expand Down Expand Up @@ -105,10 +110,7 @@ class MlkitTranslateTask : TranslateTask {

private suspend fun downloadModelIfNeededTimeout(languageCode: String) = kotlin.runCatching {

if (isModelDownloaded(languageCode)) {

return@runCatching ResultState.Success(emptyList())
} else withTimeout(2 * 60 * 1000) {
withTimeout(2 * 60 * 1000) {

downloadModelIfNeeded(languageCode)
}
Expand All @@ -126,35 +128,20 @@ class MlkitTranslateTask : TranslateTask {
continuation.resumeActive(ResultState.Success(emptyList()))
}.addOnFailureListener {

logException(RuntimeException("Mlkit Translate Task download Model If Needed $languageCode", it))
logException(RuntimeException("mlkit translate task download model if needed $languageCode", it))

continuation.resumeActive(ResultState.Failed(it))
}
}

private suspend fun isModelDownloaded(languageCode: String) = suspendCancellableCoroutine<Boolean> { continuation ->

val remoteModel = TranslateRemoteModel.Builder(languageCode).build()

modelManager.isModelDownloaded(remoteModel).addOnSuccessListener {

continuation.resumeActive(it)
}.addOnFailureListener {

logException(RuntimeException("IS MODEL DOWNLOADED $languageCode", it))

continuation.resumeActive(false)
}
}

private suspend fun translate(translator: Translator, text: String): ResultState<String> = suspendCancellableCoroutine { continuation ->

translator.translate(text).addOnSuccessListener { translatedText ->

continuation.resumeActive(ResultState.Success(translatedText))
}.addOnFailureListener {

logException(RuntimeException("Mlkit Translate Task translate", it))
logException(RuntimeException("mlkit translate task translate", it))

continuation.resumeActive(ResultState.Failed(it))
}
Expand Down

0 comments on commit 35dcbd4

Please sign in to comment.