diff --git a/app/src/main/kotlin/com/google/ai/sample/ScreenCaptureApiClients.kt b/app/src/main/kotlin/com/google/ai/sample/ScreenCaptureApiClients.kt index 05a1e4a..be933e8 100644 --- a/app/src/main/kotlin/com/google/ai/sample/ScreenCaptureApiClients.kt +++ b/app/src/main/kotlin/com/google/ai/sample/ScreenCaptureApiClients.kt @@ -50,10 +50,7 @@ data class ServiceMistralTextContent(@SerialName("text") val text: String) : Ser @Serializable @SerialName("image_url") -data class ServiceMistralImageContent(@SerialName("image_url") val imageUrl: ServiceMistralImageUrl) : ServiceMistralContent() - -@Serializable -data class ServiceMistralImageUrl(val url: String) +data class ServiceMistralImageContent(@SerialName("image_url") val imageUrl: String) : ServiceMistralContent() @Serializable data class ServiceMistralResponse( @@ -104,7 +101,7 @@ internal suspend fun callMistralApi( is TextPart -> if (part.text.isNotBlank()) ServiceMistralTextContent(text = part.text) else null is ImagePart -> { if (supportsScreenshot) { - ServiceMistralImageContent(imageUrl = ServiceMistralImageUrl(url = "data:image/jpeg;base64,${com.google.ai.sample.util.ImageUtils.bitmapToBase64(part.image)}")) + ServiceMistralImageContent(imageUrl = "data:image/jpeg;base64,${com.google.ai.sample.util.ImageUtils.bitmapToBase64(part.image)}") } else null } else -> null diff --git a/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningProviderDtos.kt b/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningProviderDtos.kt index 8ade575..eb4e410 100644 --- a/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningProviderDtos.kt +++ b/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningProviderDtos.kt @@ -66,12 +66,9 @@ internal data class MistralTextContent(val text: String) : MistralContent() @Serializable @kotlinx.serialization.SerialName("image_url") internal data class MistralImageContent( - @kotlinx.serialization.SerialName("image_url") val imageUrl: MistralImageUrl + @kotlinx.serialization.SerialName("image_url") val imageUrl: String ) : MistralContent() -@Serializable -internal data class MistralImageUrl(val url: String) - @Serializable internal data class MistralResponse( val choices: List diff --git a/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt b/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt index d8ae9ea..955dd28 100644 --- a/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt +++ b/app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt @@ -1097,9 +1097,7 @@ class PhotoReasoningViewModel( for (bitmap in selectedImages) updatedContent.add( MistralImageContent( - imageUrl = MistralImageUrl( - url = "data:image/jpeg;base64,${PhotoReasoningSerialization.bitmapToBase64(bitmap)}" - ) + imageUrl = "data:image/jpeg;base64,${PhotoReasoningSerialization.bitmapToBase64(bitmap)}" ) ) apiMessages[apiMessages.lastIndex] = lastUserMsg.copy(content = updatedContent) @@ -1120,7 +1118,7 @@ class PhotoReasoningViewModel( messages = apiMessages, temperature = genSettings.temperature.toDouble().coerceAtLeast(0.01), top_p = genSettings.topP.toDouble().coerceAtLeast(0.01), - max_tokens = 4096, + max_tokens = 50000, stream = true ) val jsonBody = jsonSerializer.encodeToString(MistralRequest.serializer(), requestBody) @@ -1293,7 +1291,7 @@ class PhotoReasoningViewModel( messages = apiMessages, temperature = genSettings.temperature.toDouble(), top_p = genSettings.topP.toDouble(), - max_tokens = 4096, + max_tokens = 320000, stream = true )