diff --git a/README.md b/README.md
index 439d5b495..a73354db0 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,13 @@ Renaming of AiClient and related classes and packagenames
* Rename AiResponse to ChatResponse
* Rename AiStreamClient to StreamingChatClient
* Rename package org.sf.ai.client to org.sf.ai.chat
+
+Rename artifact ID of
+
+* `transformers-embedding` to `spring-ai-transformers`
+
+Moved Maven modules from top level directoryand `embedding-clients` subdirectory to all be under a single `models` directory.
+
:warning:
December 1, 2023
diff --git a/spring-ai-azure-openai/pom.xml b/models/spring-ai-azure-openai/pom.xml
similarity index 97%
rename from spring-ai-azure-openai/pom.xml
rename to models/spring-ai-azure-openai/pom.xml
index a3cf8bfd4..fc9fcf725 100644
--- a/spring-ai-azure-openai/pom.xml
+++ b/models/spring-ai-azure-openai/pom.xml
@@ -5,6 +5,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-azure-openai
jar
diff --git a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java
similarity index 100%
rename from spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java
rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java
diff --git a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/embedding/AzureOpenAiEmbeddingClient.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/embedding/AzureOpenAiEmbeddingClient.java
similarity index 100%
rename from spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/embedding/AzureOpenAiEmbeddingClient.java
rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/embedding/AzureOpenAiEmbeddingClient.java
diff --git a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiGenerationMetadata.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiGenerationMetadata.java
similarity index 100%
rename from spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiGenerationMetadata.java
rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiGenerationMetadata.java
diff --git a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiUsage.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiUsage.java
similarity index 100%
rename from spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiUsage.java
rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiUsage.java
diff --git a/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/MockAzureOpenAiTestConfiguration.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/MockAzureOpenAiTestConfiguration.java
similarity index 100%
rename from spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/MockAzureOpenAiTestConfiguration.java
rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/MockAzureOpenAiTestConfiguration.java
diff --git a/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/client/AzureOpenAiClientMetadataTests.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/client/AzureOpenAiClientMetadataTests.java
similarity index 100%
rename from spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/client/AzureOpenAiClientMetadataTests.java
rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/client/AzureOpenAiClientMetadataTests.java
diff --git a/spring-ai-bedrock/README.md b/models/spring-ai-bedrock/README.md
similarity index 100%
rename from spring-ai-bedrock/README.md
rename to models/spring-ai-bedrock/README.md
diff --git a/spring-ai-bedrock/README_ANTHROPIC_CHAT.md b/models/spring-ai-bedrock/README_ANTHROPIC_CHAT.md
similarity index 100%
rename from spring-ai-bedrock/README_ANTHROPIC_CHAT.md
rename to models/spring-ai-bedrock/README_ANTHROPIC_CHAT.md
diff --git a/spring-ai-bedrock/README_COHERE_CHAT.md b/models/spring-ai-bedrock/README_COHERE_CHAT.md
similarity index 100%
rename from spring-ai-bedrock/README_COHERE_CHAT.md
rename to models/spring-ai-bedrock/README_COHERE_CHAT.md
diff --git a/spring-ai-bedrock/README_COHERE_EMBEDDING.md b/models/spring-ai-bedrock/README_COHERE_EMBEDDING.md
similarity index 100%
rename from spring-ai-bedrock/README_COHERE_EMBEDDING.md
rename to models/spring-ai-bedrock/README_COHERE_EMBEDDING.md
diff --git a/spring-ai-bedrock/README_JURASSIC2_CHAT.md b/models/spring-ai-bedrock/README_JURASSIC2_CHAT.md
similarity index 100%
rename from spring-ai-bedrock/README_JURASSIC2_CHAT.md
rename to models/spring-ai-bedrock/README_JURASSIC2_CHAT.md
diff --git a/spring-ai-bedrock/README_LLAMA2_CHAT.md b/models/spring-ai-bedrock/README_LLAMA2_CHAT.md
similarity index 100%
rename from spring-ai-bedrock/README_LLAMA2_CHAT.md
rename to models/spring-ai-bedrock/README_LLAMA2_CHAT.md
diff --git a/spring-ai-bedrock/README_TITAN_CHAT.md b/models/spring-ai-bedrock/README_TITAN_CHAT.md
similarity index 100%
rename from spring-ai-bedrock/README_TITAN_CHAT.md
rename to models/spring-ai-bedrock/README_TITAN_CHAT.md
diff --git a/spring-ai-bedrock/README_TITAN_EMBEDDING.md b/models/spring-ai-bedrock/README_TITAN_EMBEDDING.md
similarity index 100%
rename from spring-ai-bedrock/README_TITAN_EMBEDDING.md
rename to models/spring-ai-bedrock/README_TITAN_EMBEDDING.md
diff --git a/spring-ai-bedrock/pom.xml b/models/spring-ai-bedrock/pom.xml
similarity index 97%
rename from spring-ai-bedrock/pom.xml
rename to models/spring-ai-bedrock/pom.xml
index 903a19bc6..0f4a91b29 100644
--- a/spring-ai-bedrock/pom.xml
+++ b/models/spring-ai-bedrock/pom.xml
@@ -6,6 +6,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-bedrock
jar
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java
diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java
similarity index 100%
rename from spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java
rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClientIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClientIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClientIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java
similarity index 100%
rename from spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java
rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Chat API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Chat API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Chat API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Chat API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Embedding API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Embedding API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Embedding API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock Titan Embedding API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock-Anthropic-Chat-API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock-Anthropic-Chat-API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock-Anthropic-Chat-API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock-Anthropic-Chat-API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg b/models/spring-ai-bedrock/src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg
rename to models/spring-ai-bedrock/src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg
diff --git a/spring-ai-bedrock/src/test/resources/prompts/system-message.st b/models/spring-ai-bedrock/src/test/resources/prompts/system-message.st
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/prompts/system-message.st
rename to models/spring-ai-bedrock/src/test/resources/prompts/system-message.st
diff --git a/spring-ai-bedrock/src/test/resources/spring_framework.png b/models/spring-ai-bedrock/src/test/resources/spring_framework.png
similarity index 100%
rename from spring-ai-bedrock/src/test/resources/spring_framework.png
rename to models/spring-ai-bedrock/src/test/resources/spring_framework.png
diff --git a/spring-ai-huggingface/pom.xml b/models/spring-ai-huggingface/pom.xml
similarity index 98%
rename from spring-ai-huggingface/pom.xml
rename to models/spring-ai-huggingface/pom.xml
index b8c13239e..643e9170f 100644
--- a/spring-ai-huggingface/pom.xml
+++ b/models/spring-ai-huggingface/pom.xml
@@ -5,6 +5,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-huggingface
jar
diff --git a/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/client/HuggingfaceAiClient.java b/models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/client/HuggingfaceAiClient.java
similarity index 100%
rename from spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/client/HuggingfaceAiClient.java
rename to models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/client/HuggingfaceAiClient.java
diff --git a/spring-ai-huggingface/src/main/resources/openapi.json b/models/spring-ai-huggingface/src/main/resources/openapi.json
similarity index 100%
rename from spring-ai-huggingface/src/main/resources/openapi.json
rename to models/spring-ai-huggingface/src/main/resources/openapi.json
diff --git a/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/HuggingfaceTestConfiguration.java b/models/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/HuggingfaceTestConfiguration.java
similarity index 100%
rename from spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/HuggingfaceTestConfiguration.java
rename to models/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/HuggingfaceTestConfiguration.java
diff --git a/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/client/ClientIT.java b/models/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/client/ClientIT.java
similarity index 100%
rename from spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/client/ClientIT.java
rename to models/spring-ai-huggingface/src/test/java/org/springframework/ai/huggingface/client/ClientIT.java
diff --git a/spring-ai-ollama/pom.xml b/models/spring-ai-ollama/pom.xml
similarity index 96%
rename from spring-ai-ollama/pom.xml
rename to models/spring-ai-ollama/pom.xml
index 3448dcb97..fead80fc0 100644
--- a/spring-ai-ollama/pom.xml
+++ b/models/spring-ai-ollama/pom.xml
@@ -7,6 +7,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-ollama
diff --git a/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaClient.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaClient.java
similarity index 100%
rename from spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaClient.java
rename to models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaClient.java
diff --git a/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaGenerateResult.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaGenerateResult.java
similarity index 100%
rename from spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaGenerateResult.java
rename to models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/client/OllamaGenerateResult.java
diff --git a/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/client/OllamaClientTests.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/client/OllamaClientTests.java
similarity index 100%
rename from spring-ai-ollama/src/test/java/org/springframework/ai/ollama/client/OllamaClientTests.java
rename to models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/client/OllamaClientTests.java
diff --git a/spring-ai-openai/pom.xml b/models/spring-ai-openai/pom.xml
similarity index 98%
rename from spring-ai-openai/pom.xml
rename to models/spring-ai-openai/pom.xml
index edf232627..c4be05123 100644
--- a/spring-ai-openai/pom.xml
+++ b/models/spring-ai-openai/pom.xml
@@ -5,6 +5,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-openai
jar
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/embedding/OpenAiEmbeddingClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/embedding/OpenAiEmbeddingClient.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/embedding/OpenAiEmbeddingClient.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/embedding/OpenAiEmbeddingClient.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiGenerationMetadata.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiGenerationMetadata.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiGenerationMetadata.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiGenerationMetadata.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiRateLimit.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiRateLimit.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiRateLimit.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiRateLimit.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiUsage.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiUsage.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiUsage.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/OpenAiUsage.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiApiResponseHeaders.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiApiResponseHeaders.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiApiResponseHeaders.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiApiResponseHeaders.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptor.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptor.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptor.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptor.java
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiResponseHeaderExtractor.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiResponseHeaderExtractor.java
similarity index 100%
rename from spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiResponseHeaderExtractor.java
rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/metadata/support/OpenAiResponseHeaderExtractor.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/OpenAiTestConfiguration.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/OpenAiTestConfiguration.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/OpenAiTestConfiguration.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/OpenAiTestConfiguration.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/acme/AcmeIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/acme/AcmeIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/acme/AcmeIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/acme/AcmeIT.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/ActorsFilms.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/ActorsFilms.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/client/ActorsFilms.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/ActorsFilms.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientWithGenerationMetadata2Tests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientWithGenerationMetadata2Tests.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientWithGenerationMetadata2Tests.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientWithGenerationMetadata2Tests.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/embedding/EmbeddingIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/embedding/EmbeddingIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/embedding/EmbeddingIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/embedding/EmbeddingIT.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptorTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptorTests.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptorTests.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/metadata/support/OpenAiHttpResponseHeadersInterceptorTests.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/testutils/AbstractIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/testutils/AbstractIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/testutils/AbstractIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/testutils/AbstractIT.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/transformer/MetadataTransformerIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/transformer/MetadataTransformerIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/transformer/MetadataTransformerIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/transformer/MetadataTransformerIT.java
diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/vectorstore/SimplePersistentVectorStoreIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/vectorstore/SimplePersistentVectorStoreIT.java
similarity index 100%
rename from spring-ai-openai/src/test/java/org/springframework/ai/openai/vectorstore/SimplePersistentVectorStoreIT.java
rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/vectorstore/SimplePersistentVectorStoreIT.java
diff --git a/spring-ai-openai/src/test/resources/data/acme/bikes.json b/models/spring-ai-openai/src/test/resources/data/acme/bikes.json
similarity index 100%
rename from spring-ai-openai/src/test/resources/data/acme/bikes.json
rename to models/spring-ai-openai/src/test/resources/data/acme/bikes.json
diff --git a/spring-ai-openai/src/test/resources/prompts/acme/system-qa.st b/models/spring-ai-openai/src/test/resources/prompts/acme/system-qa.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/acme/system-qa.st
rename to models/spring-ai-openai/src/test/resources/prompts/acme/system-qa.st
diff --git a/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st b/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st
rename to models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st
diff --git a/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st b/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st
rename to models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st
diff --git a/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st b/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st
rename to models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st
diff --git a/spring-ai-openai/src/test/resources/prompts/eval/user-evaluator-message.st b/models/spring-ai-openai/src/test/resources/prompts/eval/user-evaluator-message.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/eval/user-evaluator-message.st
rename to models/spring-ai-openai/src/test/resources/prompts/eval/user-evaluator-message.st
diff --git a/spring-ai-openai/src/test/resources/prompts/system-message.st b/models/spring-ai-openai/src/test/resources/prompts/system-message.st
similarity index 100%
rename from spring-ai-openai/src/test/resources/prompts/system-message.st
rename to models/spring-ai-openai/src/test/resources/prompts/system-message.st
diff --git a/embedding-clients/spring-ai-postgresml-embedding-client/pom.xml b/models/spring-ai-postgresml/pom.xml
similarity index 97%
rename from embedding-clients/spring-ai-postgresml-embedding-client/pom.xml
rename to models/spring-ai-postgresml/pom.xml
index 941e7d144..58b9ed227 100644
--- a/embedding-clients/spring-ai-postgresml-embedding-client/pom.xml
+++ b/models/spring-ai-postgresml/pom.xml
@@ -8,7 +8,7 @@
0.8.0-SNAPSHOT
../../pom.xml
- spring-ai-postgresml-embedding-client
+ spring-ai-postgresml
jar
Spring AI Embedding Client - PostgresML
Spring AI PostgresML Embedding Client
diff --git a/embedding-clients/spring-ai-postgresml-embedding-client/src/main/java/org/springframework/ai/embedding/PostgresMlEmbeddingClient.java b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/embedding/PostgresMlEmbeddingClient.java
similarity index 100%
rename from embedding-clients/spring-ai-postgresml-embedding-client/src/main/java/org/springframework/ai/embedding/PostgresMlEmbeddingClient.java
rename to models/spring-ai-postgresml/src/main/java/org/springframework/ai/embedding/PostgresMlEmbeddingClient.java
diff --git a/embedding-clients/spring-ai-postgresml-embedding-client/src/test/java/org/springframework/ai/embedding/PostgresMlEmbeddingClientIT.java b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/embedding/PostgresMlEmbeddingClientIT.java
similarity index 100%
rename from embedding-clients/spring-ai-postgresml-embedding-client/src/test/java/org/springframework/ai/embedding/PostgresMlEmbeddingClientIT.java
rename to models/spring-ai-postgresml/src/test/java/org/springframework/ai/embedding/PostgresMlEmbeddingClientIT.java
diff --git a/embedding-clients/transformers-embedding/pom.xml b/models/spring-ai-transformers/pom.xml
similarity index 98%
rename from embedding-clients/transformers-embedding/pom.xml
rename to models/spring-ai-transformers/pom.xml
index 5a4b958f2..2374bb47f 100644
--- a/embedding-clients/transformers-embedding/pom.xml
+++ b/models/spring-ai-transformers/pom.xml
@@ -8,7 +8,7 @@
0.8.0-SNAPSHOT
../../pom.xml
- transformers-embedding
+ spring-ai-transformers
jar
Spring AI Transormers Embedding Client
Spring AI Transformers Embedding Client
diff --git a/embedding-clients/transformers-embedding/src/main/java/org/springframework/ai/embedding/ResourceCacheService.java b/models/spring-ai-transformers/src/main/java/org/springframework/ai/embedding/ResourceCacheService.java
similarity index 100%
rename from embedding-clients/transformers-embedding/src/main/java/org/springframework/ai/embedding/ResourceCacheService.java
rename to models/spring-ai-transformers/src/main/java/org/springframework/ai/embedding/ResourceCacheService.java
diff --git a/embedding-clients/transformers-embedding/src/main/java/org/springframework/ai/embedding/TransformersEmbeddingClient.java b/models/spring-ai-transformers/src/main/java/org/springframework/ai/embedding/TransformersEmbeddingClient.java
similarity index 100%
rename from embedding-clients/transformers-embedding/src/main/java/org/springframework/ai/embedding/TransformersEmbeddingClient.java
rename to models/spring-ai-transformers/src/main/java/org/springframework/ai/embedding/TransformersEmbeddingClient.java
diff --git a/embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx b/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx
similarity index 100%
rename from embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx
rename to models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx
diff --git a/embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/model.png b/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.png
similarity index 100%
rename from embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/model.png
rename to models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.png
diff --git a/embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json b/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json
similarity index 100%
rename from embedding-clients/transformers-embedding/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json
rename to models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json
diff --git a/embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/ResourceCacheServiceTests.java b/models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/ResourceCacheServiceTests.java
similarity index 100%
rename from embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/ResourceCacheServiceTests.java
rename to models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/ResourceCacheServiceTests.java
diff --git a/embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/TransformersEmbeddingClientTests.java b/models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/TransformersEmbeddingClientTests.java
similarity index 100%
rename from embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/TransformersEmbeddingClientTests.java
rename to models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/TransformersEmbeddingClientTests.java
diff --git a/embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/samples/ONNXSample.java b/models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/samples/ONNXSample.java
similarity index 100%
rename from embedding-clients/transformers-embedding/src/test/java/org/springframework/ai/embedding/samples/ONNXSample.java
rename to models/spring-ai-transformers/src/test/java/org/springframework/ai/embedding/samples/ONNXSample.java
diff --git a/embedding-clients/transformers-embedding/src/test/resources/Test.py b/models/spring-ai-transformers/src/test/resources/Test.py
similarity index 100%
rename from embedding-clients/transformers-embedding/src/test/resources/Test.py
rename to models/spring-ai-transformers/src/test/resources/Test.py
diff --git a/spring-ai-vertex-ai/README.md b/models/spring-ai-vertex-ai/README.md
similarity index 100%
rename from spring-ai-vertex-ai/README.md
rename to models/spring-ai-vertex-ai/README.md
diff --git a/spring-ai-vertex-ai/pom.xml b/models/spring-ai-vertex-ai/pom.xml
similarity index 97%
rename from spring-ai-vertex-ai/pom.xml
rename to models/spring-ai-vertex-ai/pom.xml
index 59e687737..51c75216e 100644
--- a/spring-ai-vertex-ai/pom.xml
+++ b/models/spring-ai-vertex-ai/pom.xml
@@ -6,6 +6,7 @@
org.springframework.ai
spring-ai
0.8.0-SNAPSHOT
+ ../../pom.xml
spring-ai-vertex-ai
jar
diff --git a/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/api/VertexAiApi.java b/models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/api/VertexAiApi.java
similarity index 100%
rename from spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/api/VertexAiApi.java
rename to models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/api/VertexAiApi.java
diff --git a/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClient.java b/models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClient.java
similarity index 100%
rename from spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClient.java
rename to models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClient.java
diff --git a/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java b/models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java
similarity index 100%
rename from spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java
rename to models/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java
diff --git a/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiIT.java b/models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiIT.java
similarity index 100%
rename from spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiIT.java
rename to models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiIT.java
diff --git a/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiTests.java b/models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiTests.java
similarity index 100%
rename from spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiTests.java
rename to models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/api/VertexAiApiTests.java
diff --git a/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClientIT.java b/models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClientIT.java
similarity index 100%
rename from spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClientIT.java
rename to models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/embedding/VertexAiEmbeddingClientIT.java
diff --git a/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/generation/VertexAiChatGenerationClientIT.java b/models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/generation/VertexAiChatGenerationClientIT.java
similarity index 100%
rename from spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/generation/VertexAiChatGenerationClientIT.java
rename to models/spring-ai-vertex-ai/src/test/java/org/springframework/ai/vertex/generation/VertexAiChatGenerationClientIT.java
diff --git a/spring-ai-vertex-ai/src/test/resources/Google Generative AI - PaLM2 REST API.jpg b/models/spring-ai-vertex-ai/src/test/resources/Google Generative AI - PaLM2 REST API.jpg
similarity index 100%
rename from spring-ai-vertex-ai/src/test/resources/Google Generative AI - PaLM2 REST API.jpg
rename to models/spring-ai-vertex-ai/src/test/resources/Google Generative AI - PaLM2 REST API.jpg
diff --git a/spring-ai-vertex-ai/src/test/resources/prompts/system-message.st b/models/spring-ai-vertex-ai/src/test/resources/prompts/system-message.st
similarity index 100%
rename from spring-ai-vertex-ai/src/test/resources/prompts/system-message.st
rename to models/spring-ai-vertex-ai/src/test/resources/prompts/system-message.st
diff --git a/pom.xml b/pom.xml
index 56d9da964..21cf415bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,10 +14,14 @@
spring-ai-core
- spring-ai-openai
- spring-ai-azure-openai
- spring-ai-ollama
- spring-ai-huggingface
+ models/spring-ai-bedrock
+ models/spring-ai-azure-openai
+ models/spring-ai-huggingface
+ models/spring-ai-ollama
+ models/spring-ai-openai
+ models/spring-ai-vertex-ai
+ models/spring-ai-transformers
+ models/spring-ai-postgresml
spring-ai-test
spring-ai-spring-boot-autoconfigure
spring-ai-spring-boot-starters/spring-ai-starter-openai
@@ -36,18 +40,14 @@
vector-stores/spring-ai-pgvector-store
vector-stores/spring-ai-milvus-store
vector-stores/spring-ai-neo4j-store
- embedding-clients/spring-ai-postgresml-embedding-client
document-readers/pdf-reader
document-readers/tika-reader
- embedding-clients/transformers-embedding
vector-stores/spring-ai-pinecone
vector-stores/spring-ai-chroma
vector-stores/spring-ai-azure
vector-stores/spring-ai-weaviate
vector-stores/spring-ai-redis
- spring-ai-vertex-ai
spring-ai-spring-boot-starters/spring-ai-starter-vertex-ai
- spring-ai-bedrock
spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai
diff --git a/spring-ai-spring-boot-autoconfigure/pom.xml b/spring-ai-spring-boot-autoconfigure/pom.xml
index b7569b1c4..f9a672140 100644
--- a/spring-ai-spring-boot-autoconfigure/pom.xml
+++ b/spring-ai-spring-boot-autoconfigure/pom.xml
@@ -59,7 +59,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${project.parent.version}
true
diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-transformers-embedding/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-transformers-embedding/pom.xml
index 562e0e150..0eba14454 100644
--- a/spring-ai-spring-boot-starters/spring-ai-starter-transformers-embedding/pom.xml
+++ b/spring-ai-spring-boot-starters/spring-ai-starter-transformers-embedding/pom.xml
@@ -34,7 +34,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${project.parent.version}
diff --git a/vector-stores/spring-ai-azure/pom.xml b/vector-stores/spring-ai-azure/pom.xml
index 279698024..841174c73 100644
--- a/vector-stores/spring-ai-azure/pom.xml
+++ b/vector-stores/spring-ai-azure/pom.xml
@@ -52,7 +52,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${parent.version}
test
diff --git a/vector-stores/spring-ai-pinecone/pom.xml b/vector-stores/spring-ai-pinecone/pom.xml
index 73d13dab8..a17ff6d31 100644
--- a/vector-stores/spring-ai-pinecone/pom.xml
+++ b/vector-stores/spring-ai-pinecone/pom.xml
@@ -70,7 +70,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${parent.version}
test
diff --git a/vector-stores/spring-ai-redis/pom.xml b/vector-stores/spring-ai-redis/pom.xml
index 028ab3dca..9cf7a082b 100644
--- a/vector-stores/spring-ai-redis/pom.xml
+++ b/vector-stores/spring-ai-redis/pom.xml
@@ -43,7 +43,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${parent.version}
test
diff --git a/vector-stores/spring-ai-weaviate/pom.xml b/vector-stores/spring-ai-weaviate/pom.xml
index f90656fd3..def9b6d8d 100644
--- a/vector-stores/spring-ai-weaviate/pom.xml
+++ b/vector-stores/spring-ai-weaviate/pom.xml
@@ -47,7 +47,7 @@
org.springframework.ai
- transformers-embedding
+ spring-ai-transformers
${parent.version}
test