Fix VertexAiMultimodalEmbeddingModelIT test by separating documents

The Document class requires exactly one of text or media to be specified.
Updated textImageAndVideoEmbedding test to create separate Document
instances for text, image, and video content instead of combining them
in a single document.
This commit is contained in:
Mark Pollack
2024-12-21 20:48:44 -05:00
parent 86b155d6ff
commit 92cba5d759

View File

@@ -18,6 +18,7 @@ package org.springframework.ai.vertexai.embedding.multimodal;
import java.net.MalformedURLException;
import java.net.URI;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@@ -188,13 +189,19 @@ class VertexAiMultimodalEmbeddingModelIT {
@Test
void textImageAndVideoEmbedding() {
var document = Document.builder()
var textDocument = Document.builder()
.text("Hello World")
.build();
var imageDocument = Document.builder()
.media(new Media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("/test.image.png")))
.build();
var videoDocument = Document.builder()
.media(new Media(new MimeType("video", "mp4"), new ClassPathResource("/test.video.mp4")))
.build();
DocumentEmbeddingRequest embeddingRequest = new DocumentEmbeddingRequest(document);
DocumentEmbeddingRequest embeddingRequest = new DocumentEmbeddingRequest(List.of(textDocument, imageDocument, videoDocument));
EmbeddingResponse embeddingResponse = this.multiModelEmbeddingModel.call(embeddingRequest);
assertThat(embeddingResponse.getResults()).hasSize(3);