diff --git a/advisors/spring-ai-advisors/pom.xml b/advisors/spring-ai-advisors-vector-store/pom.xml similarity index 98% rename from advisors/spring-ai-advisors/pom.xml rename to advisors/spring-ai-advisors-vector-store/pom.xml index 22d88d957..aa9338b51 100644 --- a/advisors/spring-ai-advisors/pom.xml +++ b/advisors/spring-ai-advisors-vector-store/pom.xml @@ -24,7 +24,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-advisors + spring-ai-advisors-vector-store jar Spring AI Advisors Chat client advisors for Spring AI diff --git a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisor.java b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisor.java similarity index 99% rename from advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisor.java rename to advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisor.java index fecbfec58..cc0f989b8 100644 --- a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisor.java +++ b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.client.advisor; +package org.springframework.ai.chat.client.advisor.vectorstore; import java.util.HashMap; import java.util.List; diff --git a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisor.java similarity index 98% rename from advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java rename to advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisor.java index bced70c6a..48b538c92 100644 --- a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/VectorStoreChatMemoryAdvisor.java +++ b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/VectorStoreChatMemoryAdvisor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.client.advisor; +package org.springframework.ai.chat.client.advisor.vectorstore; import java.util.HashMap; import java.util.List; @@ -23,6 +23,7 @@ import java.util.stream.Collectors; import reactor.core.publisher.Flux; +import org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor; import org.springframework.ai.chat.client.advisor.api.AdvisedRequest; import org.springframework.ai.chat.client.advisor.api.AdvisedResponse; import org.springframework.ai.chat.client.advisor.api.Advisor; diff --git a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/package-info.java b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/package-info.java similarity index 92% rename from advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/package-info.java rename to advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/package-info.java index 66e95c047..86f9320a7 100644 --- a/advisors/spring-ai-advisors/src/main/java/org/springframework/ai/chat/client/advisor/package-info.java +++ b/advisors/spring-ai-advisors-vector-store/src/main/java/org/springframework/ai/chat/client/advisor/vectorstore/package-info.java @@ -19,7 +19,7 @@ */ @NonNullApi @NonNullFields -package org.springframework.ai.chat.client.advisor; +package org.springframework.ai.chat.client.advisor.vectorstore; import org.springframework.lang.NonNullApi; import org.springframework.lang.NonNullFields; diff --git a/advisors/spring-ai-advisors/src/test/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisorTests.java b/advisors/spring-ai-advisors-vector-store/src/test/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisorTests.java similarity index 99% rename from advisors/spring-ai-advisors/src/test/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisorTests.java rename to advisors/spring-ai-advisors-vector-store/src/test/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisorTests.java index 048d35475..ab6d42c52 100644 --- a/advisors/spring-ai-advisors/src/test/java/org/springframework/ai/chat/client/advisor/QuestionAnswerAdvisorTests.java +++ b/advisors/spring-ai-advisors-vector-store/src/test/java/org/springframework/ai/chat/client/advisor/vectorstore/QuestionAnswerAdvisorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.client.advisor; +package org.springframework.ai.chat.client.advisor.vectorstore; import java.time.Duration; import java.util.List; diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml b/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml index 37575263d..6fc80f76f 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml +++ b/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml @@ -26,15 +26,11 @@ org.springframework.ai - spring-ai-client-chat + spring-ai-model-chat-memory-neo4j ${project.parent.version} - - org.springframework.ai - spring-ai-neo4j-store - ${project.parent.version} - + diff --git a/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 b/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 index d90b7be5e..95d7e8a23 100644 --- a/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 +++ b/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 @@ -36,7 +36,7 @@ import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.messages.ToolResponseMessage; import org.springframework.ai.chat.messages.ToolResponseMessage.ToolResponse; import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; diff --git a/memory/spring-ai-model-chat-memory-neo4j/pom.xml b/memory/spring-ai-model-chat-memory-neo4j/pom.xml new file mode 100644 index 000000000..9c2453025 --- /dev/null +++ b/memory/spring-ai-model-chat-memory-neo4j/pom.xml @@ -0,0 +1,76 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../pom.xml + + + spring-ai-model-chat-memory-neo4j + Spring AI Neo4j Chat Memory + Spring AI Neo4j Chat Memory implementation + + + + org.springframework.ai + spring-ai-client-chat + ${project.version} + + + + org.springframework.data + spring-data-neo4j + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.ai + spring-ai-test + ${project.version} + test + + + + org.springframework.boot + spring-boot-testcontainers + test + + + + org.neo4j.driver + neo4j-java-driver + + + + org.testcontainers + neo4j + test + + + + diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java similarity index 100% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java similarity index 100% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java similarity index 99% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java index 9ad6b18a7..61157c7f2 100644 --- a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java +++ b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemory.java @@ -21,8 +21,8 @@ import org.neo4j.driver.Result; import org.neo4j.driver.Transaction; import org.springframework.ai.chat.memory.ChatMemory; import org.springframework.ai.chat.messages.*; -import org.springframework.ai.model.Media; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.Media; +import org.springframework.ai.content.MediaContent; import org.springframework.util.MimeType; import java.net.MalformedURLException; diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java similarity index 99% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java index 95bb92818..baa58d663 100644 --- a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java +++ b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryConfig.java @@ -20,8 +20,6 @@ import org.neo4j.driver.Driver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.time.Duration; - /** * Configuration for the Neo4j Chat Memory store. * diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java similarity index 100% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java b/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java similarity index 100% rename from vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java rename to memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java diff --git a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java index cd02998ac..a513c25ab 100644 --- a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java +++ b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java @@ -62,7 +62,7 @@ import org.springframework.ai.chat.observation.ChatModelObservationDocumentation import org.springframework.ai.chat.observation.DefaultChatModelObservationConvention; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.model.tool.ToolCallingManager; diff --git a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java index f14158348..9ba3e0a57 100644 --- a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java +++ b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java @@ -48,7 +48,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.tool.function.FunctionToolCallback; import org.springframework.beans.factory.annotation.Autowired; diff --git a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java index d32ff2e9c..2405b9c85 100644 --- a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java +++ b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java @@ -83,7 +83,7 @@ import org.springframework.ai.chat.observation.ChatModelObservationDocumentation import org.springframework.ai.chat.observation.DefaultChatModelObservationConvention; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.model.tool.ToolCallingManager; diff --git a/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModel.java b/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModel.java index 50737ca32..71f5b4cf9 100644 --- a/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModel.java +++ b/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModel.java @@ -92,7 +92,7 @@ import org.springframework.ai.chat.observation.ChatModelObservationDocumentation import org.springframework.ai.chat.observation.DefaultChatModelObservationConvention; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.model.tool.ToolCallingManager; diff --git a/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormat.java b/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormat.java index cc13fe73b..2b336bd69 100644 --- a/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormat.java +++ b/models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormat.java @@ -22,7 +22,7 @@ import software.amazon.awssdk.services.bedrockruntime.model.DocumentFormat; import software.amazon.awssdk.services.bedrockruntime.model.ImageFormat; import software.amazon.awssdk.services.bedrockruntime.model.VideoFormat; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.util.MimeType; /** diff --git a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModelIT.java b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModelIT.java index 839e777af..b2a0cecac 100644 --- a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModelIT.java +++ b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModelIT.java @@ -45,7 +45,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.tool.function.FunctionToolCallback; import org.springframework.beans.factory.annotation.Autowired; diff --git a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormatTest.java b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormatTest.java index 7e7bad29f..8931a39aa 100644 --- a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormatTest.java +++ b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/api/BedrockMediaFormatTest.java @@ -17,7 +17,7 @@ package org.springframework.ai.bedrock.converse.api; import org.junit.jupiter.api.Test; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.util.MimeType; import software.amazon.awssdk.services.bedrockruntime.model.DocumentFormat; import software.amazon.awssdk.services.bedrockruntime.model.ImageFormat; diff --git a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/client/BedrockNovaChatClientIT.java b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/client/BedrockNovaChatClientIT.java index 2c68e3bb7..7c21d30aa 100644 --- a/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/client/BedrockNovaChatClientIT.java +++ b/models/spring-ai-bedrock-converse/src/test/java/org/springframework/ai/bedrock/converse/client/BedrockNovaChatClientIT.java @@ -31,7 +31,7 @@ import org.springframework.ai.bedrock.converse.BedrockProxyChatModel; import org.springframework.ai.bedrock.converse.RequiresAwsCredentials; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.model.ChatModel; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.tool.function.FunctionToolCallback; import org.springframework.beans.factory.annotation.Autowired; diff --git a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java index 1c7ff8615..796deed00 100644 --- a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java +++ b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java @@ -62,7 +62,7 @@ import org.springframework.ai.mistralai.api.MistralAiApi.ChatCompletionMessage; import org.springframework.ai.mistralai.api.MistralAiApi.ChatCompletionMessage.ChatCompletionFunction; import org.springframework.ai.mistralai.api.MistralAiApi.ChatCompletionMessage.ToolCall; import org.springframework.ai.mistralai.api.MistralAiApi.ChatCompletionRequest; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.function.FunctionCallingOptions; import org.springframework.ai.retry.RetryUtils; diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java index 75c56a4ec..19718020f 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java @@ -47,7 +47,7 @@ import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; import org.springframework.ai.mistralai.api.MistralAiApi; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.tool.function.FunctionToolCallback; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java index 3c1365607..d09c67954 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java @@ -24,7 +24,7 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.ollama.api.OllamaApi; import org.springframework.ai.ollama.api.OllamaOptions; import org.springframework.beans.factory.annotation.Autowired; diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java index b5ce1c631..949bf6973 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java @@ -55,7 +55,7 @@ import org.springframework.ai.chat.observation.ChatModelObservationDocumentation import org.springframework.ai.chat.observation.DefaultChatModelObservationConvention; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.function.FunctionCallingOptions; import org.springframework.ai.model.tool.ToolCallingChatOptions; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/MessageTypeContentTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/MessageTypeContentTests.java index 4a48c977f..03fa77674 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/MessageTypeContentTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/MessageTypeContentTests.java @@ -34,7 +34,7 @@ import reactor.core.publisher.Flux; import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionChunk; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java index 105ecdad3..edb3b49f2 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java @@ -52,7 +52,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.ai.openai.OpenAiTestConfiguration; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/GroqWithOpenAiChatModelIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/GroqWithOpenAiChatModelIT.java index 2e6208398..f5d329e5a 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/GroqWithOpenAiChatModelIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/GroqWithOpenAiChatModelIT.java @@ -45,7 +45,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiChatOptions; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/MistralWithOpenAiChatModelIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/MistralWithOpenAiChatModelIT.java index c7e02048d..bb5f3be55 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/MistralWithOpenAiChatModelIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/MistralWithOpenAiChatModelIT.java @@ -45,7 +45,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.SimpleApiKey; import org.springframework.ai.model.tool.LegacyToolCallingManager; import org.springframework.ai.openai.OpenAiChatModel; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/OllamaWithOpenAiChatModelIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/OllamaWithOpenAiChatModelIT.java index 67e39af75..519d54986 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/OllamaWithOpenAiChatModelIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/proxy/OllamaWithOpenAiChatModelIT.java @@ -48,7 +48,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.NoopApiKey; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.tool.LegacyToolCallingManager; diff --git a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java index 9062f6ba3..82e802e6e 100644 --- a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java +++ b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java @@ -42,7 +42,7 @@ import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResponseMetadata; import org.springframework.ai.embedding.EmbeddingResultMetadata; import org.springframework.ai.embedding.EmbeddingResultMetadata.ModalityType; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.vertexai.embedding.VertexAiEmbeddingConnectionDetails; import org.springframework.ai.vertexai.embedding.VertexAiEmbeddingUtils; diff --git a/models/spring-ai-vertex-ai-embedding/src/test/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModelIT.java b/models/spring-ai-vertex-ai-embedding/src/test/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModelIT.java index 281c0cf19..5aba4f263 100644 --- a/models/spring-ai-vertex-ai-embedding/src/test/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModelIT.java +++ b/models/spring-ai-vertex-ai-embedding/src/test/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModelIT.java @@ -27,7 +27,7 @@ import org.springframework.ai.document.Document; import org.springframework.ai.embedding.DocumentEmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResultMetadata; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.vertexai.embedding.VertexAiEmbeddingConnectionDetails; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; diff --git a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java index 3c80d837b..7ba15f451 100644 --- a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java +++ b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java @@ -72,7 +72,7 @@ import org.springframework.ai.chat.observation.DefaultChatModelObservationConven import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.ChatModelDescription; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackResolver; diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/CreateGeminiRequestTests.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/CreateGeminiRequestTests.java index 1b7ac94a4..444db43f2 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/CreateGeminiRequestTests.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/CreateGeminiRequestTests.java @@ -31,7 +31,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.tool.ToolCallingChatOptions; import org.springframework.ai.model.tool.ToolCallingManager; diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java index fe307ef15..1b6e3e8a0 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java @@ -41,7 +41,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.ChatModel; import org.springframework.ai.vertexai.gemini.common.VertexAiGeminiSafetySetting; import org.springframework.beans.factory.annotation.Autowired; diff --git a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/chat/ZhiPuAiChatModelIT.java b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/chat/ZhiPuAiChatModelIT.java index 461c19bda..5ef81d084 100644 --- a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/chat/ZhiPuAiChatModelIT.java +++ b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/chat/ZhiPuAiChatModelIT.java @@ -46,7 +46,7 @@ import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.MapOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.zhipuai.ZhiPuAiChatOptions; import org.springframework.ai.zhipuai.ZhiPuAiTestConfiguration; diff --git a/pom.xml b/pom.xml index 476602675..42f887542 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ spring-ai-test spring-ai-vector-store spring-ai-rag - advisors/spring-ai-advisors + advisors/spring-ai-advisors-vector-store auto-configurations/common/spring-ai-autoconfigure-retry @@ -49,6 +49,8 @@ auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j + memory/spring-ai-model-chat-memory-neo4j + auto-configurations/models/chat/observation/spring-ai-autoconfigure-model-chat-observation auto-configurations/models/embedding/observation/spring-ai-autoconfigure-model-embedding-observation diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/ChatClient.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/ChatClient.java index 1af0a20ea..dddeb9cd3 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/ChatClient.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/ChatClient.java @@ -33,7 +33,7 @@ import org.springframework.ai.chat.model.ChatResponse; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.converter.StructuredOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.tool.ToolCallback; import org.springframework.ai.tool.ToolCallbackProvider; diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java index e0b68d75d..c170091ce 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java @@ -64,7 +64,7 @@ import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.converter.BeanOutputConverter; import org.springframework.ai.converter.StructuredOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.core.Ordered; import org.springframework.core.ParameterizedTypeReference; diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/LastMaxTokenSizeContentPurger.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/LastMaxTokenSizeContentPurger.java index 8534a2750..36d67e6f7 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/LastMaxTokenSizeContentPurger.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/LastMaxTokenSizeContentPurger.java @@ -19,8 +19,8 @@ package org.springframework.ai.chat.client.advisor; import java.util.ArrayList; import java.util.List; -import org.springframework.ai.model.Content; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.Content; +import org.springframework.ai.content.MediaContent; import org.springframework.ai.tokenizer.TokenCountEstimator; /** diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java index aa7098788..d04041639 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/PromptChatMemoryAdvisor.java @@ -33,7 +33,7 @@ import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.model.MessageAggregator; -import org.springframework.ai.model.Content; +import org.springframework.ai.content.Content; /** * Memory is retrieved added into the prompt's system text. diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/api/AdvisedRequest.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/api/AdvisedRequest.java index aacb37f81..6d58b77ed 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/api/AdvisedRequest.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/api/AdvisedRequest.java @@ -31,7 +31,7 @@ import org.springframework.ai.chat.model.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.PromptTemplate; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallingOptions; import org.springframework.lang.Nullable; diff --git a/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java b/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java index 60cb69922..43bb6c81a 100644 --- a/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java +++ b/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java @@ -39,7 +39,7 @@ import org.springframework.ai.chat.model.ChatModel; import org.springframework.ai.chat.model.ChatResponse; import org.springframework.ai.chat.model.Generation; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.DefaultFunctionCallingOptions; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallingOptions; diff --git a/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/DefaultChatClientTests.java b/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/DefaultChatClientTests.java index 65b3a3281..859114ee3 100644 --- a/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/DefaultChatClientTests.java +++ b/spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/DefaultChatClientTests.java @@ -45,7 +45,7 @@ import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.converter.ListOutputConverter; import org.springframework.ai.converter.StructuredOutputConverter; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.convert.support.DefaultConversionService; diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/model/Content.java b/spring-ai-commons/src/main/java/org/springframework/ai/content/Content.java similarity index 91% rename from spring-ai-commons/src/main/java/org/springframework/ai/model/Content.java rename to spring-ai-commons/src/main/java/org/springframework/ai/content/Content.java index 7bbb850db..e5b0e6c12 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/model/Content.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/content/Content.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.ai.model; +package org.springframework.ai.content; import java.util.Map; /** * Data structure that contains content and metadata. Common parent for the * {@link org.springframework.ai.document.Document} and the - * {@link org.springframework.ai.chat.messages.Message} classes. + * org.springframework.ai.chat.messages.Message classes. * * @author Mark Pollack * @author Christian Tzolov @@ -41,4 +41,4 @@ public interface Content { */ Map getMetadata(); -} \ No newline at end of file +} diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/model/Media.java b/spring-ai-commons/src/main/java/org/springframework/ai/content/Media.java similarity index 99% rename from spring-ai-commons/src/main/java/org/springframework/ai/model/Media.java rename to spring-ai-commons/src/main/java/org/springframework/ai/content/Media.java index c0e6c3fb9..d9e23b162 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/model/Media.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/content/Media.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model; +package org.springframework.ai.content; import java.io.IOException; import java.net.URL; diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/model/MediaContent.java b/spring-ai-commons/src/main/java/org/springframework/ai/content/MediaContent.java similarity index 94% rename from spring-ai-commons/src/main/java/org/springframework/ai/model/MediaContent.java rename to spring-ai-commons/src/main/java/org/springframework/ai/content/MediaContent.java index 2aa665055..13086856f 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/model/MediaContent.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/content/MediaContent.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model; +package org.springframework.ai.content; import java.util.List; @@ -25,4 +25,4 @@ public interface MediaContent extends Content { */ List getMedia(); -} \ No newline at end of file +} diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/document/Document.java b/spring-ai-commons/src/main/java/org/springframework/ai/document/Document.java index dee15dd6e..3d76f1d66 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/document/Document.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/document/Document.java @@ -27,7 +27,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.ai.document.id.IdGenerator; import org.springframework.ai.document.id.RandomIdGenerator; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/JTokkitTokenCountEstimator.java b/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/JTokkitTokenCountEstimator.java index bb49a447c..1c1e7b9bc 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/JTokkitTokenCountEstimator.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/JTokkitTokenCountEstimator.java @@ -20,8 +20,8 @@ import com.knuddels.jtokkit.Encodings; import com.knuddels.jtokkit.api.Encoding; import com.knuddels.jtokkit.api.EncodingType; -import org.springframework.ai.model.Media; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.Media; +import org.springframework.ai.content.MediaContent; import org.springframework.util.CollectionUtils; /** @@ -87,4 +87,4 @@ public class JTokkitTokenCountEstimator implements TokenCountEstimator { return totalSize; } -} \ No newline at end of file +} diff --git a/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/TokenCountEstimator.java b/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/TokenCountEstimator.java index b9c819c8f..3219bee00 100644 --- a/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/TokenCountEstimator.java +++ b/spring-ai-commons/src/main/java/org/springframework/ai/tokenizer/TokenCountEstimator.java @@ -16,7 +16,7 @@ package org.springframework.ai.tokenizer; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.MediaContent; /** * Estimates the number of tokens in a given text or message. @@ -48,4 +48,4 @@ public interface TokenCountEstimator { */ int estimate(Iterable messages); -} \ No newline at end of file +} diff --git a/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentBuilderTests.java b/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentBuilderTests.java index bdb2a52df..83b693bad 100644 --- a/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentBuilderTests.java +++ b/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentBuilderTests.java @@ -25,7 +25,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.ai.document.id.IdGenerator; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.util.MimeTypeUtils; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentTests.java b/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentTests.java index 90b83192b..dd7d0dca7 100644 --- a/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentTests.java +++ b/spring-ai-commons/src/test/java/org/springframework/ai/document/DocumentTests.java @@ -24,7 +24,7 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.ai.document.id.IdGenerator; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.util.MimeTypeUtils; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/client/advisor/RetrievalAugmentationAdvisorIT.java b/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/client/advisor/RetrievalAugmentationAdvisorIT.java index e7170c68b..6fdf47c2a 100644 --- a/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/client/advisor/RetrievalAugmentationAdvisorIT.java +++ b/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/client/advisor/RetrievalAugmentationAdvisorIT.java @@ -26,7 +26,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor; import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; -import org.springframework.ai.chat.client.advisor.RetrievalAugmentationAdvisor; +import org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor; import org.springframework.ai.chat.memory.InMemoryChatMemory; import org.springframework.ai.chat.model.ChatResponse; import org.springframework.ai.document.Document; diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/AssistantMessage.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/AssistantMessage.java index 7449b189a..b092de2d6 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/AssistantMessage.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/AssistantMessage.java @@ -20,8 +20,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import org.springframework.ai.model.Media; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.Media; +import org.springframework.ai.content.MediaContent; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/Message.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/Message.java index 1361f2d8e..1bb62f964 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/Message.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/Message.java @@ -16,8 +16,8 @@ package org.springframework.ai.chat.messages; -import org.springframework.ai.model.Content; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Content; +import org.springframework.ai.content.Media; /** * The Message interface represents a message that can be sent or received in a chat diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/UserMessage.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/UserMessage.java index 74e8386eb..7bae70b64 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/UserMessage.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/UserMessage.java @@ -22,8 +22,8 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import org.springframework.ai.model.Media; -import org.springframework.ai.model.MediaContent; +import org.springframework.ai.content.Media; +import org.springframework.ai.content.MediaContent; import org.springframework.core.io.Resource; import org.springframework.util.Assert; diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/observation/ChatModelObservationContentProcessor.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/observation/ChatModelObservationContentProcessor.java index 382d48817..59eaa6a24 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/observation/ChatModelObservationContentProcessor.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/observation/ChatModelObservationContentProcessor.java @@ -18,7 +18,7 @@ package org.springframework.ai.chat.observation; import java.util.List; -import org.springframework.ai.model.Content; +import org.springframework.ai.content.Content; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplate.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplate.java index 852089e2b..2188a67f7 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplate.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplate.java @@ -33,7 +33,7 @@ import org.stringtemplate.v4.compiler.STLexer; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; import org.springframework.core.io.Resource; import org.springframework.util.StreamUtils; diff --git a/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplateMessageActions.java b/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplateMessageActions.java index c87507b3c..7114806ec 100644 --- a/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplateMessageActions.java +++ b/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplateMessageActions.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Map; import org.springframework.ai.chat.messages.Message; -import org.springframework.ai.model.Media; +import org.springframework.ai.content.Media; public interface PromptTemplateMessageActions { diff --git a/spring-ai-model/src/test/java/org/springframework/ai/model/MediaTests.java b/spring-ai-model/src/test/java/org/springframework/ai/model/MediaTests.java index 5d1899364..a8fc1139d 100644 --- a/spring-ai-model/src/test/java/org/springframework/ai/model/MediaTests.java +++ b/spring-ai-model/src/test/java/org/springframework/ai/model/MediaTests.java @@ -23,6 +23,7 @@ import java.util.UUID; import org.junit.jupiter.api.Test; +import org.springframework.ai.content.Media; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.Resource; import org.springframework.util.MimeType; diff --git a/spring-ai-rag/src/main/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisor.java b/spring-ai-rag/src/main/java/org/springframework/ai/rag/advisor/RetrievalAugmentationAdvisor.java similarity index 99% rename from spring-ai-rag/src/main/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisor.java rename to spring-ai-rag/src/main/java/org/springframework/ai/rag/advisor/RetrievalAugmentationAdvisor.java index f2dfbde24..5e06833e5 100644 --- a/spring-ai-rag/src/main/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisor.java +++ b/spring-ai-rag/src/main/java/org/springframework/ai/rag/advisor/RetrievalAugmentationAdvisor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.client.advisor; +package org.springframework.ai.rag.advisor; import java.util.Arrays; import java.util.HashMap; diff --git a/spring-ai-rag/src/test/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisorTests.java b/spring-ai-rag/src/test/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisorTests.java index 276ae1769..43df3266c 100644 --- a/spring-ai-rag/src/test/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisorTests.java +++ b/spring-ai-rag/src/test/java/org/springframework/ai/chat/client/advisor/RetrievalAugmentationAdvisorTests.java @@ -30,6 +30,7 @@ import org.springframework.ai.chat.model.Generation; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.document.Document; import org.springframework.ai.rag.Query; +import org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor; import org.springframework.ai.rag.preretrieval.query.transformation.QueryTransformer; import org.springframework.ai.rag.retrieval.search.DocumentRetriever; diff --git a/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStoreContent.java b/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStoreContent.java index 6a8e46690..62b833ccd 100644 --- a/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStoreContent.java +++ b/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStoreContent.java @@ -29,7 +29,7 @@ import org.springframework.ai.document.Document; import org.springframework.ai.document.DocumentMetadata; import org.springframework.ai.document.id.IdGenerator; import org.springframework.ai.document.id.RandomIdGenerator; -import org.springframework.ai.model.Content; +import org.springframework.ai.content.Content; import org.springframework.util.Assert; /** diff --git a/vector-stores/spring-ai-neo4j-store/pom.xml b/vector-stores/spring-ai-neo4j-store/pom.xml index 874f91108..cc599141c 100644 --- a/vector-stores/spring-ai-neo4j-store/pom.xml +++ b/vector-stores/spring-ai-neo4j-store/pom.xml @@ -56,7 +56,7 @@ org.springframework.ai - spring-ai-client-chat + spring-ai-vector-store ${project.parent.version} diff --git a/vector-stores/spring-ai-pgvector-store/pom.xml b/vector-stores/spring-ai-pgvector-store/pom.xml index 9aa9cc6e5..7cb7a64a4 100644 --- a/vector-stores/spring-ai-pgvector-store/pom.xml +++ b/vector-stores/spring-ai-pgvector-store/pom.xml @@ -115,7 +115,7 @@ org.springframework.ai - spring-ai-advisors + spring-ai-advisors-vector-store ${project.version} test diff --git a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorStoreWithChatMemoryAdvisorIT.java b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorStoreWithChatMemoryAdvisorIT.java index 22e00980c..a41c6a6ef 100644 --- a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorStoreWithChatMemoryAdvisorIT.java +++ b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/pgvector/PgVectorStoreWithChatMemoryAdvisorIT.java @@ -31,7 +31,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.chat.client.ChatClient; -import org.springframework.ai.chat.client.advisor.VectorStoreChatMemoryAdvisor; +import org.springframework.ai.chat.client.advisor.vectorstore.VectorStoreChatMemoryAdvisor; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.model.ChatModel;