Skip to content

Commit 228ef10

Browse files
committed
Remove deprecated methods from Media
- Remove deprecated constructor method Media(MimeType mimeType, URL url) from Media - Remove deprecated builder method data(URL url) from Media builder - Update references to use the builder and the data(URI) methods Signed-off-by: Ilayaperumal Gopinathan <[email protected]>
1 parent 06edee4 commit 228ef10

File tree

15 files changed

+59
-182
lines changed

15 files changed

+59
-182
lines changed

auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryAutoConfigurationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void addAndGet() {
100100
.mimeType(textPlain)
101101
.data("hello".getBytes(StandardCharsets.UTF_8))
102102
.build(),
103-
Media.builder().data(URI.create("http://www.google.com").toURL()).mimeType(textPlain).build());
103+
Media.builder().data(URI.create("http://www.google.com")).mimeType(textPlain).build());
104104
UserMessage userMessageWithMedia = UserMessage.builder().text("Message with media").media(media).build();
105105
memory.add(sessionId, userMessageWithMedia);
106106

memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.ai.chat.memory.neo4j;
1818

19-
import java.net.MalformedURLException;
2019
import java.net.URI;
2120
import java.util.ArrayList;
2221
import java.util.HashMap;
@@ -282,12 +281,7 @@ private List<Media> getMedia(org.neo4j.driver.Record record) {
282281
.id(Optional.ofNullable(mediaMap.get(MediaAttributes.ID.getValue())).map(Object::toString).orElse(null))
283282
.mimeType(MimeType.valueOf(mediaMap.get(MediaAttributes.MIME_TYPE.getValue()).toString()));
284283
if (mediaMap.get(MediaAttributes.DATA.getValue()) instanceof String stringData) {
285-
try {
286-
mediaBuilder.data(URI.create(stringData).toURL());
287-
}
288-
catch (MalformedURLException e) {
289-
throw new IllegalArgumentException("Media data contains an invalid URL");
290-
}
284+
mediaBuilder.data(URI.create(stringData));
291285
}
292286
else if (mediaMap.get(MediaAttributes.DATA.getValue()).getClass().isArray()) {
293287
mediaBuilder.data(mediaMap.get(MediaAttributes.DATA.getValue()));

models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package org.springframework.ai.mistralai;
1818

1919
import java.io.IOException;
20-
import java.net.URL;
20+
import java.net.URI;
2121
import java.util.ArrayList;
2222
import java.util.Arrays;
2323
import java.util.List;
@@ -35,9 +35,9 @@
3535

3636
import org.springframework.ai.chat.memory.ChatMemory;
3737
import org.springframework.ai.chat.memory.MessageWindowChatMemory;
38-
import org.springframework.ai.chat.messages.SystemMessage;
3938
import org.springframework.ai.chat.messages.AssistantMessage;
4039
import org.springframework.ai.chat.messages.Message;
40+
import org.springframework.ai.chat.messages.SystemMessage;
4141
import org.springframework.ai.chat.messages.UserMessage;
4242
import org.springframework.ai.chat.model.ChatModel;
4343
import org.springframework.ai.chat.model.ChatResponse;
@@ -296,7 +296,7 @@ void multiModalityImageUrl(String modelName) throws IOException {
296296
.text("Explain what do you see on this picture?")
297297
.media(List.of(Media.builder()
298298
.mimeType(MimeTypeUtils.IMAGE_PNG)
299-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
299+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
300300
.build()))
301301
.build();
302302

@@ -314,7 +314,7 @@ void streamingMultiModalityImageUrl() throws IOException {
314314
.text("Explain what do you see on this picture?")
315315
.media(List.of(Media.builder()
316316
.mimeType(MimeTypeUtils.IMAGE_PNG)
317-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
317+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
318318
.build()))
319319
.build();
320320

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/MessageTypeContentTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ public void userMessageWithMediaType() throws MalformedURLException {
127127
given(this.openAiApi.chatCompletionEntity(this.pomptCaptor.capture(), this.headersCaptor.capture()))
128128
.willReturn(Mockito.mock(ResponseEntity.class));
129129

130-
URL mediaUrl = new URL("http://test");
130+
URI mediaUri = URI.create("http://test");
131131
this.chatModel.call(new Prompt(List.of(UserMessage.builder()
132132
.text("test message")
133-
.media(List.of(Media.builder().mimeType(MimeTypeUtils.IMAGE_JPEG).data(mediaUrl).build()))
133+
.media(List.of(Media.builder().mimeType(MimeTypeUtils.IMAGE_JPEG).data(mediaUri).build()))
134134
.build())));
135135

136136
validateComplexContent(this.pomptCaptor.getValue());

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package org.springframework.ai.openai.chat;
1818

1919
import java.io.IOException;
20-
import java.net.URL;
20+
import java.net.URI;
2121
import java.util.ArrayList;
2222
import java.util.Arrays;
2323
import java.util.List;
@@ -49,12 +49,6 @@
4949
import org.springframework.ai.chat.metadata.Usage;
5050
import org.springframework.ai.chat.model.ChatResponse;
5151
import org.springframework.ai.chat.model.Generation;
52-
import org.springframework.ai.model.tool.DefaultToolCallingManager;
53-
import org.springframework.ai.model.tool.ToolCallingChatOptions;
54-
import org.springframework.ai.model.tool.ToolCallingManager;
55-
import org.springframework.ai.model.tool.ToolExecutionResult;
56-
import org.springframework.ai.tool.ToolCallbacks;
57-
import org.springframework.ai.tool.annotation.Tool;
5852
import org.springframework.ai.chat.prompt.ChatOptions;
5953
import org.springframework.ai.chat.prompt.Prompt;
6054
import org.springframework.ai.chat.prompt.PromptTemplate;
@@ -63,6 +57,10 @@
6357
import org.springframework.ai.converter.BeanOutputConverter;
6458
import org.springframework.ai.converter.ListOutputConverter;
6559
import org.springframework.ai.converter.MapOutputConverter;
60+
import org.springframework.ai.model.tool.DefaultToolCallingManager;
61+
import org.springframework.ai.model.tool.ToolCallingChatOptions;
62+
import org.springframework.ai.model.tool.ToolCallingManager;
63+
import org.springframework.ai.model.tool.ToolExecutionResult;
6664
import org.springframework.ai.openai.OpenAiChatOptions;
6765
import org.springframework.ai.openai.OpenAiTestConfiguration;
6866
import org.springframework.ai.openai.api.OpenAiApi;
@@ -71,6 +69,8 @@
7169
import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.AudioParameters.Voice;
7270
import org.springframework.ai.openai.api.tool.MockWeatherService;
7371
import org.springframework.ai.openai.testutils.AbstractIT;
72+
import org.springframework.ai.tool.ToolCallbacks;
73+
import org.springframework.ai.tool.annotation.Tool;
7474
import org.springframework.ai.tool.function.FunctionToolCallback;
7575
import org.springframework.beans.factory.annotation.Value;
7676
import org.springframework.boot.test.context.SpringBootTest;
@@ -491,7 +491,7 @@ void multiModalityImageUrl(String modelName) throws IOException {
491491
.text("Explain what do you see on this picture?")
492492
.media(List.of(Media.builder()
493493
.mimeType(MimeTypeUtils.IMAGE_PNG)
494-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
494+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
495495
.build()))
496496
.build();
497497

@@ -510,7 +510,7 @@ void streamingMultiModalityImageUrl() throws IOException {
510510
.text("Explain what do you see on this picture?")
511511
.media(List.of(Media.builder()
512512
.mimeType(MimeTypeUtils.IMAGE_PNG)
513-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
513+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
514514
.build()))
515515
.build();
516516

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/GroqWithOpenAiChatModelIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package org.springframework.ai.openai.chat.proxy;
1818

1919
import java.io.IOException;
20-
import java.net.URL;
20+
import java.net.URI;
2121
import java.util.ArrayList;
2222
import java.util.Arrays;
2323
import java.util.List;
@@ -334,7 +334,7 @@ void multiModalityImageUrl(String modelName) throws IOException {
334334
.text("Explain what do you see on this picture?")
335335
.media(List.of(Media.builder()
336336
.mimeType(MimeTypeUtils.IMAGE_PNG)
337-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
337+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
338338
.build()))
339339
.build();
340340

@@ -354,7 +354,7 @@ void streamingMultiModalityImageUrl() throws IOException {
354354
.text("Explain what do you see on this picture?")
355355
.media(List.of(Media.builder()
356356
.mimeType(MimeTypeUtils.IMAGE_PNG)
357-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
357+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
358358
.build()))
359359
.build();
360360

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/MistralWithOpenAiChatModelIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import java.io.IOException;
2020
import java.net.URI;
21-
import java.net.URL;
2221
import java.util.ArrayList;
2322
import java.util.Arrays;
2423
import java.util.List;
@@ -341,7 +340,7 @@ void multiModalityImageUrl(String modelName) throws IOException {
341340
.text("Explain what do you see on this picture?")
342341
.media(List.of(Media.builder()
343342
.mimeType(MimeTypeUtils.IMAGE_PNG)
344-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
343+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
345344
.build()))
346345
.build();
347346

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/OllamaWithOpenAiChatModelIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import java.io.IOException;
2020
import java.net.URI;
21-
import java.net.URL;
2221
import java.util.ArrayList;
2322
import java.util.Arrays;
2423
import java.util.List;
@@ -385,7 +384,7 @@ void streamingMultiModalityImageUrl(String modelName) throws IOException {
385384
.text("Explain what do you see on this picture?")
386385
.media(List.of(Media.builder()
387386
.mimeType(MimeTypeUtils.IMAGE_PNG)
388-
.data(new URL("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
387+
.data(URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png"))
389388
.build()))
390389
.build();
391390

models/spring-ai-vertex-ai-embedding/src/test/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModelIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ void textMediaEmbedding() throws MalformedURLException {
114114
var document = Document.builder()
115115
.media(Media.builder()
116116
.mimeType(MimeTypeUtils.TEXT_PLAIN)
117-
.data(URI.create("http://example.com/image.png").toURL())
117+
.data(URI.create("http://example.com/image.png"))
118118
.build())
119119
.build();
120120

spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.ai.chat.client;
1818

1919
import java.io.IOException;
20+
import java.net.URISyntaxException;
2021
import java.net.URL;
2122
import java.nio.charset.Charset;
2223
import java.util.ArrayList;
@@ -202,7 +203,12 @@ public PromptUserSpec media(Media... media) {
202203
public PromptUserSpec media(MimeType mimeType, URL url) {
203204
Assert.notNull(mimeType, "mimeType cannot be null");
204205
Assert.notNull(url, "url cannot be null");
205-
this.media.add(Media.builder().mimeType(mimeType).data(url).build());
206+
try {
207+
this.media.add(Media.builder().mimeType(mimeType).data(url.toURI()).build());
208+
}
209+
catch (URISyntaxException e) {
210+
throw new RuntimeException(e);
211+
}
206212
return this;
207213
}
208214

0 commit comments

Comments
 (0)