Skip to content

Commit de950ee

Browse files
committed
add translation model
Signed-off-by: alperozturk96 <[email protected]>
1 parent 7db0d8d commit de950ee

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

library/src/main/java/com/owncloud/android/lib/resources/assistant/v2/model/TaskTypes.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ data class TaskTypeData(
1717
val name: String,
1818
val description: String?,
1919
val inputShape: Map<String, Shape>,
20-
val outputShape: Map<String, Shape>
20+
val outputShape: Map<String, Shape>,
21+
val optionalInputShapeDefaults: Map<String, Any>? = null,
22+
val optionalInputShapeEnumValues: Map<String, List<EnumValue>>? = null,
23+
val inputShapeEnumValues: Map<String, List<EnumValue>>? = null,
24+
val outputShapeEnumValues: Map<String, List<EnumValue>>? = null,
25+
val optionalOutputShapeEnumValues: Map<String, List<EnumValue>>? = null,
2126
) {
2227
private val chatTaskName = "Chat"
2328
private val translateTaskName = "Translate"
@@ -39,6 +44,11 @@ data class TaskTypeData(
3944
}
4045
}
4146

47+
data class EnumValue(
48+
val name: String,
49+
val value: String
50+
)
51+
4252
data class Shape(
4353
val name: String,
4454
val description: String,
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Nextcloud Android Library
3+
*
4+
* SPDX-FileCopyrightText: 2026 Alper Ozturk <[email protected]>
5+
* SPDX-License-Identifier: MIT
6+
*/
7+
8+
package com.owncloud.android.lib.resources.assistant.v2.model
9+
10+
import com.google.gson.annotations.SerializedName
11+
12+
data class TranslationLanguage(val name: String, val code: String)
13+
14+
data class TranslationRequest(
15+
@SerializedName("origin_language")
16+
val originLanguage: String,
17+
18+
@SerializedName("max_tokens")
19+
val maxTokens: Double,
20+
21+
val model: String,
22+
23+
@SerializedName("target_language")
24+
val targetLanguage: String,
25+
26+
val input: String
27+
)
28+
29+
data class TranslationModel(
30+
val model: String,
31+
val maxTokens: Double
32+
)
33+
34+
data class TranslationLanguages(
35+
val originLanguages: List<TranslationLanguage>,
36+
val targetLanguages: List<TranslationLanguage>
37+
)
38+
39+
fun TaskTypeData.toTranslationLanguages(): TranslationLanguages {
40+
fun List<EnumValue>?.toTranslationLanguageList() = this.orEmpty()
41+
.map { TranslationLanguage(it.name, it.value) }
42+
43+
return TranslationLanguages(
44+
originLanguages = inputShapeEnumValues?.get("origin_language").toTranslationLanguageList(),
45+
targetLanguages = inputShapeEnumValues?.get("target_language").toTranslationLanguageList()
46+
)
47+
}
48+
49+
fun TaskTypeData.toTranslationModel(): TranslationModel? {
50+
val model = optionalInputShapeDefaults?.get("model") as? String
51+
val maxTokens = optionalInputShapeDefaults?.get("max_tokens") as? Double
52+
return if (model != null && maxTokens != null) TranslationModel(model, maxTokens) else null
53+
}

0 commit comments

Comments
 (0)