Skip to content

Commit 7fbf443

Browse files
Fix Mistral image_url payload format for vision requests
1 parent 09bc207 commit 7fbf443

3 files changed

Lines changed: 4 additions & 12 deletions

File tree

app/src/main/kotlin/com/google/ai/sample/ScreenCaptureApiClients.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,7 @@ data class ServiceMistralTextContent(@SerialName("text") val text: String) : Ser
5050

5151
@Serializable
5252
@SerialName("image_url")
53-
data class ServiceMistralImageContent(@SerialName("image_url") val imageUrl: ServiceMistralImageUrl) : ServiceMistralContent()
54-
55-
@Serializable
56-
data class ServiceMistralImageUrl(val url: String)
53+
data class ServiceMistralImageContent(@SerialName("image_url") val imageUrl: String) : ServiceMistralContent()
5754

5855
@Serializable
5956
data class ServiceMistralResponse(
@@ -104,7 +101,7 @@ internal suspend fun callMistralApi(
104101
is TextPart -> if (part.text.isNotBlank()) ServiceMistralTextContent(text = part.text) else null
105102
is ImagePart -> {
106103
if (supportsScreenshot) {
107-
ServiceMistralImageContent(imageUrl = ServiceMistralImageUrl(url = "data:image/jpeg;base64,${com.google.ai.sample.util.ImageUtils.bitmapToBase64(part.image)}"))
104+
ServiceMistralImageContent(imageUrl = "data:image/jpeg;base64,${com.google.ai.sample.util.ImageUtils.bitmapToBase64(part.image)}")
108105
} else null
109106
}
110107
else -> null

app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningProviderDtos.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,9 @@ internal data class MistralTextContent(val text: String) : MistralContent()
6666
@Serializable
6767
@kotlinx.serialization.SerialName("image_url")
6868
internal data class MistralImageContent(
69-
@kotlinx.serialization.SerialName("image_url") val imageUrl: MistralImageUrl
69+
@kotlinx.serialization.SerialName("image_url") val imageUrl: String
7070
) : MistralContent()
7171

72-
@Serializable
73-
internal data class MistralImageUrl(val url: String)
74-
7572
@Serializable
7673
internal data class MistralResponse(
7774
val choices: List<MistralChoice>

app/src/main/kotlin/com/google/ai/sample/feature/multimodal/PhotoReasoningViewModel.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,9 +1097,7 @@ class PhotoReasoningViewModel(
10971097
for (bitmap in selectedImages)
10981098
updatedContent.add(
10991099
MistralImageContent(
1100-
imageUrl = MistralImageUrl(
1101-
url = "data:image/jpeg;base64,${PhotoReasoningSerialization.bitmapToBase64(bitmap)}"
1102-
)
1100+
imageUrl = "data:image/jpeg;base64,${PhotoReasoningSerialization.bitmapToBase64(bitmap)}"
11031101
)
11041102
)
11051103
apiMessages[apiMessages.lastIndex] = lastUserMsg.copy(content = updatedContent)

0 commit comments

Comments
 (0)