From fbfc87e814c6d5d2382d7e5f9b045246731a10dd Mon Sep 17 00:00:00 2001 From: Josh Long Date: Sat, 18 May 2024 21:30:51 +0200 Subject: [PATCH] Refactoring of ChatClient to add fluent API and introduce Model as dependent object * Rename the ModelClient class hierarchy into Model: - Rename ModelClient into Model. Update all code and doc references. - Rename ChatClient to ChatModel. Update all ChatClient suffixes and chatClient fields and variables in code and doc. - Rename EmbeddingClient into EmbeddingModel. Update the XxxEmbeddingClient class and variable suffixes and embeddingClient variables and fields in code and docs. - Rename ImageClient into ImageModel. - Rename SpeechClient into SpeechModel. - Rename TranscriptionClient into TranscriptionModel. - Update all javadocs and antora pages. Update the related diagrams. * Create fluent API in ChatClient interface that now includes streaming support * Add OpenAI FunctionCallbackWrapper2IT auto-config tests. * Add ChatClientTest mockito testing. * Add ChatModel#getDefaultOptions(), and remove @FunctionalInterface * ChatModel enums extend the new ModelDescription interface. * Implement fromOptions copy method in every ChatOptions implementation. * Extend ChatClient to use the model default options if not provided explicitly. * Update readme to provide guidance on how to adapt to breaking changes. Co-authored-by: Christian Tzolov Co-authored-by: Mark Pollack --- README.md | 144 +++- ...hatClient.java => AnthropicChatModel.java} | 33 +- .../ai/anthropic/AnthropicChatOptions.java | 17 +- .../ai/anthropic/api/AnthropicApi.java | 8 +- ...lientIT.java => AnthropicChatModelIT.java} | 26 +- .../anthropic/AnthropicTestConfiguration.java | 6 +- .../anthropic/ChatCompletionRequestTests.java | 2 +- ...tClient.java => AzureOpenAiChatModel.java} | 24 +- .../azure/openai/AzureOpenAiChatOptions.java | 22 +- ...nt.java => AzureOpenAiEmbeddingModel.java} | 12 +- .../AzureChatCompletionsOptionsTests.java | 2 +- .../openai/AzureEmbeddingsOptionsTests.java | 2 +- ...entIT.java => AzureOpenAiChatModelIT.java} | 22 +- ....java => AzureOpenAiEmbeddingModelIT.java} | 22 +- .../MockAzureOpenAiTestConfiguration.java | 4 +- ...> AzureOpenAiChatModelFunctionCallIT.java} | 18 +- ...=> AzureOpenAiChatModelMetadataTests.java} | 10 +- .../anthropic/AnthropicChatOptions.java | 10 + ...nt.java => BedrockAnthropicChatModel.java} | 17 +- .../api/AnthropicChatBedrockApi.java | 8 +- .../anthropic3/Anthropic3ChatOptions.java | 10 + ...t.java => BedrockAnthropic3ChatModel.java} | 35 +- .../api/Anthropic3ChatBedrockApi.java | 8 +- ...lient.java => BedrockCohereChatModel.java} | 15 +- .../cohere/BedrockCohereChatOptions.java | 13 + ....java => BedrockCohereEmbeddingModel.java} | 14 +- .../cohere/api/CohereChatBedrockApi.java | 8 +- ...ava => BedrockAi21Jurassic2ChatModel.java} | 20 +- .../BedrockAi21Jurassic2ChatOptions.java | 15 + .../api/Ai21Jurassic2ChatBedrockApi.java | 8 +- ...Client.java => BedrockLlamaChatModel.java} | 17 +- .../llama/BedrockLlamaChatOptions.java | 7 + .../llama/api/LlamaChatBedrockApi.java | 8 +- ...Client.java => BedrockTitanChatModel.java} | 15 +- .../titan/BedrockTitanChatOptions.java | 8 + ...t.java => BedrockTitanEmbeddingModel.java} | 10 +- .../titan/BedrockTitanEmbeddingOptions.java | 2 +- .../titan/api/TitanChatBedrockApi.java | 8 +- ....java => BedrockAnthropicChatModelIT.java} | 24 +- .../BedrockAnthropicCreateRequestTests.java | 2 +- ...java => BedrockAnthropic3ChatModelIT.java} | 26 +- .../BedrockAnthropic3CreateRequestTests.java | 2 +- .../BedrockCohereChatCreateRequestTests.java | 2 +- ...tIT.java => BedrockCohereChatModelIT.java} | 22 +- ...ava => BedrockCohereEmbeddingModelIT.java} | 26 +- ...a => BedrockAi21Jurassic2ChatModelIT.java} | 18 +- .../llama/BedrockLlamaCreateRequestTests.java | 2 +- ...IT.java => BedrockLlamaModelCallerIT.java} | 22 +- .../BedrockTitanChatCreateRequestTests.java | 2 +- ...java => BedrockTitanEmbeddingModelIT.java} | 20 +- ...IT.java => BedrockTitanModelCalerlIT.java} | 22 +- ...tClient.java => HuggingfaceChatModel.java} | 17 +- .../HuggingfaceTestConfiguration.java | 6 +- .../ai/huggingface/client/ClientIT.java | 6 +- ...xChatClient.java => MiniMaxChatModel.java} | 51 +- .../ai/minimax/MiniMaxChatOptions.java | 22 +- ...Client.java => MiniMaxEmbeddingModel.java} | 22 +- .../ai/minimax/api/MiniMaxApi.java | 9 +- .../minimax/ChatCompletionRequestTests.java | 6 +- .../ai/minimax/MiniMaxTestConfiguration.java | 10 +- .../ai/minimax/api/MiniMaxRetryTests.java | 24 +- ...hatClient.java => MistralAiChatModel.java} | 19 +- .../ai/mistralai/MistralAiChatOptions.java | 21 +- ...ient.java => MistralAiEmbeddingModel.java} | 12 +- .../ai/mistralai/api/MistralAiApi.java | 8 +- .../MistralAiChatCompletionRequestTest.java | 6 +- ...lientIT.java => MistralAiChatModelIT.java} | 26 +- .../ai/mistralai/MistralAiEmbeddingIT.java | 14 +- .../ai/mistralai/MistralAiRetryTests.java | 20 +- .../mistralai/MistralAiTestConfiguration.java | 10 +- ...maChatClient.java => OllamaChatModel.java} | 21 +- ...gClient.java => OllamaEmbeddingModel.java} | 16 +- .../ai/ollama/api/OllamaModel.java | 9 +- .../ai/ollama/api/OllamaOptions.java | 37 ++ ...atClientIT.java => OllamaChatModelIT.java} | 24 +- ....java => OllamaChatModelMultimodalIT.java} | 12 +- .../ai/ollama/OllamaChatRequestTests.java | 16 +- ...entIT.java => OllamaEmbeddingModelIT.java} | 17 +- .../ollama/OllamaEmbeddingRequestTests.java | 6 +- ...lient.java => OpenAiAudioSpeechModel.java} | 14 +- ...ava => OpenAiAudioTranscriptionModel.java} | 17 +- ...AiChatClient.java => OpenAiChatModel.java} | 37 +- .../ai/openai/OpenAiChatOptions.java | 27 +- ...gClient.java => OpenAiEmbeddingModel.java} | 22 +- ...ImageClient.java => OpenAiImageModel.java} | 12 +- .../ai/openai/api/OpenAiApi.java | 8 +- .../{SpeechClient.java => SpeechModel.java} | 6 +- ...hClient.java => StreamingSpeechModel.java} | 6 +- .../ai/openai/ChatCompletionRequestTests.java | 6 +- .../ai/openai/OpenAiTestConfiguration.java | 32 +- .../ai/openai/TranscriptionRequestTests.java | 4 +- .../ai/openai/acme/AcmeIT.java | 16 +- ...ClientIT.java => OpenAiSpeechModelIT.java} | 12 +- ...ModelWithSpeechResponseMetadataTests.java} | 12 +- ...T.java => OpenAiTranscriptionModelIT.java} | 6 +- ...thTranscriptionResponseMetadataTests.java} | 12 +- ...ests.java => TranscriptionModelTests.java} | 8 +- .../ai/openai/chat/OpenAiChatClientIT.java | 289 ++++---- ...Client2IT.java => OpenAiChatModel2IT.java} | 14 +- .../ai/openai/chat/OpenAiChatModelIT.java | 305 +++++++++ ...elTypeReferenceBeanOutputConverterIT.java} | 8 +- ...atModelWithChatResponseMetadataTests.java} | 12 +- .../ai/openai/chat/OpenAiRetryTests.java | 44 +- .../ChatMemoryLongTermSystemPromptIT.java | 30 +- .../ChatMemoryShortTermMessageListIT.java | 18 +- .../ChatMemoryShortTermSystemPromptIT.java | 18 +- .../LongShortTermChatMemoryWithRagIT.java | 33 +- ...OpenAiPromptTransformingChatServiceIT.java | 33 +- .../ai/openai/embedding/EmbeddingIT.java | 18 +- ...eClientIT.java => OpenAiImageModelIT.java} | 4 +- ...eModelWithImageResponseMetadataTests.java} | 14 +- .../ai/openai/testutils/AbstractIT.java | 24 +- .../transformer/MetadataTransformerIT.java | 12 +- .../SimplePersistentVectorStoreIT.java | 8 +- ...ent.java => PostgresMlEmbeddingModel.java} | 18 +- .../PostgresMlEmbeddingOptions.java | 4 +- ...T.java => PostgresMlEmbeddingModelIT.java} | 54 +- .../PostgresMlEmbeddingOptionsTests.java | 26 +- ...Client.java => StabilityAiImageModel.java} | 20 +- ...ntIT.java => StabilityAiImageModelIT.java} | 8 +- .../StabilityAiImageTestConfiguration.java | 4 +- ...t.java => TransformersEmbeddingModel.java} | 10 +- ...a => TransformersEmbeddingModelTests.java} | 34 +- ...ient.java => VertexAiGeminiChatModel.java} | 29 +- .../gemini/VertexAiGeminiChatOptions.java | 20 +- .../aot/VertexAiGeminiRuntimeHints.java | 4 +- ...IT.java => VertexAiGeminiChatModelIT.java} | 24 +- .../aot/VertexAiGeminiRuntimeHintsTests.java | 4 +- ...exAiGeminiChatModelFunctionCallingIT.java} | 22 +- ...lient.java => VertexAiPaLm2ChatModel.java} | 13 +- .../palm2/VertexAiPaLm2ChatOptions.java | 9 + ....java => VertexAiPaLm2EmbeddingModel.java} | 6 +- .../VertexAiPaLm2ChatGenerationClientIT.java | 14 +- .../palm2/VertexAiPaLm2ChatRequestTests.java | 8 +- ...ava => VertexAiPaLm2EmbeddingModelIT.java} | 20 +- ...hatClient.java => WatsonxAiChatModel.java} | 17 +- .../ai/watsonx/WatsonxAiChatOptions.java | 16 + ...tTest.java => WatsonxAiChatModelTest.java} | 20 +- ...iChatClient.java => ZhiPuAiChatModel.java} | 41 +- .../ai/zhipuai/ZhiPuAiChatOptions.java | 24 +- ...Client.java => ZhiPuAiEmbeddingModel.java} | 22 +- ...mageClient.java => ZhiPuAiImageModel.java} | 12 +- .../ai/zhipuai/api/ZhiPuAiApi.java | 9 +- .../zhipuai/ChatCompletionRequestTests.java | 6 +- .../ai/zhipuai/ZhiPuAiTestConfiguration.java | 14 +- .../ai/zhipuai/api/ZhiPuAiRetryTests.java | 34 +- ...ClientIT.java => ZhiPuAiImageModelIT.java} | 8 +- .../springframework/ai/chat/ChatClient.java | 616 +++++++++++++++++- .../springframework/ai/chat/ChatModel.java | 47 ++ .../ai/chat/DefaultChatClient.java | 43 ++ ...hatClient.java => StreamingChatModel.java} | 4 +- .../PromptTransformingChatService.java | 24 +- ...treamingPromptTransformingChatService.java | 26 +- .../springframework/ai/converter/README.md | 2 +- ...lient.java => AbstractEmbeddingModel.java} | 14 +- ...beddingClient.java => EmbeddingModel.java} | 6 +- .../ai/evaluation/RelevancyEvaluator.java | 14 +- .../{ImageClient.java => ImageModel.java} | 4 +- .../ai/model/{ModelClient.java => Model.java} | 6 +- .../ai/model/ModelDescription.java | 38 ++ ...ngModelClient.java => StreamingModel.java} | 6 +- .../function/AbstractFunctionCallback.java | 2 +- .../function/FunctionCallingOptions.java | 16 +- .../transformer/KeywordMetadataEnricher.java | 12 +- .../transformer/SummaryMetadataEnricher.java | 16 +- .../ai/vectorstore/SimpleVectorStore.java | 16 +- .../ai/chat/ChatClientTest.java | 136 ++++ ...atClientTests.java => ChatModelTests.java} | 6 +- .../ai/chat/memory/ChatMemoryTests.java | 20 +- ....java => AbstractEmbeddingModelTests.java} | 16 +- .../modules/ROOT/images/chat-options-flow.jpg | Bin 173781 -> 424713 bytes .../modules/ROOT/images/embeddings-api.jpg | Bin 347661 -> 355037 bytes .../openai-chatclient-function-call.jpg | Bin 150769 -> 276138 bytes .../ROOT/images/spring-ai-chat-api.jpg | Bin 197234 -> 361065 bytes .../spring-ai-chat-completions-clients.jpg | Bin 291284 -> 302680 bytes .../images/spring-ai-generic-model-api.jpg | Bin 394986 -> 347792 bytes .../ROOT/images/structured-output-api.jpg | Bin 252531 -> 250046 bytes .../src/main/antora/modules/ROOT/nav.adoc | 2 +- .../modules/ROOT/pages/api/aimetadata.adoc | 2 +- .../modules/ROOT/pages/api/audio/speech.adoc | 2 +- .../pages/api/audio/speech/openai-speech.adoc | 14 +- .../ROOT/pages/api/audio/transcriptions.adoc | 2 +- .../transcriptions/openai-transcriptions.adoc | 12 +- .../modules/ROOT/pages/api/bedrock.adoc | 4 +- .../ROOT/pages/api/chat/anthropic-chat.adoc | 44 +- .../pages/api/chat/azure-openai-chat.adoc | 38 +- .../api/chat/bedrock/bedrock-anthropic.adoc | 34 +- .../api/chat/bedrock/bedrock-anthropic3.adoc | 38 +- .../api/chat/bedrock/bedrock-cohere.adoc | 34 +- .../api/chat/bedrock/bedrock-jurassic2.adoc | 28 +- .../pages/api/chat/bedrock/bedrock-llama.adoc | 32 +- .../pages/api/chat/bedrock/bedrock-titan.adoc | 34 +- .../functions/anthropic-chat-functions.adoc | 22 +- .../azure-open-ai-chat-functions.adoc | 22 +- .../functions/minimax-chat-functions.adoc | 32 +- .../functions/mistralai-chat-functions.adoc | 22 +- .../chat/functions/openai-chat-functions.adoc | 36 +- .../vertexai-gemini-chat-functions.adoc | 24 +- .../functions/zhipuai-chat-functions.adoc | 32 +- .../ROOT/pages/api/chat/huggingface.adoc | 8 +- .../ROOT/pages/api/chat/minimax-chat.adoc | 38 +- .../ROOT/pages/api/chat/mistralai-chat.adoc | 42 +- .../ROOT/pages/api/chat/ollama-chat.adoc | 50 +- .../ROOT/pages/api/chat/openai-chat.adoc | 46 +- .../pages/api/chat/vertexai-gemini-chat.adoc | 36 +- .../pages/api/chat/vertexai-palm2-chat.adoc | 32 +- .../ROOT/pages/api/chat/watsonx-ai-chat.adoc | 20 +- .../ROOT/pages/api/chat/zhipuai-chat.adoc | 38 +- .../modules/ROOT/pages/api/chatclient.adoc | 32 +- .../modules/ROOT/pages/api/embeddings.adoc | 22 +- .../embeddings/azure-openai-embeddings.adoc | 30 +- .../embeddings/bedrock-cohere-embedding.adoc | 26 +- .../embeddings/bedrock-titan-embedding.adoc | 24 +- .../api/embeddings/minimax-embeddings.adoc | 32 +- .../api/embeddings/mistralai-embeddings.adoc | 32 +- .../api/embeddings/ollama-embeddings.adoc | 36 +- .../ROOT/pages/api/embeddings/onnx.adoc | 34 +- .../api/embeddings/openai-embeddings.adoc | 32 +- .../api/embeddings/postgresml-embeddings.adoc | 40 +- .../api/embeddings/vertexai-embeddings.adoc | 20 +- .../api/embeddings/zhipuai-embeddings.adoc | 32 +- .../modules/ROOT/pages/api/generic-model.adoc | 14 +- .../ROOT/pages/api/image/openai-image.adoc | 8 +- .../pages/api/image/stabilityai-image.adoc | 8 +- .../ROOT/pages/api/image/zhipuai-image.adoc | 8 +- .../modules/ROOT/pages/api/imageclient.adoc | 24 +- .../modules/ROOT/pages/api/multimodality.adoc | 2 +- .../antora/modules/ROOT/pages/api/prompt.adoc | 12 +- .../antora/modules/ROOT/pages/api/speech.adoc | 6 +- .../ROOT/pages/api/speech/openai-speech.adoc | 14 +- .../api/structured-output-converter.adoc | 28 +- .../ROOT/pages/api/transcriptions.adoc | 6 +- .../transcriptions/openai-transcriptions.adoc | 12 +- .../modules/ROOT/pages/api/vectordbs.adoc | 6 +- .../pages/api/vectordbs/apache-cassandra.adoc | 14 +- .../ROOT/pages/api/vectordbs/azure.adoc | 6 +- .../ROOT/pages/api/vectordbs/chroma.adoc | 18 +- .../pages/api/vectordbs/elasticsearch.adoc | 12 +- .../ROOT/pages/api/vectordbs/gemfire.adoc | 4 +- .../ROOT/pages/api/vectordbs/hana.adoc | 16 +- .../ROOT/pages/api/vectordbs/milvus.adoc | 10 +- .../ROOT/pages/api/vectordbs/mongodb.adoc | 8 +- .../ROOT/pages/api/vectordbs/neo4j.adoc | 10 +- .../ROOT/pages/api/vectordbs/pgvector.adoc | 14 +- .../ROOT/pages/api/vectordbs/pinecone.adoc | 16 +- .../ROOT/pages/api/vectordbs/qdrant.adoc | 14 +- .../ROOT/pages/api/vectordbs/redis.adoc | 16 +- .../ROOT/pages/api/vectordbs/weaviate.adoc | 12 +- .../ROOT/pages/contribution-guidelines.adoc | 2 +- .../modules/ROOT/pages/upgrade-notes.adoc | 6 +- .../anthropic/AnthropicAutoConfiguration.java | 6 +- .../anthropic/AnthropicChatProperties.java | 10 +- .../openai/AzureOpenAiAutoConfiguration.java | 18 +- .../openai/AzureOpenAiChatProperties.java | 2 +- .../AzureOpenAiEmbeddingProperties.java | 2 +- ...BedrockAnthropicChatAutoConfiguration.java | 6 +- .../BedrockAnthropicChatProperties.java | 2 +- ...edrockAnthropic3ChatAutoConfiguration.java | 6 +- .../BedrockAnthropic3ChatProperties.java | 2 +- .../BedrockCohereChatAutoConfiguration.java | 6 +- ...drockCohereEmbeddingAutoConfiguration.java | 6 +- ...ockAi21Jurassic2ChatAutoConfiguration.java | 6 +- .../BedrockAi21Jurassic2ChatProperties.java | 2 +- .../BedrockLlamaChatAutoConfiguration.java | 6 +- .../llama/BedrockLlamaChatProperties.java | 2 +- .../BedrockTitanChatAutoConfiguration.java | 6 +- ...edrockTitanEmbeddingAutoConfiguration.java | 6 +- .../BedrockTitanEmbeddingProperties.java | 2 +- .../HuggingfaceChatAutoConfiguration.java | 8 +- .../HuggingfaceChatProperties.java | 2 +- .../minimax/MiniMaxAutoConfiguration.java | 12 +- .../minimax/MiniMaxChatProperties.java | 2 +- .../minimax/MiniMaxEmbeddingProperties.java | 2 +- .../mistralai/MistralAiAutoConfiguration.java | 12 +- .../mistralai/MistralAiChatProperties.java | 2 +- .../MistralAiEmbeddingProperties.java | 2 +- .../ollama/OllamaAutoConfiguration.java | 12 +- .../ollama/OllamaChatProperties.java | 2 +- .../ollama/OllamaEmbeddingProperties.java | 2 +- .../openai/OpenAiAutoConfiguration.java | 31 +- .../openai/OpenAiChatProperties.java | 2 +- .../openai/OpenAiEmbeddingProperties.java | 2 +- .../openai/OpenAiImageProperties.java | 2 +- .../PostgresMlAutoConfiguration.java | 10 +- .../PostgresMlEmbeddingProperties.java | 8 +- .../StabilityAiImageAutoConfiguration.java | 6 +- .../StabilityAiImageProperties.java | 2 +- ...rmersEmbeddingModelAutoConfiguration.java} | 28 +- ...TransformersEmbeddingModelProperties.java} | 18 +- .../AzureVectorStoreAutoConfiguration.java | 8 +- ...CassandraVectorStoreAutoConfiguration.java | 6 +- .../ChromaVectorStoreAutoConfiguration.java | 8 +- ...ticsearchVectorStoreAutoConfiguration.java | 8 +- ...HanaCloudVectorStoreAutoConfiguration.java | 6 +- .../MilvusVectorStoreAutoConfiguration.java | 8 +- ...goDBAtlasVectorStoreAutoConfiguration.java | 8 +- .../Neo4jVectorStoreAutoConfiguration.java | 8 +- .../PgVectorStoreAutoConfiguration.java | 8 +- .../PineconeVectorStoreAutoConfiguration.java | 8 +- .../QdrantVectorStoreAutoConfiguration.java | 8 +- .../RedisVectorStoreAutoConfiguration.java | 8 +- .../WeaviateVectorStoreAutoConfiguration.java | 8 +- .../VertexAiGeminiAutoConfiguration.java | 8 +- .../gemini/VertexAiGeminiChatProperties.java | 4 +- .../palm2/VertexAiPalm2AutoConfiguration.java | 12 +- .../VertexAiPalm2EmbeddingProperties.java | 2 +- .../palm2/VertexAiPlam2ChatProperties.java | 2 +- .../watsonxai/WatsonxAiAutoConfiguration.java | 6 +- .../watsonxai/WatsonxAiChatProperties.java | 2 +- .../zhipuai/ZhiPuAiAutoConfiguration.java | 18 +- .../zhipuai/ZhiPuAiChatProperties.java | 2 +- .../zhipuai/ZhiPuAiEmbeddingProperties.java | 2 +- .../zhipuai/ZhiPuAiImageProperties.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../AnthropicAutoConfigurationIT.java | 10 +- .../anthropic/AnthropicPropertiesTests.java | 8 +- .../tool/FunctionCallWithFunctionBeanIT.java | 8 +- .../FunctionCallWithPromptFunctionIT.java | 6 +- .../azure/AzureOpenAiAutoConfigurationIT.java | 30 +- .../tool/FunctionCallWithFunctionBeanIT.java | 10 +- .../FunctionCallWithFunctionWrapperIT.java | 6 +- .../FunctionCallWithPromptFunctionIT.java | 6 +- ...drockAnthropicChatAutoConfigurationIT.java | 16 +- ...rockAnthropic3ChatAutoConfigurationIT.java | 16 +- .../BedrockCohereChatAutoConfigurationIT.java | 16 +- ...ockCohereEmbeddingAutoConfigurationIT.java | 24 +- ...kAi21Jurassic2ChatAutoConfigurationIT.java | 13 +- .../BedrockLlamaChatAutoConfigurationIT.java | 16 +- .../BedrockTitanChatAutoConfigurationIT.java | 16 +- ...rockTitanEmbeddingAutoConfigurationIT.java | 26 +- .../minimax/FunctionCallbackInPromptIT.java | 10 +- ...nctionCallbackWithPlainFunctionBeanIT.java | 18 +- .../minimax/FunctionCallbackWrapperIT.java | 10 +- .../minimax/MiniMaxAutoConfigurationIT.java | 18 +- .../minimax/MiniMaxPropertiesTests.java | 16 +- .../MistralAiAutoConfigurationIT.java | 18 +- .../mistralai/tool/PaymentStatusBeanIT.java | 6 +- .../tool/PaymentStatusBeanOpenAiIT.java | 8 +- .../mistralai/tool/PaymentStatusPromptIT.java | 6 +- .../tool/WeatherServicePromptIT.java | 6 +- .../ollama/OllamaChatAutoConfigurationIT.java | 16 +- .../OllamaEmbeddingAutoConfigurationIT.java | 16 +- .../openai/OpenAiAutoConfigurationIT.java | 37 +- .../openai/OpenAiPropertiesTests.java | 24 +- .../tool/FunctionCallbackInPrompt2IT.java | 120 ++++ .../tool/FunctionCallbackInPromptIT.java | 10 +- ...nctionCallbackWithPlainFunctionBeanIT.java | 36 +- .../tool/FunctionCallbackWrapper2IT.java | 112 ++++ .../tool/FunctionCallbackWrapperIT.java | 10 +- .../PostgresMlAutoConfigurationIT.java | 14 +- .../PostgresMlEmbeddingPropertiesTests.java | 4 +- .../StabilityAiAutoConfigurationIT.java | 6 +- .../StabilityAiImagePropertiesTests.java | 8 +- ...ersEmbeddingModelAutoConfigurationIT.java} | 42 +- .../AzureVectorStoreAutoConfigurationIT.java | 8 +- ...ssandraVectorStoreAutoConfigurationIT.java | 8 +- .../ChromaVectorStoreAutoConfigurationIT.java | 8 +- .../MilvusVectorStoreAutoConfigurationIT.java | 8 +- .../Neo4jVectorStoreAutoConfigurationIT.java | 8 +- .../PgVectorStoreAutoConfigurationIT.java | 8 +- ...ineconeVectorStoreAutoConfigurationIT.java | 8 +- .../QdrantVectorStoreAutoConfigurationIT.java | 8 +- ...ntVectorStoreCloudAutoConfigurationIT.java | 8 +- .../RedisVectorStoreAutoConfigurationIT.java | 8 +- ...iateVectorStoreAutoConfigurationTests.java | 8 +- .../VertexAiGeminiAutoConfigurationIT.java | 10 +- .../tool/FunctionCallWithFunctionBeanIT.java | 18 +- .../FunctionCallWithFunctionWrapperIT.java | 8 +- .../FunctionCallWithPromptFunctionIT.java | 10 +- .../VertexAiPaLm2AutoConfigurationIT.java | 26 +- .../zhipuai/ZhiPuAiAutoConfigurationIT.java | 24 +- .../zhipuai/ZhiPuAiPropertiesTests.java | 24 +- .../tool/FunctionCallbackInPromptIT.java | 10 +- ...nctionCallbackWithPlainFunctionBeanIT.java | 18 +- .../tool/FunctionCallbackWrapperIT.java | 10 +- ...romaContainerConnectionDetailsFactory.java | 2 +- ...lvusContainerConnectionDetailsFactory.java | 2 +- ...lamaContainerConnectionDetailsFactory.java | 2 +- ...rantContainerConnectionDetailsFactory.java | 2 +- ...edisContainerConnectionDetailsFactory.java | 2 +- ...iateContainerConnectionDetailsFactory.java | 2 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- ...ContainerConnectionDetailsFactoryTest.java | 8 +- .../ai/evaluation/BaseMemoryTest.java | 4 +- .../ai/evaluation/BasicEvaluationTest.java | 8 +- .../main/resources/test/data/spring.ai.txt | 2 +- .../vectorstore/azure/AzureVectorStore.java | 24 +- .../vectorstore/azure/AzureVectorStoreIT.java | 12 +- .../ai/vectorstore/CassandraVectorStore.java | 24 +- .../CassandraVectorStoreConfig.java | 2 +- .../CassandraRichSchemaVectorStoreIT.java | 12 +- .../vectorstore/CassandraVectorStoreIT.java | 14 +- .../vectorstore/WikiVectorStoreExample.java | 12 +- .../ai/vectorstore/ChromaVectorStore.java | 22 +- .../vectorstore/BasicAuthChromaWhereIT.java | 12 +- .../ai/vectorstore/ChromaVectorStoreIT.java | 12 +- .../TokenSecuredChromaWhereIT.java | 12 +- .../vectorstore/ElasticsearchVectorStore.java | 22 +- .../ElasticsearchVectorStoreIT.java | 12 +- .../ai/vectorstore/GemFireVectorStore.java | 14 +- .../ai/vectorstore/GemFireVectorStoreIT.java | 12 +- .../ai/vectorstore/HanaCloudVectorStore.java | 17 +- .../CricketWorldCupHanaController.java | 10 +- .../vectorstore/HanaCloudVectorStoreIT.java | 12 +- .../ai/vectorstore/MilvusVectorStore.java | 22 +- .../MilvusEmbeddingDimensionsTests.java | 22 +- .../ai/vectorstore/MilvusVectorStoreIT.java | 14 +- .../vectorstore/MongoDBAtlasVectorStore.java | 18 +- .../MongoDBAtlasVectorStoreIT.java | 12 +- .../ai/vectorstore/Neo4jVectorStore.java | 14 +- .../ai/vectorstore/Neo4jVectorStoreIT.java | 12 +- .../ai/vectorstore/PgVectorStore.java | 24 +- .../PgVectorEmbeddingDimensionsTests.java | 22 +- .../ai/vectorstore/PgVectorStoreIT.java | 12 +- .../ai/vectorstore/PineconeVectorStore.java | 16 +- .../ai/vectorstore/PineconeVectorStoreIT.java | 12 +- .../vectorstore/qdrant/QdrantVectorStore.java | 25 +- .../qdrant/QdrantVectorStoreIT.java | 12 +- .../ai/vectorstore/RedisVectorStore.java | 20 +- .../ai/vectorstore/RedisVectorStoreIT.java | 12 +- .../ai/vectorstore/WeaviateVectorStore.java | 16 +- .../ai/vectorstore/WeaviateVectorStoreIT.java | 12 +- 426 files changed, 4815 insertions(+), 2912 deletions(-) rename models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/{AnthropicChatClient.java => AnthropicChatModel.java} (94%) rename models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/{AnthropicChatClientIT.java => AnthropicChatModelIT.java} (91%) rename models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/{AzureOpenAiChatClient.java => AzureOpenAiChatModel.java} (96%) rename models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/{AzureOpenAiEmbeddingClient.java => AzureOpenAiEmbeddingModel.java} (91%) rename models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/{AzureOpenAiChatClientIT.java => AzureOpenAiChatModelIT.java} (91%) rename models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/{AzureOpenAiEmbeddingClientIT.java => AzureOpenAiEmbeddingModelIT.java} (79%) rename models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/{AzureOpenAiChatClientFunctionCallIT.java => AzureOpenAiChatModelFunctionCallIT.java} (89%) rename models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/{AzureOpenAiChatClientMetadataTests.java => AzureOpenAiChatModelMetadataTests.java} (96%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/{BedrockAnthropicChatClient.java => BedrockAnthropicChatModel.java} (87%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/{BedrockAnthropic3ChatClient.java => BedrockAnthropic3ChatModel.java} (91%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/{BedrockCohereChatClient.java => BedrockCohereChatModel.java} (89%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/{BedrockCohereEmbeddingClient.java => BedrockCohereEmbeddingModel.java} (88%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/{BedrockAi21Jurassic2ChatClient.java => BedrockAi21Jurassic2ChatModel.java} (85%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/{BedrockLlamaChatClient.java => BedrockLlamaChatModel.java} (88%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/{BedrockTitanChatClient.java => BedrockTitanChatModel.java} (91%) rename models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/{BedrockTitanEmbeddingClient.java => BedrockTitanEmbeddingModel.java} (91%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/{BedrockAnthropicChatClientIT.java => BedrockAnthropicChatModelIT.java} (90%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/{BedrockAnthropic3ChatClientIT.java => BedrockAnthropic3ChatModelIT.java} (90%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/{BedrockCohereChatClientIT.java => BedrockCohereChatModelIT.java} (90%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/{BedrockCohereEmbeddingClientIT.java => BedrockCohereEmbeddingModelIT.java} (81%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/{BedrockAi21Jurassic2ChatClientIT.java => BedrockAi21Jurassic2ChatModelIT.java} (92%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/{BedrockLlamaChatClientIT.java => BedrockLlamaModelCallerIT.java} (91%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/{BedrockTitanEmbeddingClientIT.java => BedrockTitanEmbeddingModelIT.java} (83%) rename models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/{BedrockTitanChatClientIT.java => BedrockTitanModelCalerlIT.java} (91%) rename models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/{HuggingfaceChatClient.java => HuggingfaceChatModel.java} (87%) rename models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/{MiniMaxChatClient.java => MiniMaxChatModel.java} (91%) rename models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/{MiniMaxEmbeddingClient.java => MiniMaxEmbeddingModel.java} (87%) rename models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/{MistralAiChatClient.java => MistralAiChatModel.java} (95%) rename models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/{MistralAiEmbeddingClient.java => MistralAiEmbeddingModel.java} (89%) rename models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/{MistralAiChatClientIT.java => MistralAiChatModelIT.java} (91%) rename models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/{OllamaChatClient.java => OllamaChatModel.java} (91%) rename models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/{OllamaEmbeddingClient.java => OllamaEmbeddingModel.java} (89%) rename models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/{OllamaChatClientIT.java => OllamaChatModelIT.java} (90%) rename models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/{OllamaChatClientMultimodalIT.java => OllamaChatModelMultimodalIT.java} (88%) rename models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/{OllamaEmbeddingClientIT.java => OllamaEmbeddingModelIT.java} (84%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/{OpenAiAudioSpeechClient.java => OpenAiAudioSpeechModel.java} (92%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/{OpenAiAudioTranscriptionClient.java => OpenAiAudioTranscriptionModel.java} (92%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/{OpenAiChatClient.java => OpenAiChatModel.java} (93%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/{OpenAiEmbeddingClient.java => OpenAiEmbeddingModel.java} (88%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/{OpenAiImageClient.java => OpenAiImageModel.java} (94%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/{SpeechClient.java => SpeechModel.java} (87%) rename models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/{StreamingSpeechClient.java => StreamingSpeechModel.java} (87%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/{OpenAiSpeechClientIT.java => OpenAiSpeechModelIT.java} (90%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/{OpenAiSpeechClientWithSpeechResponseMetadataTests.java => OpenAiSpeechModelWithSpeechResponseMetadataTests.java} (92%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/{OpenAiTranscriptionClientIT.java => OpenAiTranscriptionModelIT.java} (92%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/{OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests.java => OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.java} (92%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/{TranscriptionClientTests.java => TranscriptionModelTests.java} (91%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/{OpenAiChatClient2IT.java => OpenAiChatModel2IT.java} (89%) create mode 100644 models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/{OpenAiChatClientTypeReferenceBeanOutputConverterIT.java => OpenAiChatModelTypeReferenceBeanOutputConverterIT.java} (93%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/{OpenAiChatClientWithChatResponseMetadataTests.java => OpenAiChatModelWithChatResponseMetadataTests.java} (94%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/{OpenAiImageClientIT.java => OpenAiImageModelIT.java} (95%) rename models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/{OpenAiImageClientWithImageResponseMetadataTests.java => OpenAiImageModelWithImageResponseMetadataTests.java} (91%) rename models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/{PostgresMlEmbeddingClient.java => PostgresMlEmbeddingModel.java} (91%) rename models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/{PostgresMlEmbeddingClientIT.java => PostgresMlEmbeddingModelIT.java} (79%) rename models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/{StabilityAiImageClient.java => StabilityAiImageModel.java} (90%) rename models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/{StabilityAiImageClientIT.java => StabilityAiImageModelIT.java} (91%) rename models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/{TransformersEmbeddingClient.java => TransformersEmbeddingModel.java} (97%) rename models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/{TransformersEmbeddingClientTests.java => TransformersEmbeddingModelTests.java} (72%) rename models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/{VertexAiGeminiChatClient.java => VertexAiGeminiChatModel.java} (95%) rename models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/{VertexAiGeminiChatClientIT.java => VertexAiGeminiChatModelIT.java} (91%) rename models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/{VertexAiGeminiChatClientFunctionCallingIT.java => VertexAiGeminiChatModelFunctionCallingIT.java} (92%) rename models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/{VertexAiPaLm2ChatClient.java => VertexAiPaLm2ChatModel.java} (90%) rename models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/{VertexAiPaLm2EmbeddingClient.java => VertexAiPaLm2EmbeddingModel.java} (88%) rename models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/{VertexAiPaLm2EmbeddingClientIT.java => VertexAiPaLm2EmbeddingModelIT.java} (78%) rename models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/{WatsonxAiChatClient.java => WatsonxAiChatModel.java} (90%) rename models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/{WatsonxAiChatClientTest.java => WatsonxAiChatModelTest.java} (93%) rename models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/{ZhiPuAiChatClient.java => ZhiPuAiChatModel.java} (93%) rename models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/{ZhiPuAiEmbeddingClient.java => ZhiPuAiEmbeddingModel.java} (87%) rename models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/{ZhiPuAiImageClient.java => ZhiPuAiImageModel.java} (92%) rename models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/{ZhiPuAiImageClientIT.java => ZhiPuAiImageModelIT.java} (92%) create mode 100644 spring-ai-core/src/main/java/org/springframework/ai/chat/ChatModel.java create mode 100644 spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatClient.java rename spring-ai-core/src/main/java/org/springframework/ai/chat/{StreamingChatClient.java => StreamingChatModel.java} (91%) rename spring-ai-core/src/main/java/org/springframework/ai/embedding/{AbstractEmbeddingClient.java => AbstractEmbeddingModel.java} (82%) rename spring-ai-core/src/main/java/org/springframework/ai/embedding/{EmbeddingClient.java => EmbeddingModel.java} (91%) rename spring-ai-core/src/main/java/org/springframework/ai/image/{ImageClient.java => ImageModel.java} (85%) rename spring-ai-core/src/main/java/org/springframework/ai/model/{ModelClient.java => Model.java} (82%) create mode 100644 spring-ai-core/src/main/java/org/springframework/ai/model/ModelDescription.java rename spring-ai-core/src/main/java/org/springframework/ai/model/{StreamingModelClient.java => StreamingModel.java} (82%) create mode 100644 spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTest.java rename spring-ai-core/src/test/java/org/springframework/ai/chat/{ChatClientTests.java => ChatModelTests.java} (96%) rename spring-ai-core/src/test/java/org/springframework/ai/embedding/{AbstractEmbeddingClientTests.java => AbstractEmbeddingModelTests.java} (82%) rename spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/{TransformersEmbeddingClientAutoConfiguration.java => TransformersEmbeddingModelAutoConfiguration.java} (60%) rename spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/{TransformersEmbeddingClientProperties.java => TransformersEmbeddingModelProperties.java} (90%) create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPrompt2IT.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapper2IT.java rename spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/{TransformersEmbeddingClientAutoConfigurationIT.java => TransformersEmbeddingModelAutoConfigurationIT.java} (66%) diff --git a/README.md b/README.md index 91f625092..1800788c8 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,147 @@ Let's make your `@Beans` intelligent! For further information go to our [Spring AI reference documentation](https://docs.spring.io/spring-ai/reference/). -### Breaking changes -(15.05.2024) -On our march to release 1.0 M1 we have made several breaking changes. Apologies, it is for the best! +## Breaking changes + +On our march to release 1.0.0 M1 we have made several breaking changes. Apologies, it is for the best! + +**(22.05.2024)** + +A major change was made that took the 'old' `ChatClient` and moved the functionality into `ChatModel`. The 'new' `ChatClient` now takes an instance of `ChatModel`. This was done do support a fluent API for creating and executing prompts in a style similar to other client classes in the Spring ecosystem, such as `RestClient`, `WebClient`, and `JdbcClient`. Refer to the [JavaDoc](https://docs.spring.io/spring-ai/docs/1.0.0-SNAPSHOT/api/) for more information on the Fluent API, proper reference documentation is coming shortly. + +We renamed the 'old' `ModelClient` to `Model` and renamed implementing classes, for example `ImageClient` was renamed to `ImageModel`. The `Model` implementation represent the portability layer that converts between the Spring AI API and the underlying AI Model API. + +### Adapting to the changes + +#### Approach 1 + +Now, instead of getting an Autoconfigured `ChatClient` instance, you will get a `ChatModel` instance. The `call` method signatures after renaming remain the same. +To adapt your code should refactor you code to change use of the type `ChatClient` to `ChatModel` +Here is an example of existing code before the change + +```java +@RestController +public class OldSimpleAiController { + + private final ChatClient chatClient; + + @Autowired + public OldSimpleAiController(ChatClient chatClient) { + this.chatClient = chatClient; + } + + @GetMapping("/ai/simple") + public Map completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { + return Map.of("generation", chatClient.call(message)); + } +} +``` + +Now after the changes this will be + +```java +@RestController +public class SimpleAiController { + + private final ChatModel chatModel; + + @Autowired + public SimpleAiController(ChatModel chatModel) { + this.chatModel = chatModel; + } + + @GetMapping("/ai/simple") + public Map completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { + return Map.of("generation", chatModel.call(message)); + } +} +``` + +NOTE: The renaming also applies to the classes +* `StreamingChatClient` -> `StreamingChatModel` +* `EmbeddingClient` -> `EmbeddingModel` +* `ImageClient` -> `ImageModel` +* `SpeechClient` -> `SpeechModel` +* and similar for other `Client` classes + +#### Approach 2 + +In this approach you will use the new fluent API available on the 'new' `ChatClient` + +Here is an example of existing code before the change + +```java +@RestController +public class OldSimpleAiController { + + private final ChatClient chatClient; + + @Autowired + public OldSimpleAiController(ChatClient chatClient) { + this.chatClient = chatClient; + } + + @GetMapping("/ai/simple") + public Map completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { + return Map.of( + "generation", + chatClient.call(message) + ); + } +} +``` + + +Now after the changes this will be + +```java +@RestController +public class SimpleAiController { + + private final ChatClient chatClient; + + @Autowired + public SimpleAiController(ChatClient chatClient) { + this.chatClient = chatClient; + } + + @GetMapping("/ai/simple") + public Map completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { + return Map.of( + "generation", + chatClient.prompt().user(message).call().content() + ); + } +} +``` + +and in your `@Configuration` class you need to define an `@Bean` as shown below + +```java +@Configuration +public class ApplicationConfiguration { + + @Bean + ChatClient chatClient(ChatModel chatModel) { + return ChatClient.builder(chatModel).build(); + } +} +``` + +NOTE: The `ChatModel` instance is made available to you through autoconfiguration. + +#### Approach 3 + +There is a tag in the GitHub repository called [v1.0.0-SNAPSHOT-before-chatclient-changes](https://github.com/spring-projects/spring-ai/tree/v1.0.0-SNAPSHOT-before-chatclient-changes) that you can checkout and do a local build to avoid updating any of your code until you are ready to migrate your code base. + +```bash +git checkout tags/v1.0.0-SNAPSHOT-before-chatclient-changes + +./mvnw clean install -DskipTests +``` + + +**(15.05.2024)** Renamed POM artifact names: - spring-ai-qdrant -> spring-ai-qdrant-store diff --git a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatClient.java b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java similarity index 94% rename from models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatClient.java rename to models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java index 0f9bcbf44..c8802cbaa 100644 --- a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatClient.java +++ b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java @@ -26,6 +26,7 @@ import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.ai.chat.ChatModel; import reactor.core.publisher.Flux; import org.springframework.ai.anthropic.api.AnthropicApi; @@ -38,10 +39,9 @@ import org.springframework.ai.anthropic.api.AnthropicApi.Role; import org.springframework.ai.anthropic.api.AnthropicApi.StreamResponse; import org.springframework.ai.anthropic.api.AnthropicApi.Usage; import org.springframework.ai.anthropic.metadata.AnthropicChatResponseMetadata; -import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.prompt.ChatOptions; @@ -56,16 +56,16 @@ import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; /** - * The {@link ChatClient} implementation for the Anthropic service. + * The {@link ChatModel} implementation for the Anthropic service. * * @author Christian Tzolov * @since 1.0.0 */ -public class AnthropicChatClient extends +public class AnthropicChatModel extends AbstractFunctionCallSupport> - implements ChatClient, StreamingChatClient { + implements ChatModel, StreamingChatModel { - private static final Logger logger = LoggerFactory.getLogger(AnthropicChatClient.class); + private static final Logger logger = LoggerFactory.getLogger(AnthropicChatModel.class); public static final String DEFAULT_MODEL_NAME = AnthropicApi.ChatModel.CLAUDE_3_OPUS.getValue(); @@ -89,10 +89,10 @@ public class AnthropicChatClient extends public final RetryTemplate retryTemplate; /** - * Construct a new {@link AnthropicChatClient} instance. + * Construct a new {@link AnthropicChatModel} instance. * @param anthropicApi the lower-level API for the Anthropic service. */ - public AnthropicChatClient(AnthropicApi anthropicApi) { + public AnthropicChatModel(AnthropicApi anthropicApi) { this(anthropicApi, AnthropicChatOptions.builder() .withModel(DEFAULT_MODEL_NAME) @@ -102,34 +102,34 @@ public class AnthropicChatClient extends } /** - * Construct a new {@link AnthropicChatClient} instance. + * Construct a new {@link AnthropicChatModel} instance. * @param anthropicApi the lower-level API for the Anthropic service. * @param defaultOptions the default options used for the chat completion requests. */ - public AnthropicChatClient(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions) { + public AnthropicChatModel(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions) { this(anthropicApi, defaultOptions, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Construct a new {@link AnthropicChatClient} instance. + * Construct a new {@link AnthropicChatModel} instance. * @param anthropicApi the lower-level API for the Anthropic service. * @param defaultOptions the default options used for the chat completion requests. * @param retryTemplate the retry template used to retry the Anthropic API calls. */ - public AnthropicChatClient(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions, + public AnthropicChatModel(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions, RetryTemplate retryTemplate) { this(anthropicApi, defaultOptions, retryTemplate, null); } /** - * Construct a new {@link AnthropicChatClient} instance. + * Construct a new {@link AnthropicChatModel} instance. * @param anthropicApi the lower-level API for the Anthropic service. * @param defaultOptions the default options used for the chat completion requests. * @param retryTemplate the retry template used to retry the Anthropic API calls. * @param functionCallbackContext the function callback context used to store the * state of the function calls. */ - public AnthropicChatClient(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions, + public AnthropicChatModel(AnthropicApi anthropicApi, AnthropicChatOptions defaultOptions, RetryTemplate retryTemplate, FunctionCallbackContext functionCallbackContext) { super(functionCallbackContext); @@ -457,4 +457,9 @@ public class AnthropicChatClient extends "Streaming (stream=true) is not yet supported. We plan to add streaming support in a future beta version."); } + @Override + public ChatOptions getDefaultOptions() { + return AnthropicChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java index 7cd7bdb23..6d13f6bae 100644 --- a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java +++ b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java @@ -51,11 +51,11 @@ public class AnthropicChatOptions implements ChatOptions, FunctionCallingOptions private @JsonProperty("top_k") Integer topK; /** - * Tool Function Callbacks to register with the ChatClient. For Prompt + * Tool Function Callbacks to register with the ChatModel. For Prompt * Options the functionCallbacks are automatically enabled for the duration of the * prompt execution. For Default Options the functionCallbacks are registered but * disabled by default. Use the enableFunctions to set the functions from the registry - * to be used by the ChatClient chat completion requests. + * to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -223,4 +223,17 @@ public class AnthropicChatOptions implements ChatOptions, FunctionCallingOptions this.functions = functions; } + public static AnthropicChatOptions fromOptions(AnthropicChatOptions fromOptions) { + return builder().withModel(fromOptions.getModel()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withMetadata(fromOptions.getMetadata()) + .withStopSequences(fromOptions.getStopSequences()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTopK(fromOptions.getTopK()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/api/AnthropicApi.java b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/api/AnthropicApi.java index eb5a96289..76c969a44 100644 --- a/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/api/AnthropicApi.java +++ b/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/api/AnthropicApi.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.retry.RetryUtils; import org.springframework.http.HttpHeaders; @@ -116,7 +117,7 @@ public class AnthropicApi { * "https://docs.anthropic.com/claude/docs/models-overview#model-comparison">model * comparison for additional details and options. */ - public enum ChatModel { + public enum ChatModel implements ModelDescription { // @formatter:off CLAUDE_3_OPUS("claude-3-opus-20240229"), @@ -140,6 +141,11 @@ public class AnthropicApi { return this.value; } + @Override + public String getModelName() { + return this.value; + } + } /** diff --git a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatClientIT.java b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java similarity index 91% rename from models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatClientIT.java rename to models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java index ce5b45d37..e2eed692c 100644 --- a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatClientIT.java +++ b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java @@ -29,10 +29,10 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.anthropic.api.AnthropicApi; import org.springframework.ai.anthropic.api.tool.MockWeatherService; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Media; import org.springframework.ai.chat.messages.Message; @@ -56,15 +56,15 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = AnthropicTestConfiguration.class, properties = "spring.ai.retry.on-http-codes=429") @EnabledIfEnvironmentVariable(named = "ANTHROPIC_API_KEY", matches = ".+") -class AnthropicChatClientIT { +class AnthropicChatModelIT { - private static final Logger logger = LoggerFactory.getLogger(AnthropicChatClientIT.class); + private static final Logger logger = LoggerFactory.getLogger(AnthropicChatModelIT.class); @Autowired - protected ChatClient chatClient; + protected ChatModel chatModel; @Autowired - protected StreamingChatClient streamingChatClient; + protected StreamingChatModel streamingChatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -76,7 +76,7 @@ class AnthropicChatClientIT { SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = chatClient.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResults()).hasSize(1); assertThat(response.getMetadata().getUsage().getGenerationTokens()).isGreaterThan(0); assertThat(response.getMetadata().getUsage().getPromptTokens()).isGreaterThan(0); @@ -102,7 +102,7 @@ class AnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.chatClient.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = listOutputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -120,7 +120,7 @@ class AnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = mapOutputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -142,7 +142,7 @@ class AnthropicChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = beanOutputConverter.convert(generation.getOutput().getContent()); logger.info("" + actorsFilms); @@ -163,7 +163,7 @@ class AnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = streamingChatClient.stream(prompt) + String generationTextFromStream = streamingChatModel.stream(prompt) .collectList() .block() .stream() @@ -187,7 +187,7 @@ class AnthropicChatClientIT { var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); - var response = chatClient.call(new Prompt(List.of(userMessage))); + var response = chatModel.call(new Prompt(List.of(userMessage))); logger.info(response.getResult().getOutput().getContent()); assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple", "basket"); @@ -209,7 +209,7 @@ class AnthropicChatClientIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(messages, promptOptions)); + ChatResponse response = chatModel.call(new Prompt(messages, promptOptions)); logger.info("Response: {}", response); diff --git a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicTestConfiguration.java b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicTestConfiguration.java index 649fbef1a..3f4551321 100644 --- a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicTestConfiguration.java +++ b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicTestConfiguration.java @@ -38,9 +38,9 @@ public class AnthropicTestConfiguration { } @Bean - public AnthropicChatClient openAiChatClient(AnthropicApi api) { - AnthropicChatClient anthropicChatClient = new AnthropicChatClient(api); - return anthropicChatClient; + public AnthropicChatModel openAiChatModel(AnthropicApi api) { + AnthropicChatModel anthropicChatModel = new AnthropicChatModel(api); + return anthropicChatModel; } } diff --git a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/ChatCompletionRequestTests.java b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/ChatCompletionRequestTests.java index bc777a846..b5c47abd0 100644 --- a/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/ChatCompletionRequestTests.java +++ b/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/ChatCompletionRequestTests.java @@ -30,7 +30,7 @@ public class ChatCompletionRequestTests { @Test public void createRequestWithChatOptions() { - var client = new AnthropicChatClient(new AnthropicApi("TEST"), + var client = new AnthropicChatModel(new AnthropicApi("TEST"), AnthropicChatOptions.builder().withModel("DEFAULT_MODEL").withTemperature(66.6f).build()); var request = client.createRequest(new Prompt("Test message content"), false); diff --git a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatClient.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java similarity index 96% rename from models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatClient.java rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java index a49a42ff5..712f53567 100644 --- a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatClient.java +++ b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java @@ -38,10 +38,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.azure.openai.metadata.AzureOpenAiChatResponseMetadata; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.metadata.PromptMetadata; @@ -63,7 +63,7 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; /** - * {@link ChatClient} implementation for {@literal Microsoft Azure AI} backed by + * {@link ChatModel} implementation for {@literal Microsoft Azure AI} backed by * {@link OpenAIClient}. * * @author Mark Pollack @@ -71,12 +71,12 @@ import java.util.concurrent.atomic.AtomicBoolean; * @author John Blum * @author Christian Tzolov * @author Grogdunn - * @see ChatClient + * @see ChatModel * @see com.azure.ai.openai.OpenAIClient */ -public class AzureOpenAiChatClient +public class AzureOpenAiChatModel extends AbstractFunctionCallSupport - implements ChatClient, StreamingChatClient { + implements ChatModel, StreamingChatModel { private static final String DEFAULT_DEPLOYMENT_NAME = "gpt-35-turbo"; @@ -94,7 +94,7 @@ public class AzureOpenAiChatClient */ private final OpenAIClient openAIClient; - public AzureOpenAiChatClient(OpenAIClient microsoftOpenAiClient) { + public AzureOpenAiChatModel(OpenAIClient microsoftOpenAiClient) { this(microsoftOpenAiClient, AzureOpenAiChatOptions.builder() .withDeploymentName(DEFAULT_DEPLOYMENT_NAME) @@ -102,11 +102,11 @@ public class AzureOpenAiChatClient .build()); } - public AzureOpenAiChatClient(OpenAIClient microsoftOpenAiClient, AzureOpenAiChatOptions options) { + public AzureOpenAiChatModel(OpenAIClient microsoftOpenAiClient, AzureOpenAiChatOptions options) { this(microsoftOpenAiClient, options, null); } - public AzureOpenAiChatClient(OpenAIClient microsoftOpenAiClient, AzureOpenAiChatOptions options, + public AzureOpenAiChatModel(OpenAIClient microsoftOpenAiClient, AzureOpenAiChatOptions options, FunctionCallbackContext functionCallbackContext) { super(functionCallbackContext); Assert.notNull(microsoftOpenAiClient, "com.azure.ai.openai.OpenAIClient must not be null"); @@ -117,17 +117,17 @@ public class AzureOpenAiChatClient /** * @deprecated since 0.8.0, use - * {@link #AzureOpenAiChatClient(OpenAIClient, AzureOpenAiChatOptions)} instead. + * {@link #AzureOpenAiChatModel(OpenAIClient, AzureOpenAiChatOptions)} instead. */ @Deprecated(forRemoval = true, since = "0.8.0") - public AzureOpenAiChatClient withDefaultOptions(AzureOpenAiChatOptions defaultOptions) { + public AzureOpenAiChatModel withDefaultOptions(AzureOpenAiChatOptions defaultOptions) { Assert.notNull(defaultOptions, "DefaultOptions must not be null"); this.defaultOptions = defaultOptions; return this; } public AzureOpenAiChatOptions getDefaultOptions() { - return this.defaultOptions; + return AzureOpenAiChatOptions.fromOptions(this.defaultOptions); } @Override diff --git a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java index 681285ecc..6e2d4f5eb 100644 --- a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java +++ b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java @@ -127,11 +127,11 @@ public class AzureOpenAiChatOptions implements FunctionCallingOptions, ChatOptio private String deploymentName; /** - * OpenAI Tool Function Callbacks to register with the ChatClient. For Prompt Options + * OpenAI Tool Function Callbacks to register with the ChatModel. For Prompt Options * the functionCallbacks are automatically enabled for the duration of the prompt * execution. For Default Options the functionCallbacks are registered but disabled by * default. Use the enableFunctions to set the functions from the registry to be used - * by the ChatClient chat completion requests. + * by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -356,4 +356,22 @@ public class AzureOpenAiChatOptions implements FunctionCallingOptions, ChatOptio this.functions = functions; } + public static AzureOpenAiChatOptions fromOptions(AzureOpenAiChatOptions fromOptions) { + return builder().withDeploymentName(fromOptions.getDeploymentName()) + .withFrequencyPenalty( + fromOptions.getFrequencyPenalty() != null ? fromOptions.getFrequencyPenalty().floatValue() : null) + .withLogitBias(fromOptions.getLogitBias()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withN(fromOptions.getN()) + .withPresencePenalty( + fromOptions.getPresencePenalty() != null ? fromOptions.getPresencePenalty().floatValue() : null) + .withStop(fromOptions.getStop()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withUser(fromOptions.getUser()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClient.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModel.java similarity index 91% rename from models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClient.java rename to models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModel.java index 66add3a9e..e9679bc39 100644 --- a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClient.java +++ b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModel.java @@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -37,9 +37,9 @@ import org.springframework.ai.embedding.EmbeddingResponseMetadata; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.util.Assert; -public class AzureOpenAiEmbeddingClient extends AbstractEmbeddingClient { +public class AzureOpenAiEmbeddingModel extends AbstractEmbeddingModel { - private static final Logger logger = LoggerFactory.getLogger(AzureOpenAiEmbeddingClient.class); + private static final Logger logger = LoggerFactory.getLogger(AzureOpenAiEmbeddingModel.class); private final OpenAIClient azureOpenAiClient; @@ -47,16 +47,16 @@ public class AzureOpenAiEmbeddingClient extends AbstractEmbeddingClient { private final MetadataMode metadataMode; - public AzureOpenAiEmbeddingClient(OpenAIClient azureOpenAiClient) { + public AzureOpenAiEmbeddingModel(OpenAIClient azureOpenAiClient) { this(azureOpenAiClient, MetadataMode.EMBED); } - public AzureOpenAiEmbeddingClient(OpenAIClient azureOpenAiClient, MetadataMode metadataMode) { + public AzureOpenAiEmbeddingModel(OpenAIClient azureOpenAiClient, MetadataMode metadataMode) { this(azureOpenAiClient, metadataMode, AzureOpenAiEmbeddingOptions.builder().withDeploymentName("text-embedding-ada-002").build()); } - public AzureOpenAiEmbeddingClient(OpenAIClient azureOpenAiClient, MetadataMode metadataMode, + public AzureOpenAiEmbeddingModel(OpenAIClient azureOpenAiClient, MetadataMode metadataMode, AzureOpenAiEmbeddingOptions options) { Assert.notNull(azureOpenAiClient, "com.azure.ai.openai.OpenAIClient must not be null"); Assert.notNull(metadataMode, "Metadata mode must not be null"); diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureChatCompletionsOptionsTests.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureChatCompletionsOptionsTests.java index 1e0ba2939..1bbcc5e8f 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureChatCompletionsOptionsTests.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureChatCompletionsOptionsTests.java @@ -53,7 +53,7 @@ public class AzureChatCompletionsOptionsTests { .withUser("user") .build(); - var client = new AzureOpenAiChatClient(mockClient, defaultOptions); + var client = new AzureOpenAiChatModel(mockClient, defaultOptions); var requestOptions = client.toAzureChatCompletionsOptions(new Prompt("Test message content")); diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureEmbeddingsOptionsTests.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureEmbeddingsOptionsTests.java index 3a5e194d9..18fe0e56a 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureEmbeddingsOptionsTests.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureEmbeddingsOptionsTests.java @@ -36,7 +36,7 @@ public class AzureEmbeddingsOptionsTests { public void createRequestWithChatOptions() { OpenAIClient mockClient = Mockito.mock(OpenAIClient.class); - var client = new AzureOpenAiEmbeddingClient(mockClient, MetadataMode.EMBED, + var client = new AzureOpenAiEmbeddingModel(mockClient, MetadataMode.EMBED, AzureOpenAiEmbeddingOptions.builder() .withDeploymentName("DEFAULT_MODEL") .withUser("USER_TEST") diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatClientIT.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatModelIT.java similarity index 91% rename from models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatClientIT.java rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatModelIT.java index 253e13d57..f991e334f 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatClientIT.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatModelIT.java @@ -46,13 +46,13 @@ import org.springframework.core.convert.support.DefaultConversionService; import static org.assertj.core.api.Assertions.assertThat; -@SpringBootTest(classes = AzureOpenAiChatClientIT.TestConfiguration.class) +@SpringBootTest(classes = AzureOpenAiChatModelIT.TestConfiguration.class) @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_API_KEY", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_ENDPOINT", matches = ".+") -class AzureOpenAiChatClientIT { +class AzureOpenAiChatModelIT { @Autowired - private AzureOpenAiChatClient chatClient; + private AzureOpenAiChatModel chatModel; record ActorsFilms(String actor, List movies) { } @@ -69,7 +69,7 @@ class AzureOpenAiChatClientIT { UserMessage userMessage = new UserMessage("Generate the names of 5 famous pirates."); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = chatClient.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -86,7 +86,7 @@ class AzureOpenAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -105,7 +105,7 @@ class AzureOpenAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -124,7 +124,7 @@ class AzureOpenAiChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilms actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isNotNull(); @@ -145,7 +145,7 @@ class AzureOpenAiChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); System.out.println(actorsFilms); @@ -166,7 +166,7 @@ class AzureOpenAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = chatClient.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -194,8 +194,8 @@ class AzureOpenAiChatClientIT { } @Bean - public AzureOpenAiChatClient azureOpenAiChatClient(OpenAIClient openAIClient) { - return new AzureOpenAiChatClient(openAIClient, + public AzureOpenAiChatModel azureOpenAiChatModel(OpenAIClient openAIClient) { + return new AzureOpenAiChatModel(openAIClient, AzureOpenAiChatOptions.builder().withDeploymentName("gpt-35-turbo").withMaxTokens(200).build()); } diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClientIT.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModelIT.java similarity index 79% rename from models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClientIT.java rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModelIT.java index b973aa19b..7c1710e06 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingClientIT.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiEmbeddingModelIT.java @@ -34,25 +34,25 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_API_KEY", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_ENDPOINT", matches = ".+") -class AzureOpenAiEmbeddingClientIT { +class AzureOpenAiEmbeddingModelIT { @Autowired - private AzureOpenAiEmbeddingClient embeddingClient; + private AzureOpenAiEmbeddingModel embeddingModel; @Test void singleEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - System.out.println(embeddingClient.dimensions()); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + System.out.println(embeddingModel.dimensions()); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); } @Test void batchEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -60,7 +60,7 @@ class AzureOpenAiEmbeddingClientIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); } @SpringBootConfiguration @@ -74,8 +74,8 @@ class AzureOpenAiEmbeddingClientIT { } @Bean - public AzureOpenAiEmbeddingClient azureEmbeddingClient(OpenAIClient openAIClient) { - return new AzureOpenAiEmbeddingClient(openAIClient); + public AzureOpenAiEmbeddingModel azureEmbeddingModel(OpenAIClient openAIClient) { + return new AzureOpenAiEmbeddingModel(openAIClient); } } diff --git a/models/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 index f5e7b438a..6ae824bad 100644 --- a/models/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 @@ -59,8 +59,8 @@ public class MockAzureOpenAiTestConfiguration { } @Bean - AzureOpenAiChatClient azureOpenAiChatClient(OpenAIClient microsoftAzureOpenAiClient) { - return new AzureOpenAiChatClient(microsoftAzureOpenAiClient); + AzureOpenAiChatModel azureOpenAiChatModel(OpenAIClient microsoftAzureOpenAiClient) { + return new AzureOpenAiChatModel(microsoftAzureOpenAiClient); } } diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatClientFunctionCallIT.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatModelFunctionCallIT.java similarity index 89% rename from models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatClientFunctionCallIT.java rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatModelFunctionCallIT.java index 08c81ebd1..736c69041 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatClientFunctionCallIT.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/function/AzureOpenAiChatModelFunctionCallIT.java @@ -29,7 +29,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.AzureOpenAiChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -46,18 +46,18 @@ import reactor.core.publisher.Flux; import static org.assertj.core.api.Assertions.assertThat; -@SpringBootTest(classes = AzureOpenAiChatClientFunctionCallIT.TestConfiguration.class) +@SpringBootTest(classes = AzureOpenAiChatModelFunctionCallIT.TestConfiguration.class) @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_API_KEY", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_ENDPOINT", matches = ".+") -class AzureOpenAiChatClientFunctionCallIT { +class AzureOpenAiChatModelFunctionCallIT { - private static final Logger logger = LoggerFactory.getLogger(AzureOpenAiChatClientFunctionCallIT.class); + private static final Logger logger = LoggerFactory.getLogger(AzureOpenAiChatModelFunctionCallIT.class); @Autowired private String selectedModel; @Autowired - private AzureOpenAiChatClient chatClient; + private AzureOpenAiChatModel chatModel; @Test void functionCallTest() { @@ -75,7 +75,7 @@ class AzureOpenAiChatClientFunctionCallIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(messages, promptOptions)); + ChatResponse response = chatModel.call(new Prompt(messages, promptOptions)); logger.info("Response: {}", response); @@ -99,7 +99,7 @@ class AzureOpenAiChatClientFunctionCallIT { .build())) .build(); - Flux response = chatClient.stream(new Prompt(messages, promptOptions)); + Flux response = chatModel.stream(new Prompt(messages, promptOptions)); final var counter = new AtomicInteger(); String content = response.doOnEach(listSignal -> counter.getAndIncrement()) @@ -129,8 +129,8 @@ class AzureOpenAiChatClientFunctionCallIT { } @Bean - public AzureOpenAiChatClient azureOpenAiChatClient(OpenAIClient openAIClient, String selectedModel) { - return new AzureOpenAiChatClient(openAIClient, + public AzureOpenAiChatModel azureOpenAiChatModel(OpenAIClient openAIClient, String selectedModel) { + return new AzureOpenAiChatModel(openAIClient, AzureOpenAiChatOptions.builder().withDeploymentName(selectedModel).withMaxTokens(500).build()); } diff --git a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatClientMetadataTests.java b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatModelMetadataTests.java similarity index 96% rename from models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatClientMetadataTests.java rename to models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatModelMetadataTests.java index cc938c9b9..3397f84a3 100644 --- a/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatClientMetadataTests.java +++ b/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/metadata/AzureOpenAiChatModelMetadataTests.java @@ -23,7 +23,7 @@ import com.azure.ai.openai.models.ContentFilterResultsForChoice; import com.azure.ai.openai.models.ContentFilterSeverity; import org.junit.jupiter.api.Test; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.MockAzureOpenAiTestConfiguration; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -55,7 +55,7 @@ import org.springframework.web.context.request.WebRequest; import static org.assertj.core.api.Assertions.assertThat; /** - * Unit Tests for {@link AzureOpenAiChatClient} asserting AI metadata. + * Unit Tests for {@link AzureOpenAiChatModel} asserting AI metadata. * * @author John Blum * @author Christian Tzolov @@ -63,12 +63,12 @@ import static org.assertj.core.api.Assertions.assertThat; */ @SpringBootTest @ActiveProfiles("spring-ai-azure-openai-mocks") -@ContextConfiguration(classes = AzureOpenAiChatClientMetadataTests.TestConfiguration.class) +@ContextConfiguration(classes = AzureOpenAiChatModelMetadataTests.TestConfiguration.class) @SuppressWarnings("unused") -class AzureOpenAiChatClientMetadataTests { +class AzureOpenAiChatModelMetadataTests { @Autowired - private AzureOpenAiChatClient aiClient; + private AzureOpenAiChatModel aiClient; @Test void azureOpenAiMetadataCapturedDuringGeneration() { diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/AnthropicChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/AnthropicChatOptions.java index 2daceca21..d0d5a5a2c 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/AnthropicChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/AnthropicChatOptions.java @@ -164,4 +164,14 @@ public class AnthropicChatOptions implements ChatOptions { this.anthropicVersion = anthropicVersion; } + public static AnthropicChatOptions fromOptions(AnthropicChatOptions fromOptions) { + return builder().withTemperature(fromOptions.getTemperature()) + .withMaxTokensToSample(fromOptions.getMaxTokensToSample()) + .withTopK(fromOptions.getTopK()) + .withTopP(fromOptions.getTopP()) + .withStopSequences(fromOptions.getStopSequences()) + .withAnthropicVersion(fromOptions.getAnthropicVersion()) + .build(); + } + } diff --git a/models/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/BedrockAnthropicChatModel.java similarity index 87% rename from models/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/BedrockAnthropicChatModel.java index 26b887344..b5d62da9d 100644 --- a/models/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/BedrockAnthropicChatModel.java @@ -17,7 +17,7 @@ package org.springframework.ai.bedrock.anthropic; import java.util.List; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; @@ -27,25 +27,25 @@ import org.springframework.ai.bedrock.MessageToPromptConverter; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.ModelOptionsUtils; /** - * Java {@link ChatClient} and {@link StreamingChatClient} for the Bedrock Anthropic chat + * Java {@link ChatModel} and {@link StreamingChatModel} for the Bedrock Anthropic chat * generative. * * @author Christian Tzolov * @since 0.8.0 */ -public class BedrockAnthropicChatClient implements ChatClient, StreamingChatClient { +public class BedrockAnthropicChatModel implements ChatModel, StreamingChatModel { private final AnthropicChatBedrockApi anthropicChatApi; private final AnthropicChatOptions defaultOptions; - public BedrockAnthropicChatClient(AnthropicChatBedrockApi chatApi) { + public BedrockAnthropicChatModel(AnthropicChatBedrockApi chatApi) { this(chatApi, AnthropicChatOptions.builder() .withTemperature(0.8f) @@ -55,7 +55,7 @@ public class BedrockAnthropicChatClient implements ChatClient, StreamingChatClie .build()); } - public BedrockAnthropicChatClient(AnthropicChatBedrockApi chatApi, AnthropicChatOptions options) { + public BedrockAnthropicChatModel(AnthropicChatBedrockApi chatApi, AnthropicChatOptions options) { this.anthropicChatApi = chatApi; this.defaultOptions = options; } @@ -117,4 +117,9 @@ public class BedrockAnthropicChatClient implements ChatClient, StreamingChatClie return request; } + @Override + public ChatOptions getDefaultOptions() { + return AnthropicChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/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 index 55a2d80af..8c800a382 100644 --- a/models/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 @@ -29,6 +29,7 @@ import software.amazon.awssdk.regions.Region; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse; import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.model.ModelDescription; import org.springframework.util.Assert; /** @@ -225,7 +226,7 @@ public class AnthropicChatBedrockApi extends /** * Anthropic models version. */ - public enum AnthropicChatModel { + public enum AnthropicChatModel implements ModelDescription { /** * anthropic.claude-instant-v1 */ @@ -251,6 +252,11 @@ public class AnthropicChatBedrockApi extends AnthropicChatModel(String value) { this.id = value; } + + @Override + public String getModelName() { + return this.id; + } } @Override diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/Anthropic3ChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/Anthropic3ChatOptions.java index 2862359fe..b4995683a 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/Anthropic3ChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/Anthropic3ChatOptions.java @@ -163,4 +163,14 @@ public class Anthropic3ChatOptions implements ChatOptions { this.anthropicVersion = anthropicVersion; } + public static Anthropic3ChatOptions fromOptions(Anthropic3ChatOptions fromOptions) { + return builder().withTemperature(fromOptions.getTemperature()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withTopK(fromOptions.getTopK()) + .withTopP(fromOptions.getTopP()) + .withStopSequences(fromOptions.getStopSequences()) + .withAnthropicVersion(fromOptions.getAnthropicVersion()) + .build(); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModel.java similarity index 91% rename from models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClient.java rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModel.java index 12dba850c..2ab9364e9 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClient.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModel.java @@ -15,17 +15,25 @@ */ package org.springframework.ai.bedrock.anthropic3; +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +import reactor.core.publisher.Flux; + import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatRequest; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatResponse; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatStreamingResponse.StreamingType; -import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.MediaContent; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.ChatCompletionMessage; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.ChatCompletionMessage.Role; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.MediaContent; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; @@ -34,29 +42,21 @@ import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.util.CollectionUtils; -import reactor.core.publisher.Flux; - -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; - /** - * Java {@link ChatClient} and {@link StreamingChatClient} for the Bedrock Anthropic chat + * Java {@link ChatModel} and {@link StreamingChatModel} for the Bedrock Anthropic chat * generative. * * @author Ben Middleton * @author Christian Tzolov * @since 1.0.0 */ -public class BedrockAnthropic3ChatClient implements ChatClient, StreamingChatClient { +public class BedrockAnthropic3ChatModel implements ChatModel, StreamingChatModel { private final Anthropic3ChatBedrockApi anthropicChatApi; private final Anthropic3ChatOptions defaultOptions; - public BedrockAnthropic3ChatClient(Anthropic3ChatBedrockApi chatApi) { + public BedrockAnthropic3ChatModel(Anthropic3ChatBedrockApi chatApi) { this(chatApi, Anthropic3ChatOptions.builder() .withTemperature(0.8f) @@ -66,7 +66,7 @@ public class BedrockAnthropic3ChatClient implements ChatClient, StreamingChatCli .build()); } - public BedrockAnthropic3ChatClient(Anthropic3ChatBedrockApi chatApi, Anthropic3ChatOptions options) { + public BedrockAnthropic3ChatModel(Anthropic3ChatBedrockApi chatApi, Anthropic3ChatOptions options) { this.anthropicChatApi = chatApi; this.defaultOptions = options; } @@ -187,4 +187,9 @@ public class BedrockAnthropic3ChatClient implements ChatClient, StreamingChatCli } } + @Override + public ChatOptions getDefaultOptions() { + return Anthropic3ChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/api/Anthropic3ChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/api/Anthropic3ChatBedrockApi.java index 0148b4983..8b5b29ed1 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/api/Anthropic3ChatBedrockApi.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/api/Anthropic3ChatBedrockApi.java @@ -23,6 +23,7 @@ import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.An import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatResponse; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatStreamingResponse; import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.model.ModelDescription; import org.springframework.util.Assert; import reactor.core.publisher.Flux; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; @@ -436,7 +437,7 @@ public class Anthropic3ChatBedrockApi extends /** * Anthropic models version. */ - public enum AnthropicChatModel { + public enum AnthropicChatModel implements ModelDescription { /** * anthropic.claude-instant-v1 @@ -476,6 +477,11 @@ public class Anthropic3ChatBedrockApi extends this.id = value; } + @Override + public String getModelName() { + return this.id; + } + } @Override diff --git a/models/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/BedrockCohereChatModel.java similarity index 89% rename from models/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/BedrockCohereChatModel.java index 3ff2b2cee..456b7566c 100644 --- a/models/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/BedrockCohereChatModel.java @@ -24,11 +24,11 @@ import org.springframework.ai.bedrock.MessageToPromptConverter; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.metadata.Usage; import org.springframework.ai.chat.prompt.Prompt; @@ -39,17 +39,17 @@ import org.springframework.util.Assert; * @author Christian Tzolov * @since 0.8.0 */ -public class BedrockCohereChatClient implements ChatClient, StreamingChatClient { +public class BedrockCohereChatModel implements ChatModel, StreamingChatModel { private final CohereChatBedrockApi chatApi; private final BedrockCohereChatOptions defaultOptions; - public BedrockCohereChatClient(CohereChatBedrockApi chatApi) { + public BedrockCohereChatModel(CohereChatBedrockApi chatApi) { this(chatApi, BedrockCohereChatOptions.builder().build()); } - public BedrockCohereChatClient(CohereChatBedrockApi chatApi, BedrockCohereChatOptions options) { + public BedrockCohereChatModel(CohereChatBedrockApi chatApi, BedrockCohereChatOptions options) { Assert.notNull(chatApi, "CohereChatBedrockApi must not be null"); Assert.notNull(options, "BedrockCohereChatOptions must not be null"); @@ -114,4 +114,9 @@ public class BedrockCohereChatClient implements ChatClient, StreamingChatClient return request; } + @Override + public ChatOptions getDefaultOptions() { + return BedrockCohereChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatOptions.java index 89f625432..e0ab181cc 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatOptions.java @@ -213,4 +213,17 @@ public class BedrockCohereChatOptions implements ChatOptions { this.truncate = truncate; } + public static BedrockCohereChatOptions fromOptions(BedrockCohereChatOptions fromOptions) { + return builder().withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTopK(fromOptions.getTopK()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withStopSequences(fromOptions.getStopSequences()) + .withReturnLikelihoods(fromOptions.getReturnLikelihoods()) + .withNumGenerations(fromOptions.getNumGenerations()) + .withLogitBias(fromOptions.getLogitBias()) + .withTruncate(fromOptions.getTruncate()) + .build(); + } + } diff --git a/models/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/BedrockCohereEmbeddingModel.java similarity index 88% rename from models/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/BedrockCohereEmbeddingModel.java index 2c0145059..25e3f35b4 100644 --- a/models/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/BedrockCohereEmbeddingModel.java @@ -22,7 +22,7 @@ import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -31,14 +31,14 @@ import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.util.Assert; /** - * {@link org.springframework.ai.embedding.EmbeddingClient} implementation that uses the + * {@link org.springframework.ai.embedding.EmbeddingModel} implementation that uses the * Bedrock Cohere Embedding API. Note: The invocation metrics are not exposed by AWS for * this API. If this change in the future we will add it as metadata. * * @author Christian Tzolov * @since 0.8.0 */ -public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { +public class BedrockCohereEmbeddingModel extends AbstractEmbeddingModel { private final CohereEmbeddingBedrockApi embeddingApi; @@ -50,7 +50,7 @@ public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { // private CohereEmbeddingRequest.Truncate truncate = // CohereEmbeddingRequest.Truncate.NONE; - public BedrockCohereEmbeddingClient(CohereEmbeddingBedrockApi cohereEmbeddingBedrockApi) { + public BedrockCohereEmbeddingModel(CohereEmbeddingBedrockApi cohereEmbeddingBedrockApi) { this(cohereEmbeddingBedrockApi, BedrockCohereEmbeddingOptions.builder() .withInputType(CohereEmbeddingRequest.InputType.SEARCH_DOCUMENT) @@ -58,7 +58,7 @@ public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { .build()); } - public BedrockCohereEmbeddingClient(CohereEmbeddingBedrockApi cohereEmbeddingBedrockApi, + public BedrockCohereEmbeddingModel(CohereEmbeddingBedrockApi cohereEmbeddingBedrockApi, BedrockCohereEmbeddingOptions options) { Assert.notNull(cohereEmbeddingBedrockApi, "CohereEmbeddingBedrockApi must not be null"); Assert.notNull(options, "BedrockCohereEmbeddingOptions must not be null"); @@ -71,7 +71,7 @@ public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { // * @param inputType the input type to use. // * @return this client. // */ - // public BedrockCohereEmbeddingClient withInputType(CohereEmbeddingRequest.InputType + // public BedrockCohereEmbeddingModel withInputType(CohereEmbeddingRequest.InputType // inputType) { // this.inputType = inputType; // return this; @@ -85,7 +85,7 @@ public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { // * @param truncate the truncate option to use. // * @return this client. // */ - // public BedrockCohereEmbeddingClient withTruncate(CohereEmbeddingRequest.Truncate + // public BedrockCohereEmbeddingModel withTruncate(CohereEmbeddingRequest.Truncate // truncate) { // this.truncate = truncate; // return this; diff --git a/models/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 index 5b133a997..766271b87 100644 --- a/models/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 @@ -30,6 +30,7 @@ import software.amazon.awssdk.regions.Region; import org.springframework.ai.bedrock.api.AbstractBedrockApi; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse; +import org.springframework.ai.model.ModelDescription; import org.springframework.util.Assert; /** @@ -366,7 +367,7 @@ public class CohereChatBedrockApi extends /** * Cohere models version. */ - public enum CohereChatModel { + public enum CohereChatModel implements ModelDescription { /** * cohere.command-light-text-v14 @@ -390,6 +391,11 @@ public class CohereChatBedrockApi extends CohereChatModel(String value) { this.id = value; } + + @Override + public String getModelName() { + return this.id; + } } @Override diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModel.java similarity index 85% rename from models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClient.java rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModel.java index 7a11a2524..883e55b0e 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClient.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModel.java @@ -19,7 +19,7 @@ package org.springframework.ai.bedrock.jurassic2; import org.springframework.ai.bedrock.MessageToPromptConverter; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatRequest; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; @@ -29,19 +29,18 @@ import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.util.Assert; /** - * Java {@link ChatClient} for the Bedrock Jurassic2 chat generative model. + * Java {@link ChatModel} for the Bedrock Jurassic2 chat generative model. * * @author Ahmed Yousri * @since 1.0.0 */ -public class BedrockAi21Jurassic2ChatClient implements ChatClient { +public class BedrockAi21Jurassic2ChatModel implements ChatModel { private final Ai21Jurassic2ChatBedrockApi chatApi; private final BedrockAi21Jurassic2ChatOptions defaultOptions; - public BedrockAi21Jurassic2ChatClient(Ai21Jurassic2ChatBedrockApi chatApi, - BedrockAi21Jurassic2ChatOptions options) { + public BedrockAi21Jurassic2ChatModel(Ai21Jurassic2ChatBedrockApi chatApi, BedrockAi21Jurassic2ChatOptions options) { Assert.notNull(chatApi, "Ai21Jurassic2ChatBedrockApi must not be null"); Assert.notNull(options, "BedrockAi21Jurassic2ChatOptions must not be null"); @@ -49,7 +48,7 @@ public class BedrockAi21Jurassic2ChatClient implements ChatClient { this.defaultOptions = options; } - public BedrockAi21Jurassic2ChatClient(Ai21Jurassic2ChatBedrockApi chatApi) { + public BedrockAi21Jurassic2ChatModel(Ai21Jurassic2ChatBedrockApi chatApi) { this(chatApi, BedrockAi21Jurassic2ChatOptions.builder() .withTemperature(0.8f) @@ -114,11 +113,16 @@ public class BedrockAi21Jurassic2ChatClient implements ChatClient { return this; } - public BedrockAi21Jurassic2ChatClient build() { - return new BedrockAi21Jurassic2ChatClient(chatApi, + public BedrockAi21Jurassic2ChatModel build() { + return new BedrockAi21Jurassic2ChatModel(chatApi, options != null ? options : BedrockAi21Jurassic2ChatOptions.builder().build()); } } + @Override + public ChatOptions getDefaultOptions() { + return BedrockAi21Jurassic2ChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatOptions.java index 4b62a5854..c165c61c1 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatOptions.java @@ -413,4 +413,19 @@ public class BedrockAi21Jurassic2ChatOptions implements ChatOptions { } } + public static BedrockAi21Jurassic2ChatOptions fromOptions(BedrockAi21Jurassic2ChatOptions fromOptions) { + return builder().withPrompt(fromOptions.getPrompt()) + .withNumResults(fromOptions.getNumResults()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withMinTokens(fromOptions.getMinTokens()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTopK(fromOptions.getTopK()) + .withStopSequences(fromOptions.getStopSequences()) + .withFrequencyPenalty(fromOptions.getFrequencyPenalty()) + .withPresencePenalty(fromOptions.getPresencePenalty()) + .withCountPenalty(fromOptions.getCountPenalty()) + .build(); + } + } diff --git a/models/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 index 0ec58c8bd..fecf70fa4 100644 --- a/models/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 @@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.bedrock.api.AbstractBedrockApi; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatRequest; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatResponse; +import org.springframework.ai.model.ModelDescription; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.regions.Region; @@ -371,7 +372,7 @@ public class Ai21Jurassic2ChatBedrockApi extends /** * Ai21 Jurassic2 models version. */ - public enum Ai21Jurassic2ChatModel { + public enum Ai21Jurassic2ChatModel implements ModelDescription { /** * ai21.j2-mid-v1 @@ -395,6 +396,11 @@ public class Ai21Jurassic2ChatBedrockApi extends Ai21Jurassic2ChatModel(String value) { this.id = value; } + + @Override + public String getModelName() { + return this.id; + } } @Override diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClient.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModel.java similarity index 88% rename from models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClient.java rename to models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModel.java index c1be58e5a..3c0634c53 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClient.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModel.java @@ -23,11 +23,11 @@ import org.springframework.ai.bedrock.MessageToPromptConverter; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatRequest; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatResponse; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.metadata.Usage; import org.springframework.ai.chat.prompt.Prompt; @@ -35,25 +35,25 @@ import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.util.Assert; /** - * Java {@link ChatClient} and {@link StreamingChatClient} for the Bedrock Llama chat + * Java {@link ChatModel} and {@link StreamingChatModel} for the Bedrock Llama chat * generative. * * @author Christian Tzolov * @author Wei Jiang * @since 0.8.0 */ -public class BedrockLlamaChatClient implements ChatClient, StreamingChatClient { +public class BedrockLlamaChatModel implements ChatModel, StreamingChatModel { private final LlamaChatBedrockApi chatApi; private final BedrockLlamaChatOptions defaultOptions; - public BedrockLlamaChatClient(LlamaChatBedrockApi chatApi) { + public BedrockLlamaChatModel(LlamaChatBedrockApi chatApi) { this(chatApi, BedrockLlamaChatOptions.builder().withTemperature(0.8f).withTopP(0.9f).withMaxGenLen(100).build()); } - public BedrockLlamaChatClient(LlamaChatBedrockApi chatApi, BedrockLlamaChatOptions options) { + public BedrockLlamaChatModel(LlamaChatBedrockApi chatApi, BedrockLlamaChatOptions options) { Assert.notNull(chatApi, "LlamaChatBedrockApi must not be null"); Assert.notNull(options, "BedrockLlamaChatOptions must not be null"); @@ -130,4 +130,9 @@ public class BedrockLlamaChatClient implements ChatClient, StreamingChatClient { return request; } + @Override + public ChatOptions getDefaultOptions() { + return BedrockLlamaChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatOptions.java index 3502fd4c4..4d6c0a6e0 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatOptions.java @@ -109,4 +109,11 @@ public class BedrockLlamaChatOptions implements ChatOptions { throw new UnsupportedOperationException("Unsupported option: 'TopK'"); } + public static BedrockLlamaChatOptions fromOptions(BedrockLlamaChatOptions fromOptions) { + return builder().withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withMaxGenLen(fromOptions.getMaxGenLen()) + .build(); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/api/LlamaChatBedrockApi.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/api/LlamaChatBedrockApi.java index 25d71aede..16af9735e 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/api/LlamaChatBedrockApi.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/api/LlamaChatBedrockApi.java @@ -26,6 +26,7 @@ import software.amazon.awssdk.regions.Region; import org.springframework.ai.bedrock.api.AbstractBedrockApi; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatRequest; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatResponse; +import org.springframework.ai.model.ModelDescription; import java.time.Duration; @@ -204,7 +205,7 @@ public class LlamaChatBedrockApi extends /** * Llama models version. */ - public enum LlamaChatModel { + public enum LlamaChatModel implements ModelDescription { /** * meta.llama2-13b-chat-v1 @@ -238,6 +239,11 @@ public class LlamaChatBedrockApi extends LlamaChatModel(String value) { this.id = value; } + + @Override + public String getModelName() { + return this.id; + } } @Override diff --git a/models/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/BedrockTitanChatModel.java similarity index 91% rename from models/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/BedrockTitanChatModel.java index e77d8277c..571210178 100644 --- a/models/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/BedrockTitanChatModel.java @@ -24,11 +24,11 @@ import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatRequest; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponseChunk; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.metadata.Usage; import org.springframework.ai.chat.prompt.Prompt; @@ -39,17 +39,17 @@ import org.springframework.util.Assert; * @author Christian Tzolov * @since 0.8.0 */ -public class BedrockTitanChatClient implements ChatClient, StreamingChatClient { +public class BedrockTitanChatModel implements ChatModel, StreamingChatModel { private final TitanChatBedrockApi chatApi; private final BedrockTitanChatOptions defaultOptions; - public BedrockTitanChatClient(TitanChatBedrockApi chatApi) { + public BedrockTitanChatModel(TitanChatBedrockApi chatApi) { this(chatApi, BedrockTitanChatOptions.builder().withTemperature(0.8f).build()); } - public BedrockTitanChatClient(TitanChatBedrockApi chatApi, BedrockTitanChatOptions defaultOptions) { + public BedrockTitanChatModel(TitanChatBedrockApi chatApi, BedrockTitanChatOptions defaultOptions) { Assert.notNull(chatApi, "ChatApi must not be null"); Assert.notNull(defaultOptions, "DefaultOptions must not be null"); this.chatApi = chatApi; @@ -146,4 +146,9 @@ public class BedrockTitanChatClient implements ChatClient, StreamingChatClient { }; } + @Override + public ChatOptions getDefaultOptions() { + return BedrockTitanChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatOptions.java index 61b16d16e..d53126a0b 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatOptions.java @@ -128,4 +128,12 @@ public class BedrockTitanChatOptions implements ChatOptions { throw new UnsupportedOperationException("Bedrock Titan Chat does not support the 'TopK' option.'"); } + public static BedrockTitanChatOptions fromOptions(BedrockTitanChatOptions fromOptions) { + return builder().withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withMaxTokenCount(fromOptions.getMaxTokenCount()) + .withStopSequences(fromOptions.getStopSequences()) + .build(); + } + } diff --git a/models/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/BedrockTitanEmbeddingModel.java similarity index 91% rename from models/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/BedrockTitanEmbeddingModel.java index 1d64f92ef..e3089eec5 100644 --- a/models/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/BedrockTitanEmbeddingModel.java @@ -26,7 +26,7 @@ import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingRequest; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingResponse; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -34,7 +34,7 @@ import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.util.Assert; /** - * {@link org.springframework.ai.embedding.EmbeddingClient} implementation that uses the + * {@link org.springframework.ai.embedding.EmbeddingModel} implementation that uses the * Bedrock Titan Embedding API. Titan Embedding supports text and image (encoded in * base64) inputs. * @@ -44,7 +44,7 @@ import org.springframework.util.Assert; * @author Wei Jiang * @since 0.8.0 */ -public class BedrockTitanEmbeddingClient extends AbstractEmbeddingClient { +public class BedrockTitanEmbeddingModel extends AbstractEmbeddingModel { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -61,7 +61,7 @@ public class BedrockTitanEmbeddingClient extends AbstractEmbeddingClient { */ private InputType inputType = InputType.TEXT; - public BedrockTitanEmbeddingClient(TitanEmbeddingBedrockApi titanEmbeddingBedrockApi) { + public BedrockTitanEmbeddingModel(TitanEmbeddingBedrockApi titanEmbeddingBedrockApi) { this.embeddingApi = titanEmbeddingBedrockApi; } @@ -69,7 +69,7 @@ public class BedrockTitanEmbeddingClient extends AbstractEmbeddingClient { * Titan Embedding API input types. Could be either text or image (encoded in base64). * @param inputType the input type to use. */ - public BedrockTitanEmbeddingClient withInputType(InputType inputType) { + public BedrockTitanEmbeddingModel withInputType(InputType inputType) { this.inputType = inputType; return this; } diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingOptions.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingOptions.java index fd1c609bf..d2770f245 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingOptions.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingOptions.java @@ -18,7 +18,7 @@ package org.springframework.ai.bedrock.titan; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient.InputType; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel.InputType; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.util.Assert; diff --git a/models/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 index 78c7cd931..ce1842adf 100644 --- a/models/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 @@ -31,6 +31,7 @@ import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatReq import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse.CompletionReason; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponseChunk; +import org.springframework.ai.model.ModelDescription; /** * Java client for the Bedrock Titan chat model. @@ -265,7 +266,7 @@ public class TitanChatBedrockApi extends /** * Titan models version. */ - public enum TitanChatModel { + public enum TitanChatModel implements ModelDescription { /** * amazon.titan-text-lite-v1 @@ -294,6 +295,11 @@ public class TitanChatBedrockApi extends TitanChatModel(String value) { this.id = value; } + + @Override + public String getModelName() { + return this.id; + } } @Override diff --git a/models/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/BedrockAnthropicChatModelIT.java similarity index 90% rename from models/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/BedrockAnthropicChatModelIT.java index 43eb7e776..4cdaa92b8 100644 --- a/models/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/BedrockAnthropicChatModelIT.java @@ -55,12 +55,12 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockAnthropicChatClientIT { +class BedrockAnthropicChatModelIT { - private static final Logger logger = LoggerFactory.getLogger(BedrockAnthropicChatClientIT.class); + private static final Logger logger = LoggerFactory.getLogger(BedrockAnthropicChatModelIT.class); @Autowired - private BedrockAnthropicChatClient client; + private BedrockAnthropicChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -68,8 +68,8 @@ class BedrockAnthropicChatClientIT { @Test void multipleStreamAttempts() { - Flux joke1Stream = client.stream(new Prompt(new UserMessage("Tell me a joke?"))); - Flux joke2Stream = client.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); + Flux joke1Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a joke?"))); + Flux joke2Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); String joke1 = joke1Stream.collectList() .block() @@ -101,7 +101,7 @@ class BedrockAnthropicChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -119,7 +119,7 @@ class BedrockAnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputParser.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -137,7 +137,7 @@ class BedrockAnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -161,7 +161,7 @@ class BedrockAnthropicChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConvert.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -182,7 +182,7 @@ class BedrockAnthropicChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -209,8 +209,8 @@ class BedrockAnthropicChatClientIT { } @Bean - public BedrockAnthropicChatClient anthropicChatClient(AnthropicChatBedrockApi anthropicApi) { - return new BedrockAnthropicChatClient(anthropicApi); + public BedrockAnthropicChatModel anthropicChatModel(AnthropicChatBedrockApi anthropicApi) { + return new BedrockAnthropicChatModel(anthropicApi); } } diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicCreateRequestTests.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicCreateRequestTests.java index 928e183ad..c8b5cbe85 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicCreateRequestTests.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicCreateRequestTests.java @@ -38,7 +38,7 @@ public class BedrockAnthropicCreateRequestTests { @Test public void createRequestWithChatOptions() { - var client = new BedrockAnthropicChatClient(anthropicChatApi, + var client = new BedrockAnthropicChatModel(anthropicChatApi, AnthropicChatOptions.builder() .withTemperature(66.6f) .withTopK(66) diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModelIT.java similarity index 90% rename from models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClientIT.java rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModelIT.java index 9568f4f69..5ff88d2b4 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClientIT.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModelIT.java @@ -59,12 +59,12 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockAnthropic3ChatClientIT { +class BedrockAnthropic3ChatModelIT { - private static final Logger logger = LoggerFactory.getLogger(BedrockAnthropic3ChatClientIT.class); + private static final Logger logger = LoggerFactory.getLogger(BedrockAnthropic3ChatModelIT.class); @Autowired - private BedrockAnthropic3ChatClient client; + private BedrockAnthropic3ChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -72,8 +72,8 @@ class BedrockAnthropic3ChatClientIT { @Test void multipleStreamAttempts() { - Flux joke1Stream = client.stream(new Prompt(new UserMessage("Tell me a joke?"))); - Flux joke2Stream = client.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); + Flux joke1Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a joke?"))); + Flux joke2Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); String joke1 = joke1Stream.collectList() .block() @@ -105,7 +105,7 @@ class BedrockAnthropic3ChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -123,7 +123,7 @@ class BedrockAnthropic3ChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -142,7 +142,7 @@ class BedrockAnthropic3ChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -166,7 +166,7 @@ class BedrockAnthropic3ChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -187,7 +187,7 @@ class BedrockAnthropic3ChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -211,7 +211,7 @@ class BedrockAnthropic3ChatClientIT { var userMessage = new UserMessage("Explain what do you see o this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); - var response = client.call(new Prompt(List.of(userMessage))); + var response = chatModel.call(new Prompt(List.of(userMessage))); logger.info(response.getResult().getOutput().getContent()); assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple", "basket"); @@ -228,8 +228,8 @@ class BedrockAnthropic3ChatClientIT { } @Bean - public BedrockAnthropic3ChatClient anthropicChatClient(Anthropic3ChatBedrockApi anthropicApi) { - return new BedrockAnthropic3ChatClient(anthropicApi); + public BedrockAnthropic3ChatModel anthropicChatModel(Anthropic3ChatBedrockApi anthropicApi) { + return new BedrockAnthropic3ChatModel(anthropicApi); } } diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3CreateRequestTests.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3CreateRequestTests.java index 480f914c3..31486f9e9 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3CreateRequestTests.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3CreateRequestTests.java @@ -37,7 +37,7 @@ public class BedrockAnthropic3CreateRequestTests { @Test public void createRequestWithChatOptions() { - var client = new BedrockAnthropic3ChatClient(anthropicChatApi, + var client = new BedrockAnthropic3ChatModel(anthropicChatApi, Anthropic3ChatOptions.builder() .withTemperature(66.6f) .withTopK(66) diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatCreateRequestTests.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatCreateRequestTests.java index 661c19e32..c757efe04 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatCreateRequestTests.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatCreateRequestTests.java @@ -45,7 +45,7 @@ public class BedrockCohereChatCreateRequestTests { @Test public void createRequestWithChatOptions() { - var client = new BedrockCohereChatClient(chatApi, + var client = new BedrockCohereChatModel(chatApi, BedrockCohereChatOptions.builder() .withTemperature(66.6f) .withTopK(66) diff --git a/models/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/BedrockCohereChatModelIT.java similarity index 90% rename from models/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/BedrockCohereChatModelIT.java index 567926810..287d22bce 100644 --- a/models/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/BedrockCohereChatModelIT.java @@ -54,10 +54,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockCohereChatClientIT { +class BedrockCohereChatModelIT { @Autowired - private BedrockCohereChatClient client; + private BedrockCohereChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -65,8 +65,8 @@ class BedrockCohereChatClientIT { @Test void multipleStreamAttempts() { - Flux joke1Stream = client.stream(new Prompt(new UserMessage("Tell me a joke?"))); - Flux joke2Stream = client.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); + Flux joke1Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a joke?"))); + Flux joke2Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); String joke1 = joke1Stream.collectList() .block() @@ -98,7 +98,7 @@ class BedrockCohereChatClientIT { SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -115,7 +115,7 @@ class BedrockCohereChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -134,7 +134,7 @@ class BedrockCohereChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -157,7 +157,7 @@ class BedrockCohereChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -178,7 +178,7 @@ class BedrockCohereChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -205,8 +205,8 @@ class BedrockCohereChatClientIT { } @Bean - public BedrockCohereChatClient cohereChatClient(CohereChatBedrockApi cohereApi) { - return new BedrockCohereChatClient(cohereApi); + public BedrockCohereChatModel cohereChatModel(CohereChatBedrockApi cohereApi) { + return new BedrockCohereChatModel(cohereApi); } } diff --git a/models/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/BedrockCohereEmbeddingModelIT.java similarity index 81% rename from models/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/BedrockCohereEmbeddingModelIT.java index 1dab72ce3..194b657ed 100644 --- a/models/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/BedrockCohereEmbeddingModelIT.java @@ -39,24 +39,24 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockCohereEmbeddingClientIT { +class BedrockCohereEmbeddingModelIT { @Autowired - private BedrockCohereEmbeddingClient embeddingClient; + private BedrockCohereEmbeddingModel embeddingModel; @Test void singleEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); } @Test void batchEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -64,13 +64,13 @@ class BedrockCohereEmbeddingClientIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); } @Test void embeddingWthOptions() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel .call(new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), BedrockCohereEmbeddingOptions.builder().withInputType(InputType.SEARCH_DOCUMENT).build())); assertThat(embeddingResponse.getResults()).hasSize(2); @@ -79,7 +79,7 @@ class BedrockCohereEmbeddingClientIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); } @SpringBootConfiguration @@ -93,8 +93,8 @@ class BedrockCohereEmbeddingClientIT { } @Bean - public BedrockCohereEmbeddingClient cohereAiEmbedding(CohereEmbeddingBedrockApi cohereEmbeddingApi) { - return new BedrockCohereEmbeddingClient(cohereEmbeddingApi); + public BedrockCohereEmbeddingModel cohereAiEmbedding(CohereEmbeddingBedrockApi cohereEmbeddingApi) { + return new BedrockCohereEmbeddingModel(cohereEmbeddingApi); } } diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModelIT.java similarity index 92% rename from models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClientIT.java rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModelIT.java index f6614b852..c80ebdef9 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClientIT.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModelIT.java @@ -49,10 +49,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockAi21Jurassic2ChatClientIT { +class BedrockAi21Jurassic2ChatModelIT { @Autowired - private BedrockAi21Jurassic2ChatClient client; + private BedrockAi21Jurassic2ChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -66,7 +66,7 @@ class BedrockAi21Jurassic2ChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -83,7 +83,7 @@ class BedrockAi21Jurassic2ChatClientIT { UserMessage userMessage = new UserMessage("Can you express happiness using an emoji like 😄 ?"); Prompt prompt = new Prompt(List.of(userMessage), options); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).matches(content -> content.contains("😄")); } @@ -103,7 +103,7 @@ class BedrockAi21Jurassic2ChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage), options); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).doesNotContain("😄"); } @@ -120,7 +120,7 @@ class BedrockAi21Jurassic2ChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -135,7 +135,7 @@ class BedrockAi21Jurassic2ChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("AI"); } @@ -152,9 +152,9 @@ class BedrockAi21Jurassic2ChatClientIT { } @Bean - public BedrockAi21Jurassic2ChatClient bedrockAi21Jurassic2ChatClient( + public BedrockAi21Jurassic2ChatModel bedrockAi21Jurassic2ChatModel( Ai21Jurassic2ChatBedrockApi jurassic2ChatBedrockApi) { - return new BedrockAi21Jurassic2ChatClient(jurassic2ChatBedrockApi, + return new BedrockAi21Jurassic2ChatModel(jurassic2ChatBedrockApi, BedrockAi21Jurassic2ChatOptions.builder() .withTemperature(0.5f) .withMaxTokens(100) diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaCreateRequestTests.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaCreateRequestTests.java index 77018af9e..4bd48680d 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaCreateRequestTests.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaCreateRequestTests.java @@ -45,7 +45,7 @@ public class BedrockLlamaCreateRequestTests { @Test public void createRequestWithChatOptions() { - var client = new BedrockLlamaChatClient(api, + var client = new BedrockLlamaChatModel(api, BedrockLlamaChatOptions.builder().withTemperature(66.6f).withMaxGenLen(666).withTopP(0.66f).build()); var request = client.createRequest(new Prompt("Test message content")); diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClientIT.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaModelCallerIT.java similarity index 91% rename from models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClientIT.java rename to models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaModelCallerIT.java index 3ecaf8650..699e0acd2 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClientIT.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaModelCallerIT.java @@ -54,10 +54,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockLlamaChatClientIT { +class BedrockLlamaChatModelIT { @Autowired - private BedrockLlamaChatClient client; + private BedrockLlamaChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -65,8 +65,8 @@ class BedrockLlamaChatClientIT { @Test void multipleStreamAttempts() { - Flux joke2Stream = client.stream(new Prompt(new UserMessage("Tell me a Toy joke?"))); - Flux joke1Stream = client.stream(new Prompt(new UserMessage("Tell me a joke?"))); + Flux joke2Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a Toy joke?"))); + Flux joke1Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a joke?"))); String joke1 = joke1Stream.collectList() .block() @@ -98,7 +98,7 @@ class BedrockLlamaChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -116,7 +116,7 @@ class BedrockLlamaChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -134,7 +134,7 @@ class BedrockLlamaChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -158,7 +158,7 @@ class BedrockLlamaChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -179,7 +179,7 @@ class BedrockLlamaChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -206,8 +206,8 @@ class BedrockLlamaChatClientIT { } @Bean - public BedrockLlamaChatClient llamaChatClient(LlamaChatBedrockApi llamaApi) { - return new BedrockLlamaChatClient(llamaApi, + public BedrockLlamaChatModel llamaChatModel(LlamaChatBedrockApi llamaApi) { + return new BedrockLlamaChatModel(llamaApi, BedrockLlamaChatOptions.builder().withTemperature(0.5f).withMaxGenLen(100).withTopP(0.9f).build()); } diff --git a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatCreateRequestTests.java b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatCreateRequestTests.java index 5f8065bc3..a921bb35a 100644 --- a/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatCreateRequestTests.java +++ b/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/BedrockTitanChatCreateRequestTests.java @@ -41,7 +41,7 @@ public class BedrockTitanChatCreateRequestTests { @Test public void createRequestWithChatOptions() { - var client = new BedrockTitanChatClient(api, + var client = new BedrockTitanChatModel(api, BedrockTitanChatOptions.builder() .withTemperature(66.6f) .withTopP(0.66f) diff --git a/models/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/BedrockTitanEmbeddingModelIT.java similarity index 83% rename from models/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/BedrockTitanEmbeddingModelIT.java index 6400a15f0..7670e8db9 100644 --- a/models/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/BedrockTitanEmbeddingModelIT.java @@ -26,7 +26,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; import software.amazon.awssdk.regions.Region; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient.InputType; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel.InputType; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingModel; import org.springframework.ai.embedding.EmbeddingRequest; @@ -44,19 +44,19 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockTitanEmbeddingClientIT { +class BedrockTitanEmbeddingModelIT { @Autowired - private BedrockTitanEmbeddingClient embeddingClient; + private BedrockTitanEmbeddingModel embeddingModel; @Test void singleEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.call(new EmbeddingRequest(List.of("Hello World"), + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.call(new EmbeddingRequest(List.of("Hello World"), BedrockTitanEmbeddingOptions.builder().withInputType(InputType.TEXT).build())); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); } @Test @@ -65,12 +65,12 @@ class BedrockTitanEmbeddingClientIT { byte[] image = new DefaultResourceLoader().getResource("classpath:/spring_framework.png") .getContentAsByteArray(); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .call(new EmbeddingRequest(List.of(Base64.getEncoder().encodeToString(image)), BedrockTitanEmbeddingOptions.builder().withInputType(InputType.IMAGE).build())); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); } @SpringBootConfiguration @@ -84,8 +84,8 @@ class BedrockTitanEmbeddingClientIT { } @Bean - public BedrockTitanEmbeddingClient titanEmbedding(TitanEmbeddingBedrockApi titanEmbeddingApi) { - return new BedrockTitanEmbeddingClient(titanEmbeddingApi); + public BedrockTitanEmbeddingModel titanEmbedding(TitanEmbeddingBedrockApi titanEmbeddingApi) { + return new BedrockTitanEmbeddingModel(titanEmbeddingApi); } } diff --git a/models/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/BedrockTitanModelCalerlIT.java similarity index 91% rename from models/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/BedrockTitanModelCalerlIT.java index 3f6b611c9..acc876cf1 100644 --- a/models/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/BedrockTitanModelCalerlIT.java @@ -55,10 +55,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") -class BedrockTitanChatClientIT { +class BedrockTitanModelCalerlIT { @Autowired - private BedrockTitanChatClient client; + private BedrockTitanChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -66,8 +66,8 @@ class BedrockTitanChatClientIT { @Test void multipleStreamAttempts() { - Flux joke1Stream = client.stream(new Prompt(new UserMessage("Tell me a joke?"))); - Flux joke2Stream = client.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); + Flux joke1Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a joke?"))); + Flux joke2Stream = chatModel.stream(new Prompt(new UserMessage("Tell me a toy joke?"))); String joke1 = joke1Stream.collectList() .block() @@ -99,7 +99,7 @@ class BedrockTitanChatClientIT { SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -117,7 +117,7 @@ class BedrockTitanChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -138,7 +138,7 @@ class BedrockTitanChatClientIT { Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -162,7 +162,7 @@ class BedrockTitanChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -184,7 +184,7 @@ class BedrockTitanChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -211,8 +211,8 @@ class BedrockTitanChatClientIT { } @Bean - public BedrockTitanChatClient titanChatClient(TitanChatBedrockApi titanApi) { - return new BedrockTitanChatClient(titanApi); + public BedrockTitanChatModel titanChatModel(TitanChatBedrockApi titanApi) { + return new BedrockTitanChatModel(titanApi); } } diff --git a/models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatClient.java b/models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatModel.java similarity index 87% rename from models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatClient.java rename to models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatModel.java index 65b6ecdc9..6a8e8d7de 100644 --- a/models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatClient.java +++ b/models/spring-ai-huggingface/src/main/java/org/springframework/ai/huggingface/HuggingfaceChatModel.java @@ -22,7 +22,7 @@ import java.util.Map; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.huggingface.api.TextGenerationInferenceApi; @@ -31,15 +31,17 @@ import org.springframework.ai.huggingface.model.AllOfGenerateResponseDetails; import org.springframework.ai.huggingface.model.GenerateParameters; import org.springframework.ai.huggingface.model.GenerateRequest; import org.springframework.ai.huggingface.model.GenerateResponse; +import org.springframework.ai.chat.prompt.ChatOptions; +import org.springframework.ai.chat.prompt.ChatOptionsBuilder; import org.springframework.ai.chat.prompt.Prompt; /** - * An implementation of {@link ChatClient} that interfaces with HuggingFace Inference + * An implementation of {@link ChatModel} that interfaces with HuggingFace Inference * Endpoints for text generation. * * @author Mark Pollack */ -public class HuggingfaceChatClient implements ChatClient { +public class HuggingfaceChatModel implements ChatModel { /** * Token required for authenticating with the HuggingFace Inference API. @@ -68,11 +70,11 @@ public class HuggingfaceChatClient implements ChatClient { private int maxNewTokens = 1000; /** - * Constructs a new HuggingfaceChatClient with the specified API token and base path. + * Constructs a new HuggingfaceChatModel with the specified API token and base path. * @param apiToken The API token for HuggingFace. * @param basePath The base path for API requests. */ - public HuggingfaceChatClient(final String apiToken, String basePath) { + public HuggingfaceChatModel(final String apiToken, String basePath) { this.apiToken = apiToken; this.apiClient.setBasePath(basePath); this.apiClient.addDefaultHeader("Authorization", "Bearer " + this.apiToken); @@ -120,4 +122,9 @@ public class HuggingfaceChatClient implements ChatClient { this.maxNewTokens = maxNewTokens; } + @Override + public ChatOptions getDefaultOptions() { + return ChatOptionsBuilder.builder().build(); + } + } diff --git a/models/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 index e4adf3bb8..011650141 100644 --- a/models/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 @@ -23,7 +23,7 @@ import org.springframework.util.StringUtils; public class HuggingfaceTestConfiguration { @Bean - public HuggingfaceChatClient huggingfaceChatClient() { + public HuggingfaceChatModel huggingfaceChatModel() { String apiKey = System.getenv("HUGGINGFACE_API_KEY"); if (!StringUtils.hasText(apiKey)) { throw new IllegalArgumentException( @@ -31,9 +31,9 @@ public class HuggingfaceTestConfiguration { } // Created aws-mistral-7b-instruct-v0-1-805 via // https://ui.endpoints.huggingface.co/ - HuggingfaceChatClient huggingfaceChatClient = new HuggingfaceChatClient(apiKey, + HuggingfaceChatModel huggingfaceChatModel = new HuggingfaceChatModel(apiKey, "https://f6hg7b3cvlmntp5i.us-east-1.aws.endpoints.huggingface.cloud"); - return huggingfaceChatClient; + return huggingfaceChatModel; } } diff --git a/models/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 index f21c7b9ab..654475896 100644 --- a/models/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 @@ -20,7 +20,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.huggingface.HuggingfaceChatClient; +import org.springframework.ai.huggingface.HuggingfaceChatModel; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class ClientIT { @Autowired - protected HuggingfaceChatClient huggingfaceChatClient; + protected HuggingfaceChatModel huggingfaceChatModel; @Test void helloWorldCompletion() { @@ -46,7 +46,7 @@ public class ClientIT { [/INST] """; Prompt prompt = new Prompt(mistral7bInstruct); - ChatResponse chatResponse = huggingfaceChatClient.call(prompt); + ChatResponse chatResponse = huggingfaceChatModel.call(prompt); assertThat(chatResponse.getResult().getOutput().getContent()).isNotEmpty(); String expectedResponse = """ ```json diff --git a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatClient.java b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatModel.java similarity index 91% rename from models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatClient.java rename to models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatModel.java index 34e5e44ad..26637cdc3 100644 --- a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatClient.java +++ b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatModel.java @@ -17,10 +17,10 @@ package org.springframework.ai.minimax; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; @@ -38,30 +38,24 @@ import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import reactor.core.publisher.Flux; -import java.util.Base64; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** - * {@link ChatClient} and {@link StreamingChatClient} implementation for - * {@literal MiniMax} backed by {@link MiniMaxApi}. + * {@link ChatModel} and {@link StreamingChatModel} implementation for {@literal MiniMax} + * backed by {@link MiniMaxApi}. * * @author Geng Rong - * @see ChatClient - * @see StreamingChatClient + * @see ChatModel + * @see StreamingChatModel * @see MiniMaxApi * @since 1.0.0 M1 */ -public class MiniMaxChatClient extends - AbstractFunctionCallSupport> - implements ChatClient, StreamingChatClient { +public class MiniMaxChatModel extends + AbstractFunctionCallSupport> + implements ChatModel, StreamingChatModel { - private static final Logger logger = LoggerFactory.getLogger(MiniMaxChatClient.class); + private static final Logger logger = LoggerFactory.getLogger(MiniMaxChatModel.class); /** * The default options used for the chat completion requests. @@ -79,35 +73,35 @@ public class MiniMaxChatClient extends private final MiniMaxApi miniMaxApi; /** - * Creates an instance of the MiniMaxChatClient. + * Creates an instance of the MiniMaxChatModel. * @param miniMaxApi The MiniMaxApi instance to be used for interacting with the * MiniMax Chat API. * @throws IllegalArgumentException if MiniMaxApi is null */ - public MiniMaxChatClient(MiniMaxApi miniMaxApi) { + public MiniMaxChatModel(MiniMaxApi miniMaxApi) { this(miniMaxApi, MiniMaxChatOptions.builder().withModel(MiniMaxApi.DEFAULT_CHAT_MODEL).withTemperature(0.7f).build()); } /** - * Initializes an instance of the MiniMaxChatClient. + * Initializes an instance of the MiniMaxChatModel. * @param miniMaxApi The MiniMaxApi instance to be used for interacting with the * MiniMax Chat API. - * @param options The MiniMaxChatOptions to configure the chat client. + * @param options The MiniMaxChatOptions to configure the chat model. */ - public MiniMaxChatClient(MiniMaxApi miniMaxApi, MiniMaxChatOptions options) { + public MiniMaxChatModel(MiniMaxApi miniMaxApi, MiniMaxChatOptions options) { this(miniMaxApi, options, null, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the MiniMaxChatClient. + * Initializes a new instance of the MiniMaxChatModel. * @param miniMaxApi The MiniMaxApi instance to be used for interacting with the * MiniMax Chat API. - * @param options The MiniMaxChatOptions to configure the chat client. + * @param options The MiniMaxChatOptions to configure the chat model. * @param functionCallbackContext The function callback context. * @param retryTemplate The retry template. */ - public MiniMaxChatClient(MiniMaxApi miniMaxApi, MiniMaxChatOptions options, + public MiniMaxChatModel(MiniMaxApi miniMaxApi, MiniMaxChatOptions options, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate) { super(functionCallbackContext); Assert.notNull(miniMaxApi, "MiniMaxApi must not be null"); @@ -279,7 +273,7 @@ public class MiniMaxChatClient extends return request; } - private List getFunctionTools(Set functionNames) { + private List getFunctionTools(Set functionNames) { return this.resolveFunctionCallbacks(functionNames).stream().map(functionCallback -> { var function = new FunctionTool.Function(functionCallback.getDescription(), functionCallback.getName(), functionCallback.getInputTypeSchema()); @@ -358,4 +352,9 @@ public class MiniMaxChatClient extends && choice.finishReason() == ChatCompletionFinishReason.TOOL_CALLS; } + @Override + public ChatOptions getDefaultOptions() { + return MiniMaxChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatOptions.java b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatOptions.java index 1b46ca6a6..10ed0f51d 100644 --- a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatOptions.java +++ b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatOptions.java @@ -114,10 +114,10 @@ public class MiniMaxChatOptions implements FunctionCallingOptions, ChatOptions { private @JsonProperty("tool_choice") String toolChoice; /** - * MiniMax Tool Function Callbacks to register with the ChatClient. + * MiniMax Tool Function Callbacks to register with the ChatModel. * For Prompt Options the functionCallbacks are automatically enabled for the duration of the prompt execution. * For Default Options the functionCallbacks are registered but disabled by default. Use the enableFunctions to set the functions - * from the registry to be used by the ChatClient chat completion requests. + * from the registry to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -467,4 +467,22 @@ public class MiniMaxChatOptions implements FunctionCallingOptions, ChatOptions { return true; } + public static MiniMaxChatOptions fromOptions(MiniMaxChatOptions fromOptions) { + return builder().withModel(fromOptions.getModel()) + .withFrequencyPenalty(fromOptions.getFrequencyPenalty()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withN(fromOptions.getN()) + .withPresencePenalty(fromOptions.getPresencePenalty()) + .withResponseFormat(fromOptions.getResponseFormat()) + .withSeed(fromOptions.getSeed()) + .withStop(fromOptions.getStop()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTools(fromOptions.getTools()) + .withToolChoice(fromOptions.getToolChoice()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingClient.java b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingModel.java similarity index 87% rename from models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingClient.java rename to models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingModel.java index acede92b8..f66eba408 100644 --- a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingClient.java +++ b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingModel.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -40,9 +40,9 @@ import java.util.List; * @author Geng Rong * @since 1.0.0 M1 */ -public class MiniMaxEmbeddingClient extends AbstractEmbeddingClient { +public class MiniMaxEmbeddingModel extends AbstractEmbeddingModel { - private static final Logger logger = LoggerFactory.getLogger(MiniMaxEmbeddingClient.class); + private static final Logger logger = LoggerFactory.getLogger(MiniMaxEmbeddingModel.class); private final MiniMaxEmbeddingOptions defaultOptions; @@ -53,43 +53,43 @@ public class MiniMaxEmbeddingClient extends AbstractEmbeddingClient { private final MetadataMode metadataMode; /** - * Constructor for the MiniMaxEmbeddingClient class. + * Constructor for the MiniMaxEmbeddingModel class. * @param miniMaxApi The MiniMaxApi instance to use for making API requests. */ - public MiniMaxEmbeddingClient(MiniMaxApi miniMaxApi) { + public MiniMaxEmbeddingModel(MiniMaxApi miniMaxApi) { this(miniMaxApi, MetadataMode.EMBED); } /** - * Initializes a new instance of the MiniMaxEmbeddingClient class. + * Initializes a new instance of the MiniMaxEmbeddingModel class. * @param miniMaxApi The MiniMaxApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. */ - public MiniMaxEmbeddingClient(MiniMaxApi miniMaxApi, MetadataMode metadataMode) { + public MiniMaxEmbeddingModel(MiniMaxApi miniMaxApi, MetadataMode metadataMode) { this(miniMaxApi, metadataMode, MiniMaxEmbeddingOptions.builder().withModel(MiniMaxApi.DEFAULT_EMBEDDING_MODEL).build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the MiniMaxEmbeddingClient class. + * Initializes a new instance of the MiniMaxEmbeddingModel class. * @param miniMaxApi The MiniMaxApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. * @param miniMaxEmbeddingOptions The options for MiniMax embedding. */ - public MiniMaxEmbeddingClient(MiniMaxApi miniMaxApi, MetadataMode metadataMode, + public MiniMaxEmbeddingModel(MiniMaxApi miniMaxApi, MetadataMode metadataMode, MiniMaxEmbeddingOptions miniMaxEmbeddingOptions) { this(miniMaxApi, metadataMode, miniMaxEmbeddingOptions, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the MiniMaxEmbeddingClient class. + * Initializes a new instance of the MiniMaxEmbeddingModel class. * @param miniMaxApi - The MiniMaxApi instance to use for making API requests. * @param metadataMode - The mode for generating metadata. * @param options - The options for MiniMax embedding. * @param retryTemplate - The RetryTemplate for retrying failed API requests. */ - public MiniMaxEmbeddingClient(MiniMaxApi miniMaxApi, MetadataMode metadataMode, MiniMaxEmbeddingOptions options, + public MiniMaxEmbeddingModel(MiniMaxApi miniMaxApi, MetadataMode metadataMode, MiniMaxEmbeddingOptions options, RetryTemplate retryTemplate) { Assert.notNull(miniMaxApi, "MiniMaxApi must not be null"); Assert.notNull(metadataMode, "metadataMode must not be null"); diff --git a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/api/MiniMaxApi.java b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/api/MiniMaxApi.java index e75d4892a..5b728b641 100644 --- a/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/api/MiniMaxApi.java +++ b/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/api/MiniMaxApi.java @@ -19,6 +19,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonValue; + +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.retry.RetryUtils; import org.springframework.boot.context.properties.bind.ConstructorBinding; @@ -111,7 +113,7 @@ public class MiniMaxApi { * MiniMax Chat Completion Models: * MiniMax Model. */ - public enum ChatModel { + public enum ChatModel implements ModelDescription { ABAB_6_Chat("abab6-chat"), ABAB_5_5_Chat("abab5.5-chat"), ABAB_5_5_S_Chat("abab5.5s-chat"); @@ -125,6 +127,11 @@ public class MiniMaxApi { public String getValue() { return value; } + + @Override + public String getModelName() { + return this.value; + } } /** diff --git a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/ChatCompletionRequestTests.java b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/ChatCompletionRequestTests.java index 9adf803a4..3232836c5 100644 --- a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/ChatCompletionRequestTests.java +++ b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/ChatCompletionRequestTests.java @@ -33,7 +33,7 @@ public class ChatCompletionRequestTests { @Test public void createRequestWithChatOptions() { - var client = new MiniMaxChatClient(new MiniMaxApi("TEST"), + var client = new MiniMaxChatModel(new MiniMaxApi("TEST"), MiniMaxChatOptions.builder().withModel("DEFAULT_MODEL").withTemperature(66.6f).build()); var request = client.createRequest(new Prompt("Test message content"), false); @@ -59,7 +59,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new MiniMaxChatClient(new MiniMaxApi("TEST"), + var client = new MiniMaxChatModel(new MiniMaxApi("TEST"), MiniMaxChatOptions.builder().withModel("DEFAULT_MODEL").build()); var request = client.createRequest(new Prompt("Test message content", @@ -89,7 +89,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new MiniMaxChatClient(new MiniMaxApi("TEST"), + var client = new MiniMaxChatModel(new MiniMaxApi("TEST"), MiniMaxChatOptions.builder() .withModel("DEFAULT_MODEL") .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) diff --git a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/MiniMaxTestConfiguration.java b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/MiniMaxTestConfiguration.java index f544b4896..8a7914da9 100644 --- a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/MiniMaxTestConfiguration.java +++ b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/MiniMaxTestConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.minimax; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.minimax.api.MiniMaxApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.Bean; @@ -42,13 +42,13 @@ public class MiniMaxTestConfiguration { } @Bean - public MiniMaxChatClient miniMaxChatClient(MiniMaxApi api) { - return new MiniMaxChatClient(api); + public MiniMaxChatModel miniMaxChatModel(MiniMaxApi api) { + return new MiniMaxChatModel(api); } @Bean - public EmbeddingClient miniMaxEmbeddingClient(MiniMaxApi api) { - return new MiniMaxEmbeddingClient(api); + public EmbeddingModel miniMaxEmbeddingModel(MiniMaxApi api) { + return new MiniMaxEmbeddingModel(api); } } diff --git a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/api/MiniMaxRetryTests.java b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/api/MiniMaxRetryTests.java index 46d62ae3c..157f7d063 100644 --- a/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/api/MiniMaxRetryTests.java +++ b/models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/api/MiniMaxRetryTests.java @@ -22,9 +22,9 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.minimax.MiniMaxChatClient; +import org.springframework.ai.minimax.MiniMaxChatModel; import org.springframework.ai.minimax.MiniMaxChatOptions; -import org.springframework.ai.minimax.MiniMaxEmbeddingClient; +import org.springframework.ai.minimax.MiniMaxEmbeddingModel; import org.springframework.ai.minimax.MiniMaxEmbeddingOptions; import org.springframework.ai.minimax.api.MiniMaxApi.ChatCompletion; import org.springframework.ai.minimax.api.MiniMaxApi.ChatCompletionChunk; @@ -83,9 +83,9 @@ public class MiniMaxRetryTests { private @Mock MiniMaxApi miniMaxApi; - private MiniMaxChatClient chatClient; + private MiniMaxChatModel chatModel; - private MiniMaxEmbeddingClient embeddingClient; + private MiniMaxEmbeddingModel embeddingModel; @BeforeEach public void beforeEach() { @@ -93,8 +93,8 @@ public class MiniMaxRetryTests { retryListener = new TestRetryListener(); retryTemplate.registerListener(retryListener); - chatClient = new MiniMaxChatClient(miniMaxApi, MiniMaxChatOptions.builder().build(), null, retryTemplate); - embeddingClient = new MiniMaxEmbeddingClient(miniMaxApi, MetadataMode.EMBED, + chatModel = new MiniMaxChatModel(miniMaxApi, MiniMaxChatOptions.builder().build(), null, retryTemplate); + embeddingModel = new MiniMaxEmbeddingModel(miniMaxApi, MetadataMode.EMBED, MiniMaxEmbeddingOptions.builder().build(), retryTemplate); } @@ -111,7 +111,7 @@ public class MiniMaxRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedChatCompletion))); - var result = chatClient.call(new Prompt("text")); + var result = chatModel.call(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getContent()).isSameAs("Response"); @@ -123,7 +123,7 @@ public class MiniMaxRetryTests { public void miniMaxChatNonTransientError() { when(miniMaxApi.chatCompletionEntity(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.call(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.call(new Prompt("text"))); } @Test @@ -139,7 +139,7 @@ public class MiniMaxRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(Flux.just(expectedChatCompletion)); - var result = chatClient.stream(new Prompt("text")); + var result = chatModel.stream(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.collectList().block().get(0).getResult().getOutput().getContent()).isSameAs("Response"); @@ -151,7 +151,7 @@ public class MiniMaxRetryTests { public void miniMaxChatStreamNonTransientError() { when(miniMaxApi.chatCompletionStream(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.stream(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.stream(new Prompt("text"))); } @Test @@ -164,7 +164,7 @@ public class MiniMaxRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedEmbeddings))); - var result = embeddingClient + var result = embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null)); assertThat(result).isNotNull(); @@ -177,7 +177,7 @@ public class MiniMaxRetryTests { public void miniMaxEmbeddingNonTransientError() { when(miniMaxApi.embeddings(isA(EmbeddingRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> embeddingClient + assertThrows(RuntimeException.class, () -> embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null))); } diff --git a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatClient.java b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java similarity index 95% rename from models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatClient.java rename to models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java index 17b7f8d93..a4a8a3313 100644 --- a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatClient.java +++ b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java @@ -17,10 +17,10 @@ package org.springframework.ai.mistralai; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; @@ -55,9 +55,9 @@ import java.util.concurrent.ConcurrentHashMap; * @author Grogdunn * @since 0.8.1 */ -public class MistralAiChatClient extends +public class MistralAiChatModel extends AbstractFunctionCallSupport> - implements ChatClient, StreamingChatClient { + implements ChatModel, StreamingChatModel { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -73,7 +73,7 @@ public class MistralAiChatClient extends private final RetryTemplate retryTemplate; - public MistralAiChatClient(MistralAiApi mistralAiApi) { + public MistralAiChatModel(MistralAiApi mistralAiApi) { this(mistralAiApi, MistralAiChatOptions.builder() .withTemperature(0.7f) @@ -83,11 +83,11 @@ public class MistralAiChatClient extends .build()); } - public MistralAiChatClient(MistralAiApi mistralAiApi, MistralAiChatOptions options) { + public MistralAiChatModel(MistralAiApi mistralAiApi, MistralAiChatOptions options) { this(mistralAiApi, options, null, RetryUtils.DEFAULT_RETRY_TEMPLATE); } - public MistralAiChatClient(MistralAiApi mistralAiApi, MistralAiChatOptions options, + public MistralAiChatModel(MistralAiApi mistralAiApi, MistralAiChatOptions options, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate) { super(functionCallbackContext); Assert.notNull(mistralAiApi, "MistralAiApi must not be null"); @@ -324,4 +324,9 @@ public class MistralAiChatClient extends return !CollectionUtils.isEmpty(choices.get(0).message().toolCalls()); } + @Override + public ChatOptions getDefaultOptions() { + return MistralAiChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java index 86c0bda36..aa88700e3 100644 --- a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java +++ b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java @@ -101,11 +101,11 @@ public class MistralAiChatOptions implements FunctionCallingOptions, ChatOptions private @JsonProperty("tool_choice") ToolChoice toolChoice; /** - * MistralAI Tool Function Callbacks to register with the ChatClient. For Prompt + * MistralAI Tool Function Callbacks to register with the ChatModel. For Prompt * Options the functionCallbacks are automatically enabled for the duration of the * prompt execution. For Default Options the functionCallbacks are registered but * disabled by default. Use the enableFunctions to set the functions from the registry - * to be used by the ChatClient chat completion requests. + * to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -139,7 +139,7 @@ public class MistralAiChatOptions implements FunctionCallingOptions, ChatOptions return this; } - public Builder withMaxToken(Integer maxTokens) { + public Builder withMaxTokens(Integer maxTokens) { this.options.setMaxTokens(maxTokens); return this; } @@ -309,4 +309,19 @@ public class MistralAiChatOptions implements FunctionCallingOptions, ChatOptions this.functions = functions; } + public static MistralAiChatOptions fromOptions(MistralAiChatOptions fromOptions) { + return builder().withModel(fromOptions.getModel()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withSafePrompt(fromOptions.getSafePrompt()) + .withRandomSeed(fromOptions.getRandomSeed()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withResponseFormat(fromOptions.getResponseFormat()) + .withTools(fromOptions.getTools()) + .withToolChoice(fromOptions.getToolChoice()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingClient.java b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingModel.java similarity index 89% rename from models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingClient.java rename to models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingModel.java index e42908c34..78851d804 100644 --- a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingClient.java +++ b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiEmbeddingModel.java @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -38,7 +38,7 @@ import org.springframework.util.Assert; * @author Ricken Bazolo * @since 0.8.1 */ -public class MistralAiEmbeddingClient extends AbstractEmbeddingClient { +public class MistralAiEmbeddingModel extends AbstractEmbeddingModel { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -50,21 +50,21 @@ public class MistralAiEmbeddingClient extends AbstractEmbeddingClient { private final RetryTemplate retryTemplate; - public MistralAiEmbeddingClient(MistralAiApi mistralAiApi) { + public MistralAiEmbeddingModel(MistralAiApi mistralAiApi) { this(mistralAiApi, MetadataMode.EMBED); } - public MistralAiEmbeddingClient(MistralAiApi mistralAiApi, MetadataMode metadataMode) { + public MistralAiEmbeddingModel(MistralAiApi mistralAiApi, MetadataMode metadataMode) { this(mistralAiApi, metadataMode, MistralAiEmbeddingOptions.builder().withModel(MistralAiApi.EmbeddingModel.EMBED.getValue()).build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } - public MistralAiEmbeddingClient(MistralAiApi mistralAiApi, MistralAiEmbeddingOptions options) { + public MistralAiEmbeddingModel(MistralAiApi mistralAiApi, MistralAiEmbeddingOptions options) { this(mistralAiApi, MetadataMode.EMBED, options, RetryUtils.DEFAULT_RETRY_TEMPLATE); } - public MistralAiEmbeddingClient(MistralAiApi mistralAiApi, MetadataMode metadataMode, + public MistralAiEmbeddingModel(MistralAiApi mistralAiApi, MetadataMode metadataMode, MistralAiEmbeddingOptions options, RetryTemplate retryTemplate) { Assert.notNull(mistralAiApi, "MistralAiApi must not be null"); Assert.notNull(metadataMode, "metadataMode must not be null"); diff --git a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/api/MistralAiApi.java b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/api/MistralAiApi.java index 16f2465c5..b2d5230eb 100644 --- a/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/api/MistralAiApi.java +++ b/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/api/MistralAiApi.java @@ -27,6 +27,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.retry.RetryUtils; import org.springframework.boot.context.properties.bind.ConstructorBinding; @@ -706,7 +707,7 @@ public class MistralAiApi { *
  • LARGE - mistral-large-latest (aka mistral-large-2402)
  • * */ - public enum ChatModel { + public enum ChatModel implements ModelDescription { // @formatter:off TINY("open-mistral-7b"), @@ -726,6 +727,11 @@ public class MistralAiApi { return this.value; } + @Override + public String getModelName() { + return this.value; + } + } /** diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatCompletionRequestTest.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatCompletionRequestTest.java index 57135164b..b83fdcd42 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatCompletionRequestTest.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatCompletionRequestTest.java @@ -32,12 +32,12 @@ import static org.assertj.core.api.Assertions.assertThat; @EnabledIfEnvironmentVariable(named = "MISTRAL_AI_API_KEY", matches = ".+") public class MistralAiChatCompletionRequestTest { - MistralAiChatClient chatClient = new MistralAiChatClient(new MistralAiApi("test")); + MistralAiChatModel chatModel = new MistralAiChatModel(new MistralAiApi("test")); @Test void chatCompletionDefaultRequestTest() { - var request = chatClient.createRequest(new Prompt("test content"), false); + var request = chatModel.createRequest(new Prompt("test content"), false); assertThat(request.messages()).hasSize(1); assertThat(request.topP()).isEqualTo(1); @@ -52,7 +52,7 @@ public class MistralAiChatCompletionRequestTest { var options = MistralAiChatOptions.builder().withTemperature(0.5f).withTopP(0.8f).build(); - var request = chatClient.createRequest(new Prompt("test content", options), true); + var request = chatModel.createRequest(new Prompt("test content", options), true); assertThat(request.messages().size()).isEqualTo(1); assertThat(request.topP()).isEqualTo(0.8f); diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatClientIT.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java similarity index 91% rename from models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatClientIT.java rename to models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java index 87e6acbdb..069c92f80 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatClientIT.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java @@ -27,10 +27,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.UserMessage; @@ -56,15 +56,15 @@ import static org.assertj.core.api.Assertions.assertThat; */ @SpringBootTest(classes = MistralAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "MISTRAL_AI_API_KEY", matches = ".+") -class MistralAiChatClientIT { +class MistralAiChatModelIT { - private static final Logger logger = LoggerFactory.getLogger(MistralAiChatClientIT.class); + private static final Logger logger = LoggerFactory.getLogger(MistralAiChatModelIT.class); @Autowired - protected ChatClient chatClient; + protected ChatModel chatModel; @Autowired - protected StreamingChatClient streamingChatClient; + protected StreamingChatModel streamingChatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -90,7 +90,7 @@ class MistralAiChatClientIT { // NOTE: Mistral expects the system message to be before the user message or will // fail with 400 error. Prompt prompt = new Prompt(List.of(systemMessage, userMessage)); - ChatResponse response = chatClient.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResults()).hasSize(1); assertThat(response.getResults().get(0).getOutput().getContent()).contains("Blackbeard"); } @@ -108,7 +108,7 @@ class MistralAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.chatClient.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -126,7 +126,7 @@ class MistralAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -148,7 +148,7 @@ class MistralAiChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); logger.info("" + actorsFilms); @@ -169,7 +169,7 @@ class MistralAiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = streamingChatClient.stream(prompt) + String generationTextFromStream = streamingChatModel.stream(prompt) .collectList() .block() .stream() @@ -201,7 +201,7 @@ class MistralAiChatClientIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(messages, promptOptions)); + ChatResponse response = chatModel.call(new Prompt(messages, promptOptions)); logger.info("Response: {}", response); @@ -224,7 +224,7 @@ class MistralAiChatClientIT { .build())) .build(); - Flux response = streamingChatClient.stream(new Prompt(messages, promptOptions)); + Flux response = streamingChatModel.stream(new Prompt(messages, promptOptions)); String content = response.collectList() .block() diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiEmbeddingIT.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiEmbeddingIT.java index ba472a097..cd8197e1f 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiEmbeddingIT.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiEmbeddingIT.java @@ -31,25 +31,25 @@ import static org.assertj.core.api.Assertions.assertThat; class MistralAiEmbeddingIT { @Autowired - private MistralAiEmbeddingClient mistralAiEmbeddingClient; + private MistralAiEmbeddingModel mistralAiEmbeddingModel; @Test void defaultEmbedding() { - assertThat(mistralAiEmbeddingClient).isNotNull(); - var embeddingResponse = mistralAiEmbeddingClient.embedForResponse(List.of("Hello World")); + assertThat(mistralAiEmbeddingModel).isNotNull(); + var embeddingResponse = mistralAiEmbeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0)).isNotNull(); assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(1024); assertThat(embeddingResponse.getMetadata()).containsEntry("model", "mistral-embed"); assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 4); assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 4); - assertThat(mistralAiEmbeddingClient.dimensions()).isEqualTo(1024); + assertThat(mistralAiEmbeddingModel.dimensions()).isEqualTo(1024); } @Test void embeddingTest() { - assertThat(mistralAiEmbeddingClient).isNotNull(); - var embeddingResponse = mistralAiEmbeddingClient.call(new EmbeddingRequest( + assertThat(mistralAiEmbeddingModel).isNotNull(); + var embeddingResponse = mistralAiEmbeddingModel.call(new EmbeddingRequest( List.of("Hello World", "World is big"), MistralAiEmbeddingOptions.builder().withModel("mistral-embed").withEncodingFormat("float").build())); assertThat(embeddingResponse.getResults()).hasSize(2); @@ -58,7 +58,7 @@ class MistralAiEmbeddingIT { assertThat(embeddingResponse.getMetadata()).containsEntry("model", "mistral-embed"); assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 9); assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 9); - assertThat(mistralAiEmbeddingClient.dimensions()).isEqualTo(1024); + assertThat(mistralAiEmbeddingModel.dimensions()).isEqualTo(1024); } } diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiRetryTests.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiRetryTests.java index 1ca349d21..2c3f0b48d 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiRetryTests.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiRetryTests.java @@ -82,9 +82,9 @@ public class MistralAiRetryTests { private @Mock MistralAiApi mistralAiApi; - private MistralAiChatClient chatClient; + private MistralAiChatModel chatModel; - private MistralAiEmbeddingClient embeddingClient; + private MistralAiEmbeddingModel embeddingModel; @BeforeEach public void beforeEach() { @@ -92,7 +92,7 @@ public class MistralAiRetryTests { retryListener = new TestRetryListener(); retryTemplate.registerListener(retryListener); - chatClient = new MistralAiChatClient(mistralAiApi, + chatModel = new MistralAiChatModel(mistralAiApi, MistralAiChatOptions.builder() .withTemperature(0.7f) .withTopP(1f) @@ -100,7 +100,7 @@ public class MistralAiRetryTests { .withModel(MistralAiApi.ChatModel.TINY.getValue()) .build(), null, retryTemplate); - embeddingClient = new MistralAiEmbeddingClient(mistralAiApi, MetadataMode.EMBED, + embeddingModel = new MistralAiEmbeddingModel(mistralAiApi, MetadataMode.EMBED, MistralAiEmbeddingOptions.builder().withModel(MistralAiApi.EmbeddingModel.EMBED.getValue()).build(), retryTemplate); } @@ -118,7 +118,7 @@ public class MistralAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedChatCompletion))); - var result = chatClient.call(new Prompt("text")); + var result = chatModel.call(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getContent()).isSameAs("Response"); @@ -130,7 +130,7 @@ public class MistralAiRetryTests { public void mistralAiChatNonTransientError() { when(mistralAiApi.chatCompletionEntity(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.call(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.call(new Prompt("text"))); } @Test @@ -146,7 +146,7 @@ public class MistralAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(Flux.just(expectedChatCompletion)); - var result = chatClient.stream(new Prompt("text")); + var result = chatModel.stream(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.collectList().block().get(0).getResult().getOutput().getContent()).isSameAs("Response"); @@ -158,7 +158,7 @@ public class MistralAiRetryTests { public void mistralAiChatStreamNonTransientError() { when(mistralAiApi.chatCompletionStream(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.stream(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.stream(new Prompt("text"))); } @Test @@ -172,7 +172,7 @@ public class MistralAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedEmbeddings))); - var result = embeddingClient + var result = embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null)); assertThat(result).isNotNull(); @@ -185,7 +185,7 @@ public class MistralAiRetryTests { public void mistralAiEmbeddingNonTransientError() { when(mistralAiApi.embeddings(isA(EmbeddingRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> embeddingClient + assertThrows(RuntimeException.class, () -> embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null))); } diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiTestConfiguration.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiTestConfiguration.java index 7952571d6..64e608a92 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiTestConfiguration.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiTestConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.mistralai; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.mistralai.api.MistralAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.Bean; @@ -35,14 +35,14 @@ public class MistralAiTestConfiguration { } @Bean - public EmbeddingClient mistralAiEmbeddingClient(MistralAiApi api) { - return new MistralAiEmbeddingClient(api, + public EmbeddingModel mistralAiEmbeddingModel(MistralAiApi api) { + return new MistralAiEmbeddingModel(api, MistralAiEmbeddingOptions.builder().withModel(MistralAiApi.EmbeddingModel.EMBED.getValue()).build()); } @Bean - public MistralAiChatClient mistralAiChatClient(MistralAiApi mistralAiApi) { - return new MistralAiChatClient(mistralAiApi, + public MistralAiChatModel mistralAiChatModel(MistralAiApi mistralAiApi) { + return new MistralAiChatModel(mistralAiApi, MistralAiChatOptions.builder().withModel(MistralAiApi.ChatModel.MIXTRAL.getValue()).build()); } diff --git a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatClient.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatModel.java similarity index 91% rename from models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatClient.java rename to models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatModel.java index 273d98866..291cffdf8 100644 --- a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatClient.java +++ b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatModel.java @@ -18,13 +18,13 @@ package org.springframework.ai.ollama; import java.util.Base64; import java.util.List; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.ollama.metadata.OllamaChatResponseMetadata; import reactor.core.publisher.Flux; -import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; @@ -39,7 +39,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; /** - * {@link ChatClient} implementation for {@literal Ollama}. + * {@link ChatModel} implementation for {@literal Ollama}. * * Ollama allows developers to run large language models and generate embeddings locally. * It supports open-source models available on [Ollama AI @@ -52,7 +52,7 @@ import org.springframework.util.StringUtils; * @author Christian Tzolov * @since 0.8.0 */ -public class OllamaChatClient implements ChatClient, StreamingChatClient { +public class OllamaChatModel implements ChatModel, StreamingChatModel { /** * Low-level Ollama API library. @@ -64,11 +64,11 @@ public class OllamaChatClient implements ChatClient, StreamingChatClient { */ private OllamaOptions defaultOptions; - public OllamaChatClient(OllamaApi chatApi) { + public OllamaChatModel(OllamaApi chatApi) { this(chatApi, OllamaOptions.create().withModel(OllamaOptions.DEFAULT_MODEL)); } - public OllamaChatClient(OllamaApi chatApi, OllamaOptions defaultOptions) { + public OllamaChatModel(OllamaApi chatApi, OllamaOptions defaultOptions) { Assert.notNull(chatApi, "OllamaApi must not be null"); Assert.notNull(defaultOptions, "DefaultOptions must not be null"); this.chatApi = chatApi; @@ -79,7 +79,7 @@ public class OllamaChatClient implements ChatClient, StreamingChatClient { * @deprecated Use {@link OllamaOptions#setModel} instead. */ @Deprecated - public OllamaChatClient withModel(String model) { + public OllamaChatModel withModel(String model) { this.defaultOptions.setModel(model); return this; } @@ -88,7 +88,7 @@ public class OllamaChatClient implements ChatClient, StreamingChatClient { * @deprecated Use {@link OllamaOptions} constructor instead. */ @Deprecated - public OllamaChatClient withDefaultOptions(OllamaOptions options) { + public OllamaChatModel withDefaultOptions(OllamaOptions options) { this.defaultOptions = options; return this; } @@ -205,4 +205,9 @@ public class OllamaChatClient implements ChatClient, StreamingChatClient { } } + @Override + public ChatOptions getDefaultOptions() { + return OllamaOptions.fromOptions(this.defaultOptions); + } + } \ No newline at end of file diff --git a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingClient.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingModel.java similarity index 89% rename from models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingClient.java rename to models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingModel.java index 1748709aa..66be40c5c 100644 --- a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingClient.java +++ b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaEmbeddingModel.java @@ -23,9 +23,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.model.ModelOptionsUtils; @@ -36,7 +36,7 @@ import org.springframework.util.Assert; import org.springframework.util.StringUtils; /** - * {@link EmbeddingClient} implementation for {@literal Ollama}. + * {@link EmbeddingModel} implementation for {@literal Ollama}. * * Ollama allows developers to run large language models and generate embeddings locally. * It supports open-source models available on [Ollama AI @@ -51,7 +51,7 @@ import org.springframework.util.StringUtils; * @author Christian Tzolov * @since 0.8.0 */ -public class OllamaEmbeddingClient extends AbstractEmbeddingClient { +public class OllamaEmbeddingModel extends AbstractEmbeddingModel { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -62,11 +62,11 @@ public class OllamaEmbeddingClient extends AbstractEmbeddingClient { */ private OllamaOptions defaultOptions = OllamaOptions.create().withModel(OllamaOptions.DEFAULT_MODEL); - public OllamaEmbeddingClient(OllamaApi ollamaApi) { + public OllamaEmbeddingModel(OllamaApi ollamaApi) { this.ollamaApi = ollamaApi; } - public OllamaEmbeddingClient(OllamaApi ollamaApi, OllamaOptions defaultOptions) { + public OllamaEmbeddingModel(OllamaApi ollamaApi, OllamaOptions defaultOptions) { this.ollamaApi = ollamaApi; this.defaultOptions = defaultOptions; } @@ -75,7 +75,7 @@ public class OllamaEmbeddingClient extends AbstractEmbeddingClient { * @deprecated Use {@link OllamaOptions#setModel} instead. */ @Deprecated - public OllamaEmbeddingClient withModel(String model) { + public OllamaEmbeddingModel withModel(String model) { this.defaultOptions.setModel(model); return this; } @@ -84,7 +84,7 @@ public class OllamaEmbeddingClient extends AbstractEmbeddingClient { * @deprecated Use {@link OllamaOptions} constructor instead. */ @Deprecated - public OllamaEmbeddingClient withDefaultOptions(OllamaOptions options) { + public OllamaEmbeddingModel withDefaultOptions(OllamaOptions options) { this.defaultOptions = options; return this; } diff --git a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaModel.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaModel.java index 73d41053c..449bab647 100644 --- a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaModel.java +++ b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaModel.java @@ -15,13 +15,15 @@ */ package org.springframework.ai.ollama.api; +import org.springframework.ai.model.ModelDescription; + /** * Helper class for common Ollama models. * * @author Siarhei Blashuk * @since 0.8.1 */ -public enum OllamaModel { +public enum OllamaModel implements ModelDescription { /** * Llama 2 is a collection of language models ranging from 7B to 70B parameters. @@ -99,4 +101,9 @@ public enum OllamaModel { return this.id; } + @Override + public String getModelName() { + return this.id; + } + } diff --git a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java index abc329e81..436631f6e 100644 --- a/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java +++ b/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java @@ -714,6 +714,43 @@ public class OllamaOptions implements ChatOptions, EmbeddingOptions { .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } + public static OllamaOptions fromOptions(OllamaOptions fromOptions) { + return new OllamaOptions() + .withModel(fromOptions.getModel()) + .withFormat(fromOptions.getFormat()) + .withKeepAlive(fromOptions.getKeepAlive()) + .withUseNUMA(fromOptions.getUseNUMA()) + .withNumCtx(fromOptions.getNumCtx()) + .withNumBatch(fromOptions.getNumBatch()) + .withNumGQA(fromOptions.getNumGQA()) + .withNumGPU(fromOptions.getNumGPU()) + .withMainGPU(fromOptions.getMainGPU()) + .withLowVRAM(fromOptions.getLowVRAM()) + .withF16KV(fromOptions.getF16KV()) + .withLogitsAll(fromOptions.getLogitsAll()) + .withVocabOnly(fromOptions.getVocabOnly()) + .withUseMMap(fromOptions.getUseMMap()) + .withUseMLock(fromOptions.getUseMLock()) + .withNumThread(fromOptions.getNumThread()) + .withNumKeep(fromOptions.getNumKeep()) + .withSeed(fromOptions.getSeed()) + .withNumPredict(fromOptions.getNumPredict()) + .withTopK(fromOptions.getTopK()) + .withTopP(fromOptions.getTopP()) + .withTfsZ(fromOptions.getTfsZ()) + .withTypicalP(fromOptions.getTypicalP()) + .withRepeatLastN(fromOptions.getRepeatLastN()) + .withTemperature(fromOptions.getTemperature()) + .withRepeatPenalty(fromOptions.getRepeatPenalty()) + .withPresencePenalty(fromOptions.getPresencePenalty()) + .withFrequencyPenalty(fromOptions.getFrequencyPenalty()) + .withMirostat(fromOptions.getMirostat()) + .withMirostatTau(fromOptions.getMirostatTau()) + .withMirostatEta(fromOptions.getMirostatEta()) + .withPenalizeNewline(fromOptions.getPenalizeNewline()) + .withStop(fromOptions.getStop()); + } + // @formatter:on diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientIT.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelIT.java similarity index 90% rename from models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientIT.java rename to models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelIT.java index 6f4254fa4..f1d974fc6 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientIT.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelIT.java @@ -56,11 +56,11 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @Testcontainers @Disabled("For manual smoke testing only.") -class OllamaChatClientIT { +class OllamaChatModelIT { private static String MODEL = "mistral"; - private static final Log logger = LogFactory.getLog(OllamaChatClientIT.class); + private static final Log logger = LogFactory.getLog(OllamaChatModelIT.class); @Container static OllamaContainer ollamaContainer = new OllamaContainer("ollama/ollama:0.1.32"); @@ -77,7 +77,7 @@ class OllamaChatClientIT { } @Autowired - private OllamaChatClient client; + private OllamaChatModel chatModel; @Test void roleTest() { @@ -95,13 +95,13 @@ class OllamaChatClientIT { Prompt prompt = new Prompt(List.of(userMessage, systemMessage), portableOptions); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); // ollama specific options var ollamaOptions = new OllamaOptions().withLowVRAM(true); - response = client.call(new Prompt(List.of(userMessage, systemMessage), ollamaOptions)); + response = chatModel.call(new Prompt(List.of(userMessage, systemMessage), ollamaOptions)); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -109,7 +109,7 @@ class OllamaChatClientIT { @Test void usageTest() { Prompt prompt = new Prompt("Tell me a joke"); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); Usage usage = response.getMetadata().getUsage(); assertThat(usage).isNotNull(); @@ -131,7 +131,7 @@ class OllamaChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -151,7 +151,7 @@ class OllamaChatClientIT { Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -173,7 +173,7 @@ class OllamaChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -194,7 +194,7 @@ class OllamaChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -219,8 +219,8 @@ class OllamaChatClientIT { } @Bean - public OllamaChatClient ollamaChat(OllamaApi ollamaApi) { - return new OllamaChatClient(ollamaApi, OllamaOptions.create().withModel(MODEL).withTemperature(0.9f)); + public OllamaChatModel ollamaChat(OllamaApi ollamaApi) { + return new OllamaChatModel(ollamaApi, OllamaOptions.create().withModel(MODEL).withTemperature(0.9f)); } } diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientMultimodalIT.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java similarity index 88% rename from models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientMultimodalIT.java rename to models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java index 8599cfe9e..4ef7b7d36 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientMultimodalIT.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java @@ -44,11 +44,11 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @Testcontainers @Disabled("For manual smoke testing only.") -class OllamaChatClientMultimodalIT { +class OllamaChatModelMultimodalIT { private static String MODEL = "llava"; - private static final Log logger = LogFactory.getLog(OllamaChatClientIT.class); + private static final Log logger = LogFactory.getLog(OllamaChatModelIT.class); @Container static OllamaContainer ollamaContainer = new OllamaContainer("ollama/ollama:0.1.32"); @@ -65,7 +65,7 @@ class OllamaChatClientMultimodalIT { } @Autowired - private OllamaChatClient client; + private OllamaChatModel chatModel; @Test void multiModalityTest() throws IOException { @@ -75,7 +75,7 @@ class OllamaChatClientMultimodalIT { var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); - var response = client.call(new Prompt(List.of(userMessage))); + var response = chatModel.call(new Prompt(List.of(userMessage))); logger.info(response.getResult().getOutput().getContent()); assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple", "basket"); @@ -90,8 +90,8 @@ class OllamaChatClientMultimodalIT { } @Bean - public OllamaChatClient ollamaChat(OllamaApi ollamaApi) { - return new OllamaChatClient(ollamaApi, OllamaOptions.create().withModel(MODEL).withTemperature(0.9f)); + public OllamaChatModel ollamaChat(OllamaApi ollamaApi) { + return new OllamaChatModel(ollamaApi, OllamaOptions.create().withModel(MODEL).withTemperature(0.9f)); } } diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatRequestTests.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatRequestTests.java index f78b8f2fc..3ea38e6d0 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatRequestTests.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatRequestTests.java @@ -30,13 +30,13 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class OllamaChatRequestTests { - OllamaChatClient client = new OllamaChatClient(new OllamaApi(), + OllamaChatModel chatModel = new OllamaChatModel(new OllamaApi(), new OllamaOptions().withModel("MODEL_NAME").withTopK(99).withTemperature(66.6f).withNumGPU(1)); @Test public void createRequestWithDefaultOptions() { - var request = client.ollamaChatRequest(new Prompt("Test message content"), false); + var request = chatModel.ollamaChatRequest(new Prompt("Test message content"), false); assertThat(request.messages()).hasSize(1); assertThat(request.stream()).isFalse(); @@ -54,7 +54,7 @@ public class OllamaChatRequestTests { // Runtime options should override the default options. OllamaOptions promptOptions = new OllamaOptions().withTemperature(0.8f).withTopP(0.5f).withNumGPU(2); - var request = client.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); + var request = chatModel.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); assertThat(request.messages()).hasSize(1); assertThat(request.stream()).isTrue(); @@ -79,7 +79,7 @@ public class OllamaChatRequestTests { .withTopP(0.6f) .build(); - var request = client.ollamaChatRequest(new Prompt("Test message content", portablePromptOptions), true); + var request = chatModel.ollamaChatRequest(new Prompt("Test message content", portablePromptOptions), true); assertThat(request.messages()).hasSize(1); assertThat(request.stream()).isTrue(); @@ -97,7 +97,7 @@ public class OllamaChatRequestTests { // Ollama runtime options. OllamaOptions promptOptions = new OllamaOptions().withModel("PROMPT_MODEL"); - var request = client.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); + var request = chatModel.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); assertThat(request.model()).isEqualTo("PROMPT_MODEL"); } @@ -105,17 +105,17 @@ public class OllamaChatRequestTests { @Test public void createRequestWithDefaultOptionsModelOverride() { - OllamaChatClient client2 = new OllamaChatClient(new OllamaApi(), + OllamaChatModel chatModel = new OllamaChatModel(new OllamaApi(), new OllamaOptions().withModel("DEFAULT_OPTIONS_MODEL")); - var request = client2.ollamaChatRequest(new Prompt("Test message content"), true); + var request = chatModel.ollamaChatRequest(new Prompt("Test message content"), true); assertThat(request.model()).isEqualTo("DEFAULT_OPTIONS_MODEL"); // Prompt options should override the default options. OllamaOptions promptOptions = new OllamaOptions().withModel("PROMPT_MODEL"); - request = client2.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); + request = chatModel.ollamaChatRequest(new Prompt("Test message content", promptOptions), true); assertThat(request.model()).isEqualTo("PROMPT_MODEL"); } diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingClientIT.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingModelIT.java similarity index 84% rename from models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingClientIT.java rename to models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingModelIT.java index d903aab49..437fba302 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingClientIT.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingModelIT.java @@ -23,9 +23,9 @@ import org.apache.commons.logging.LogFactory; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.ollama.OllamaContainer; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.ollama.api.OllamaApi; @@ -34,14 +34,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Bean; -import org.testcontainers.ollama.OllamaContainer; import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @Disabled("For manual smoke testing only.") @Testcontainers -class OllamaEmbeddingClientIT { +class OllamaEmbeddingModelIT { private static final Log logger = LogFactory.getLog(OllamaApiIT.class); @@ -60,15 +59,15 @@ class OllamaEmbeddingClientIT { } @Autowired - private OllamaEmbeddingClient embeddingClient; + private OllamaEmbeddingModel embeddingModel; @Test void singleEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(3200); + assertThat(embeddingModel.dimensions()).isEqualTo(3200); } @SpringBootConfiguration @@ -80,8 +79,8 @@ class OllamaEmbeddingClientIT { } @Bean - public OllamaEmbeddingClient ollamaEmbedding(OllamaApi ollamaApi) { - return new OllamaEmbeddingClient(ollamaApi).withModel("orca-mini"); + public OllamaEmbeddingModel ollamaEmbedding(OllamaApi ollamaApi) { + return new OllamaEmbeddingModel(ollamaApi).withModel("orca-mini"); } } diff --git a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingRequestTests.java b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingRequestTests.java index c4987129c..82fcab7d7 100644 --- a/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingRequestTests.java +++ b/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingRequestTests.java @@ -28,13 +28,13 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class OllamaEmbeddingRequestTests { - OllamaEmbeddingClient client = new OllamaEmbeddingClient(new OllamaApi()).withDefaultOptions( + OllamaEmbeddingModel chatModel = new OllamaEmbeddingModel(new OllamaApi()).withDefaultOptions( new OllamaOptions().withModel("DEFAULT_MODEL").withMainGPU(11).withUseMMap(true).withNumGPU(1)); @Test public void ollamaEmbeddingRequestDefaultOptions() { - var request = client.ollamaEmbeddingRequest("Hello", null); + var request = chatModel.ollamaEmbeddingRequest("Hello", null); assertThat(request.model()).isEqualTo("DEFAULT_MODEL"); assertThat(request.options().get("num_gpu")).isEqualTo(1); @@ -51,7 +51,7 @@ public class OllamaEmbeddingRequestTests { .withUseMMap(true) .withNumGPU(2); - var request = client.ollamaEmbeddingRequest("Hello", promptOptions); + var request = chatModel.ollamaEmbeddingRequest("Hello", promptOptions); assertThat(request.model()).isEqualTo("PROMPT_MODEL"); assertThat(request.options().get("num_gpu")).isEqualTo(2); diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechModel.java similarity index 92% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechModel.java index 49fb21694..027ee50be 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioSpeechModel.java @@ -24,10 +24,10 @@ import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.api.OpenAiAudioApi.SpeechRequest.AudioResponseFormat; import org.springframework.ai.openai.api.common.OpenAiApiException; import org.springframework.ai.openai.audio.speech.Speech; -import org.springframework.ai.openai.audio.speech.SpeechClient; +import org.springframework.ai.openai.audio.speech.SpeechModel; import org.springframework.ai.openai.audio.speech.SpeechPrompt; import org.springframework.ai.openai.audio.speech.SpeechResponse; -import org.springframework.ai.openai.audio.speech.StreamingSpeechClient; +import org.springframework.ai.openai.audio.speech.StreamingSpeechModel; import org.springframework.ai.openai.metadata.audio.OpenAiAudioSpeechResponseMetadata; import org.springframework.ai.openai.metadata.support.OpenAiResponseHeaderExtractor; import org.springframework.http.ResponseEntity; @@ -44,7 +44,7 @@ import java.time.Duration; * @see OpenAiAudioApi * @since 1.0.0-M1 */ -public class OpenAiAudioSpeechClient implements SpeechClient, StreamingSpeechClient { +public class OpenAiAudioSpeechModel implements SpeechModel, StreamingSpeechModel { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -61,12 +61,12 @@ public class OpenAiAudioSpeechClient implements SpeechClient, StreamingSpeechCli private final OpenAiAudioApi audioApi; /** - * Initializes a new instance of the OpenAiAudioSpeechClient class with the provided + * Initializes a new instance of the OpenAiAudioSpeechModel class with the provided * OpenAiAudioApi. It uses the model tts-1, response format mp3, voice alloy, and the * default speed of 1.0. * @param audioApi The OpenAiAudioApi to use for speech synthesis. */ - public OpenAiAudioSpeechClient(OpenAiAudioApi audioApi) { + public OpenAiAudioSpeechModel(OpenAiAudioApi audioApi) { this(audioApi, OpenAiAudioSpeechOptions.builder() .withModel(OpenAiAudioApi.TtsModel.TTS_1.getValue()) @@ -77,13 +77,13 @@ public class OpenAiAudioSpeechClient implements SpeechClient, StreamingSpeechCli } /** - * Initializes a new instance of the OpenAiAudioSpeechClient class with the provided + * Initializes a new instance of the OpenAiAudioSpeechModel class with the provided * OpenAiAudioApi and options. * @param audioApi The OpenAiAudioApi to use for speech synthesis. * @param options The OpenAiAudioSpeechOptions containing the speech synthesis * options. */ - public OpenAiAudioSpeechClient(OpenAiAudioApi audioApi, OpenAiAudioSpeechOptions options) { + public OpenAiAudioSpeechModel(OpenAiAudioApi audioApi, OpenAiAudioSpeechOptions options) { Assert.notNull(audioApi, "OpenAiAudioApi must not be null"); Assert.notNull(options, "OpenAiSpeechOptions must not be null"); this.audioApi = audioApi; diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionModel.java similarity index 92% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionModel.java index 71e8bb8fc..ed5d9709d 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiAudioTranscriptionModel.java @@ -35,7 +35,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.metadata.RateLimit; -import org.springframework.ai.model.ModelClient; +import org.springframework.ai.model.Model; import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.api.OpenAiAudioApi.StructuredResponse; import org.springframework.ai.openai.audio.transcription.AudioTranscription; @@ -59,8 +59,7 @@ import org.springframework.util.Assert; * @see OpenAiAudioApi * @since 0.8.1 */ -public class OpenAiAudioTranscriptionClient - implements ModelClient { +public class OpenAiAudioTranscriptionModel implements Model { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -71,11 +70,11 @@ public class OpenAiAudioTranscriptionClient private final OpenAiAudioApi audioApi; /** - * OpenAiAudioTranscriptionClient is a client class used to interact with the OpenAI + * OpenAiAudioTranscriptionModel is a client class used to interact with the OpenAI * Audio Transcription API. * @param audioApi The OpenAiAudioApi instance to be used for making API calls. */ - public OpenAiAudioTranscriptionClient(OpenAiAudioApi audioApi) { + public OpenAiAudioTranscriptionModel(OpenAiAudioApi audioApi) { this(audioApi, OpenAiAudioTranscriptionOptions.builder() .withModel(OpenAiAudioApi.WhisperModel.WHISPER_1.getValue()) @@ -86,25 +85,25 @@ public class OpenAiAudioTranscriptionClient } /** - * OpenAiAudioTranscriptionClient is a client class used to interact with the OpenAI + * OpenAiAudioTranscriptionModel is a client class used to interact with the OpenAI * Audio Transcription API. * @param audioApi The OpenAiAudioApi instance to be used for making API calls. * @param options The OpenAiAudioTranscriptionOptions instance for configuring the * audio transcription. */ - public OpenAiAudioTranscriptionClient(OpenAiAudioApi audioApi, OpenAiAudioTranscriptionOptions options) { + public OpenAiAudioTranscriptionModel(OpenAiAudioApi audioApi, OpenAiAudioTranscriptionOptions options) { this(audioApi, options, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * OpenAiAudioTranscriptionClient is a client class used to interact with the OpenAI + * OpenAiAudioTranscriptionModel is a client class used to interact with the OpenAI * Audio Transcription API. * @param audioApi The OpenAiAudioApi instance to be used for making API calls. * @param options The OpenAiAudioTranscriptionOptions instance for configuring the * audio transcription. * @param retryTemplate The RetryTemplate instance for retrying failed API calls. */ - public OpenAiAudioTranscriptionClient(OpenAiAudioApi audioApi, OpenAiAudioTranscriptionOptions options, + public OpenAiAudioTranscriptionModel(OpenAiAudioApi audioApi, OpenAiAudioTranscriptionOptions options, RetryTemplate retryTemplate) { Assert.notNull(audioApi, "OpenAiAudioApi must not be null"); Assert.notNull(options, "OpenAiTranscriptionOptions must not be null"); diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java similarity index 93% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java index 6ec6904db..266c475a0 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java @@ -17,10 +17,10 @@ package org.springframework.ai.openai; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.metadata.RateLimit; import org.springframework.ai.chat.prompt.ChatOptions; @@ -58,7 +58,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; /** - * {@link ChatClient} and {@link StreamingChatClient} implementation for {@literal OpenAI} + * {@link ChatModel} and {@link StreamingChatModel} implementation for {@literal OpenAI} * backed by {@link OpenAiApi}. * * @author Mark Pollack @@ -68,15 +68,15 @@ import java.util.concurrent.ConcurrentHashMap; * @author Josh Long * @author Jemin Huh * @author Grogdunn - * @see ChatClient - * @see StreamingChatClient + * @see ChatModel + * @see StreamingChatModel * @see OpenAiApi */ -public class OpenAiChatClient extends +public class OpenAiChatModel extends AbstractFunctionCallSupport> - implements ChatClient, StreamingChatClient { + implements ChatModel, StreamingChatModel { - private static final Logger logger = LoggerFactory.getLogger(OpenAiChatClient.class); + private static final Logger logger = LoggerFactory.getLogger(OpenAiChatModel.class); /** * The default options used for the chat completion requests. @@ -94,35 +94,35 @@ public class OpenAiChatClient extends private final OpenAiApi openAiApi; /** - * Creates an instance of the OpenAiChatClient. + * Creates an instance of the OpenAiChatModel. * @param openAiApi The OpenAiApi instance to be used for interacting with the OpenAI * Chat API. * @throws IllegalArgumentException if openAiApi is null */ - public OpenAiChatClient(OpenAiApi openAiApi) { + public OpenAiChatModel(OpenAiApi openAiApi) { this(openAiApi, OpenAiChatOptions.builder().withModel(OpenAiApi.DEFAULT_CHAT_MODEL).withTemperature(0.7f).build()); } /** - * Initializes an instance of the OpenAiChatClient. + * Initializes an instance of the OpenAiChatModel. * @param openAiApi The OpenAiApi instance to be used for interacting with the OpenAI * Chat API. - * @param options The OpenAiChatOptions to configure the chat client. + * @param options The OpenAiChatOptions to configure the chat model. */ - public OpenAiChatClient(OpenAiApi openAiApi, OpenAiChatOptions options) { + public OpenAiChatModel(OpenAiApi openAiApi, OpenAiChatOptions options) { this(openAiApi, options, null, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the OpenAiChatClient. + * Initializes a new instance of the OpenAiChatModel. * @param openAiApi The OpenAiApi instance to be used for interacting with the OpenAI * Chat API. - * @param options The OpenAiChatOptions to configure the chat client. + * @param options The OpenAiChatOptions to configure the chat model. * @param functionCallbackContext The function callback context. * @param retryTemplate The retry template. */ - public OpenAiChatClient(OpenAiApi openAiApi, OpenAiChatOptions options, + public OpenAiChatModel(OpenAiApi openAiApi, OpenAiChatOptions options, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate) { super(functionCallbackContext); Assert.notNull(openAiApi, "OpenAiApi must not be null"); @@ -394,4 +394,9 @@ public class OpenAiChatClient extends && choice.finishReason() == ChatCompletionFinishReason.TOOL_CALLS; } + @Override + public ChatOptions getDefaultOptions() { + return OpenAiChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java index d45d4db18..09f86baac 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java @@ -134,10 +134,10 @@ public class OpenAiChatOptions implements FunctionCallingOptions, ChatOptions { private @JsonProperty("user") String user; /** - * OpenAI Tool Function Callbacks to register with the ChatClient. + * OpenAI Tool Function Callbacks to register with the ChatModel. * For Prompt Options the functionCallbacks are automatically enabled for the duration of the prompt execution. * For Default Options the functionCallbacks are registered but disabled by default. Use the enableFunctions to set the functions - * from the registry to be used by the ChatClient chat completion requests. + * from the registry to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -567,4 +567,27 @@ public class OpenAiChatOptions implements FunctionCallingOptions, ChatOptions { throw new UnsupportedOperationException("Unimplemented method 'setTopK'"); } + public static OpenAiChatOptions fromOptions(OpenAiChatOptions fromOptions) { + return OpenAiChatOptions.builder() + .withModel(fromOptions.getModel()) + .withFrequencyPenalty(fromOptions.getFrequencyPenalty()) + .withLogitBias(fromOptions.getLogitBias()) + .withLogprobs(fromOptions.getLogprobs()) + .withTopLogprobs(fromOptions.getTopLogprobs()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withN(fromOptions.getN()) + .withPresencePenalty(fromOptions.getPresencePenalty()) + .withResponseFormat(fromOptions.getResponseFormat()) + .withSeed(fromOptions.getSeed()) + .withStop(fromOptions.getStop()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTools(fromOptions.getTools()) + .withToolChoice(fromOptions.getToolChoice()) + .withUser(fromOptions.getUser()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java similarity index 88% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java index 808c5f351..7192d2771 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -41,9 +41,9 @@ import org.springframework.util.Assert; * * @author Christian Tzolov */ -public class OpenAiEmbeddingClient extends AbstractEmbeddingClient { +public class OpenAiEmbeddingModel extends AbstractEmbeddingModel { - private static final Logger logger = LoggerFactory.getLogger(OpenAiEmbeddingClient.class); + private static final Logger logger = LoggerFactory.getLogger(OpenAiEmbeddingModel.class); private final OpenAiEmbeddingOptions defaultOptions; @@ -54,43 +54,43 @@ public class OpenAiEmbeddingClient extends AbstractEmbeddingClient { private final MetadataMode metadataMode; /** - * Constructor for the OpenAiEmbeddingClient class. + * Constructor for the OpenAiEmbeddingModel class. * @param openAiApi The OpenAiApi instance to use for making API requests. */ - public OpenAiEmbeddingClient(OpenAiApi openAiApi) { + public OpenAiEmbeddingModel(OpenAiApi openAiApi) { this(openAiApi, MetadataMode.EMBED); } /** - * Initializes a new instance of the OpenAiEmbeddingClient class. + * Initializes a new instance of the OpenAiEmbeddingModel class. * @param openAiApi The OpenAiApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. */ - public OpenAiEmbeddingClient(OpenAiApi openAiApi, MetadataMode metadataMode) { + public OpenAiEmbeddingModel(OpenAiApi openAiApi, MetadataMode metadataMode) { this(openAiApi, metadataMode, OpenAiEmbeddingOptions.builder().withModel(OpenAiApi.DEFAULT_EMBEDDING_MODEL).build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the OpenAiEmbeddingClient class. + * Initializes a new instance of the OpenAiEmbeddingModel class. * @param openAiApi The OpenAiApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. * @param openAiEmbeddingOptions The options for OpenAi embedding. */ - public OpenAiEmbeddingClient(OpenAiApi openAiApi, MetadataMode metadataMode, + public OpenAiEmbeddingModel(OpenAiApi openAiApi, MetadataMode metadataMode, OpenAiEmbeddingOptions openAiEmbeddingOptions) { this(openAiApi, metadataMode, openAiEmbeddingOptions, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the OpenAiEmbeddingClient class. + * Initializes a new instance of the OpenAiEmbeddingModel class. * @param openAiApi - The OpenAiApi instance to use for making API requests. * @param metadataMode - The mode for generating metadata. * @param options - The options for OpenAI embedding. * @param retryTemplate - The RetryTemplate for retrying failed API requests. */ - public OpenAiEmbeddingClient(OpenAiApi openAiApi, MetadataMode metadataMode, OpenAiEmbeddingOptions options, + public OpenAiEmbeddingModel(OpenAiApi openAiApi, MetadataMode metadataMode, OpenAiEmbeddingOptions options, RetryTemplate retryTemplate) { Assert.notNull(openAiApi, "OpenAiService must not be null"); Assert.notNull(metadataMode, "metadataMode must not be null"); diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageModel.java similarity index 94% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageModel.java index 69863ef9f..32cd93395 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageModel.java @@ -21,7 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImageOptions; import org.springframework.ai.image.ImagePrompt; @@ -37,16 +37,16 @@ import org.springframework.retry.support.RetryTemplate; import org.springframework.util.Assert; /** - * OpenAiImageClient is a class that implements the ImageClient interface. It provides a + * OpenAiImageModel is a class that implements the ImageModel interface. It provides a * client for calling the OpenAI image generation API. * * @author Mark Pollack * @author Christian Tzolov * @since 0.8.0 */ -public class OpenAiImageClient implements ImageClient { +public class OpenAiImageModel implements ImageModel { - private final static Logger logger = LoggerFactory.getLogger(OpenAiImageClient.class); + private final static Logger logger = LoggerFactory.getLogger(OpenAiImageModel.class); private OpenAiImageOptions defaultOptions; @@ -54,11 +54,11 @@ public class OpenAiImageClient implements ImageClient { public final RetryTemplate retryTemplate; - public OpenAiImageClient(OpenAiImageApi openAiImageApi) { + public OpenAiImageModel(OpenAiImageApi openAiImageApi) { this(openAiImageApi, OpenAiImageOptions.builder().build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } - public OpenAiImageClient(OpenAiImageApi openAiImageApi, OpenAiImageOptions defaultOptions, + public OpenAiImageModel(OpenAiImageApi openAiImageApi, OpenAiImageOptions defaultOptions, RetryTemplate retryTemplate) { Assert.notNull(openAiImageApi, "OpenAiImageApi must not be null"); Assert.notNull(defaultOptions, "defaultOptions must not be null"); diff --git a/models/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 index cc4256267..5d1a8b12b 100644 --- a/models/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 @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.retry.RetryUtils; import org.springframework.boot.context.properties.bind.ConstructorBinding; @@ -113,7 +114,7 @@ public class OpenAiApi { * - GPT-4 and GPT-4 Turbo * - GPT-3.5 Turbo. */ - public enum ChatModel { + public enum ChatModel implements ModelDescription { /** * Multimodal flagship model that’s cheaper and faster than GPT-4 Turbo. * Currently points to gpt-4o-2024-05-13. @@ -199,6 +200,11 @@ public class OpenAiApi { public String getValue() { return value; } + + @Override + public String getModelName() { + return this.value; + } } /** diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechModel.java similarity index 87% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechModel.java index 1dc3876d0..9d976fd75 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/SpeechModel.java @@ -16,10 +16,10 @@ package org.springframework.ai.openai.audio.speech; -import org.springframework.ai.model.ModelClient; +import org.springframework.ai.model.Model; /** - * The {@link SpeechClient} interface provides a way to interact with the OpenAI + * The {@link SpeechModel} interface provides a way to interact with the OpenAI * Text-to-Speech (TTS) API. It allows you to convert text input into lifelike spoken * audio. * @@ -27,7 +27,7 @@ import org.springframework.ai.model.ModelClient; * @since 1.0.0-M1 */ @FunctionalInterface -public interface SpeechClient extends ModelClient { +public interface SpeechModel extends Model { /** * Generates spoken audio from the provided text message. diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechClient.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechModel.java similarity index 87% rename from models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechClient.java rename to models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechModel.java index 209789bfd..a8ae06b07 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechClient.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/audio/speech/StreamingSpeechModel.java @@ -16,11 +16,11 @@ package org.springframework.ai.openai.audio.speech; -import org.springframework.ai.model.StreamingModelClient; +import org.springframework.ai.model.StreamingModel; import reactor.core.publisher.Flux; /** - * The {@link StreamingSpeechClient} interface provides a way to interact with the OpenAI + * The {@link StreamingSpeechModel} interface provides a way to interact with the OpenAI * Text-to-Speech (TTS) API using a streaming approach, allowing you to receive the * generated audio in a real-time fashion. * @@ -28,7 +28,7 @@ import reactor.core.publisher.Flux; * @since 1.0.0-M1 */ @FunctionalInterface -public interface StreamingSpeechClient extends StreamingModelClient { +public interface StreamingSpeechModel extends StreamingModel { /** * Generates a stream of audio bytes from the provided text message. diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java index 300cdfafb..a4b117791 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java @@ -34,7 +34,7 @@ public class ChatCompletionRequestTests { @Test public void createRequestWithChatOptions() { - var client = new OpenAiChatClient(new OpenAiApi("TEST"), + var client = new OpenAiChatModel(new OpenAiApi("TEST"), OpenAiChatOptions.builder().withModel("DEFAULT_MODEL").withTemperature(66.6f).build()); var request = client.createRequest(new Prompt("Test message content"), false); @@ -60,7 +60,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new OpenAiChatClient(new OpenAiApi("TEST"), + var client = new OpenAiChatModel(new OpenAiApi("TEST"), OpenAiChatOptions.builder().withModel("DEFAULT_MODEL").build()); var request = client.createRequest(new Prompt("Test message content", @@ -90,7 +90,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new OpenAiChatClient(new OpenAiApi("TEST"), + var client = new OpenAiChatModel(new OpenAiApi("TEST"), OpenAiChatOptions.builder() .withModel("DEFAULT_MODEL") .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) diff --git a/models/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 index 3a235cf7a..5c3f80dbb 100644 --- a/models/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 @@ -15,7 +15,7 @@ */ package org.springframework.ai.openai; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.api.OpenAiImageApi; @@ -51,33 +51,33 @@ public class OpenAiTestConfiguration { } @Bean - public OpenAiChatClient openAiChatClient(OpenAiApi api) { - OpenAiChatClient openAiChatClient = new OpenAiChatClient(api); - return openAiChatClient; + public OpenAiChatModel openAiChatModel(OpenAiApi api) { + OpenAiChatModel openAiChatModel = new OpenAiChatModel(api); + return openAiChatModel; } @Bean - public OpenAiAudioTranscriptionClient openAiTranscriptionClient(OpenAiAudioApi api) { - OpenAiAudioTranscriptionClient openAiTranscriptionClient = new OpenAiAudioTranscriptionClient(api); - return openAiTranscriptionClient; + public OpenAiAudioTranscriptionModel openAiTranscriptionModel(OpenAiAudioApi api) { + OpenAiAudioTranscriptionModel openAiTranscriptionModel = new OpenAiAudioTranscriptionModel(api); + return openAiTranscriptionModel; } @Bean - public OpenAiAudioSpeechClient openAiAudioSpeechClient(OpenAiAudioApi api) { - OpenAiAudioSpeechClient openAiAudioSpeechClient = new OpenAiAudioSpeechClient(api); - return openAiAudioSpeechClient; + public OpenAiAudioSpeechModel openAiAudioSpeechModel(OpenAiAudioApi api) { + OpenAiAudioSpeechModel openAiAudioSpeechModel = new OpenAiAudioSpeechModel(api); + return openAiAudioSpeechModel; } @Bean - public OpenAiImageClient openAiImageClient(OpenAiImageApi imageApi) { - OpenAiImageClient openAiImageClient = new OpenAiImageClient(imageApi); - // openAiImageClient.setModel("foobar"); - return openAiImageClient; + public OpenAiImageModel openAiImageModel(OpenAiImageApi imageApi) { + OpenAiImageModel openAiImageModel = new OpenAiImageModel(imageApi); + // openAiImageModel.setModel("foobar"); + return openAiImageModel; } @Bean - public EmbeddingClient openAiEmbeddingClient(OpenAiApi api) { - return new OpenAiEmbeddingClient(api); + public EmbeddingModel openAiEmbeddingModel(OpenAiApi api) { + return new OpenAiEmbeddingModel(api); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/TranscriptionRequestTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/TranscriptionRequestTests.java index 2f1239654..70530e9d3 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/TranscriptionRequestTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/TranscriptionRequestTests.java @@ -34,7 +34,7 @@ public class TranscriptionRequestTests { @Test public void defaultOptions() { - var client = new OpenAiAudioTranscriptionClient(new OpenAiAudioApi("TEST"), + var client = new OpenAiAudioTranscriptionModel(new OpenAiAudioApi("TEST"), OpenAiAudioTranscriptionOptions.builder() .withModel("DEFAULT_MODEL") .withResponseFormat(TranscriptResponseFormat.TEXT) @@ -58,7 +58,7 @@ public class TranscriptionRequestTests { @Test public void runtimeOptions() { - var client = new OpenAiAudioTranscriptionClient(new OpenAiAudioApi("TEST"), + var client = new OpenAiAudioTranscriptionModel(new OpenAiAudioApi("TEST"), OpenAiAudioTranscriptionOptions.builder() .withModel("DEFAULT_MODEL") .withResponseFormat(TranscriptResponseFormat.TEXT) diff --git a/models/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 index e38595b90..5d1e0dc06 100644 --- a/models/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 @@ -26,9 +26,9 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.document.Document; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiTestConfiguration; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.testutils.AbstractIT; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.SystemPromptTemplate; @@ -58,16 +58,16 @@ public class AcmeIT extends AbstractIT { private Resource systemBikePrompt; @Autowired - private OpenAiEmbeddingClient embeddingClient; + private OpenAiEmbeddingModel embeddingModel; @Autowired - private OpenAiChatClient chatClient; + private OpenAiChatModel chatModel; @Test void beanTest() { assertThat(bikesResource).isNotNull(); - assertThat(embeddingClient).isNotNull(); - assertThat(chatClient).isNotNull(); + assertThat(embeddingModel).isNotNull(); + assertThat(chatModel).isNotNull(); } // @Test @@ -81,7 +81,7 @@ public class AcmeIT extends AbstractIT { // Step 2 - Create embeddings and save to vector store logger.info("Creating Embeddings..."); - VectorStore vectorStore = new SimpleVectorStore(embeddingClient); + VectorStore vectorStore = new SimpleVectorStore(embeddingModel); vectorStore.accept(textSplitter.apply(jsonReader.get())); @@ -108,7 +108,7 @@ public class AcmeIT extends AbstractIT { logger.info("Asking AI generative to reply to question."); Prompt prompt = new Prompt(List.of(systemMessage, userMessage)); logger.info("AI responded."); - ChatResponse response = chatClient.call(prompt); + ChatResponse response = chatModel.call(prompt); evaluateQuestionAndAnswer(userQuery, response, true); } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelIT.java similarity index 90% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientIT.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelIT.java index 5fdc3e24b..0ff96b259 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelIT.java @@ -32,13 +32,13 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = OpenAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") -class OpenAiSpeechClientIT extends AbstractIT { +class OpenAiSpeechModelIT extends AbstractIT { private static final Float SPEED = 1.0f; @Test void shouldSuccessfullyStreamAudioBytesForEmptyMessage() { - Flux response = speechClient.stream("Today is a wonderful day to build something people love!"); + Flux response = speechModel.stream("Today is a wonderful day to build something people love!"); assertThat(response).isNotNull(); assertThat(response.collectList().block()).isNotNull(); System.out.println(response.collectList().block()); @@ -46,7 +46,7 @@ class OpenAiSpeechClientIT extends AbstractIT { @Test void shouldProduceAudioBytesDirectlyFromMessage() { - byte[] audioBytes = speechClient.call("Today is a wonderful day to build something people love!"); + byte[] audioBytes = speechModel.call("Today is a wonderful day to build something people love!"); assertThat(audioBytes).hasSizeGreaterThan(0); } @@ -61,7 +61,7 @@ class OpenAiSpeechClientIT extends AbstractIT { .build(); SpeechPrompt speechPrompt = new SpeechPrompt("Today is a wonderful day to build something people love!", speechOptions); - SpeechResponse response = speechClient.call(speechPrompt); + SpeechResponse response = speechModel.call(speechPrompt); byte[] audioBytes = response.getResult().getOutput(); assertThat(response.getResults()).hasSize(1); assertThat(response.getResults().get(0).getOutput()).isNotEmpty(); @@ -79,7 +79,7 @@ class OpenAiSpeechClientIT extends AbstractIT { .build(); SpeechPrompt speechPrompt = new SpeechPrompt("Today is a wonderful day to build something people love!", speechOptions); - SpeechResponse response = speechClient.call(speechPrompt); + SpeechResponse response = speechModel.call(speechPrompt); OpenAiAudioSpeechResponseMetadata metadata = response.getMetadata(); assertThat(metadata).isNotNull(); assertThat(metadata.getRateLimit()).isNotNull(); @@ -100,7 +100,7 @@ class OpenAiSpeechClientIT extends AbstractIT { SpeechPrompt speechPrompt = new SpeechPrompt("Today is a wonderful day to build something people love!", speechOptions); - Flux responseFlux = speechClient.stream(speechPrompt); + Flux responseFlux = speechModel.stream(speechPrompt); assertThat(responseFlux).isNotNull(); List responses = responseFlux.collectList().block(); assertThat(responses).isNotNull(); diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientWithSpeechResponseMetadataTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelWithSpeechResponseMetadataTests.java similarity index 92% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientWithSpeechResponseMetadataTests.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelWithSpeechResponseMetadataTests.java index 93f87781b..089c9c824 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientWithSpeechResponseMetadataTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelWithSpeechResponseMetadataTests.java @@ -18,7 +18,7 @@ package org.springframework.ai.openai.audio.speech; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.springframework.ai.openai.OpenAiAudioSpeechClient; +import org.springframework.ai.openai.OpenAiAudioSpeechModel; import org.springframework.ai.openai.OpenAiAudioSpeechOptions; import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.metadata.audio.OpenAiAudioSpeechResponseMetadata; @@ -45,15 +45,15 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat /** * @author Ahmed Yousri */ -@RestClientTest(OpenAiSpeechClientWithSpeechResponseMetadataTests.Config.class) -public class OpenAiSpeechClientWithSpeechResponseMetadataTests { +@RestClientTest(OpenAiSpeechModelWithSpeechResponseMetadataTests.Config.class) +public class OpenAiSpeechModelWithSpeechResponseMetadataTests { private static String TEST_API_KEY = "sk-1234567890"; private static final Float SPEED = 1.0f; @Autowired - private OpenAiAudioSpeechClient openAiSpeechClient; + private OpenAiAudioSpeechModel openAiSpeechClient; @Autowired private MockRestServiceServer server; @@ -121,8 +121,8 @@ public class OpenAiSpeechClientWithSpeechResponseMetadataTests { static class Config { @Bean - public OpenAiAudioSpeechClient openAiAudioSpeechClient(OpenAiAudioApi openAiAudioApi) { - return new OpenAiAudioSpeechClient(openAiAudioApi); + public OpenAiAudioSpeechModel openAiAudioSpeechClient(OpenAiAudioApi openAiAudioApi) { + return new OpenAiAudioSpeechModel(openAiAudioApi); } @Bean diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelIT.java similarity index 92% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientIT.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelIT.java index dcb10cd10..851d04c69 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelIT.java @@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = OpenAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") -class OpenAiTranscriptionClientIT extends AbstractIT { +class OpenAiTranscriptionModelIT extends AbstractIT { @Value("classpath:/speech/jfk.flac") private Resource audioFile; @@ -43,7 +43,7 @@ class OpenAiTranscriptionClientIT extends AbstractIT { .withTemperature(0f) .build(); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); - AudioTranscriptionResponse response = transcriptionClient.call(transcriptionRequest); + AudioTranscriptionResponse response = transcriptionModel.call(transcriptionRequest); assertThat(response.getResults()).hasSize(1); assertThat(response.getResults().get(0).getOutput().toLowerCase().contains("fellow")).isTrue(); } @@ -59,7 +59,7 @@ class OpenAiTranscriptionClientIT extends AbstractIT { .withResponseFormat(responseFormat) .build(); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); - AudioTranscriptionResponse response = transcriptionClient.call(transcriptionRequest); + AudioTranscriptionResponse response = transcriptionModel.call(transcriptionRequest); assertThat(response.getResults()).hasSize(1); assertThat(response.getResults().get(0).getOutput().toLowerCase().contains("fellow")).isTrue(); } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.java similarity index 92% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.java index 3b2629714..244af308f 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.ai.chat.metadata.RateLimit; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; +import org.springframework.ai.openai.OpenAiAudioTranscriptionModel; import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.metadata.audio.OpenAiAudioTranscriptionMetadata; import org.springframework.ai.openai.metadata.audio.OpenAiAudioTranscriptionResponseMetadata; @@ -48,13 +48,13 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat /** * @author Michael Lavelle */ -@RestClientTest(OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests.Config.class) -public class OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests { +@RestClientTest(OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.Config.class) +public class OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests { private static String TEST_API_KEY = "sk-1234567890"; @Autowired - private OpenAiAudioTranscriptionClient openAiTranscriptionClient; + private OpenAiAudioTranscriptionModel openAiTranscriptionClient; @Autowired private MockRestServiceServer server; @@ -156,8 +156,8 @@ public class OpenAiTranscriptionClientWithTranscriptionResponseMetadataTests { } @Bean - public OpenAiAudioTranscriptionClient openAiClient(OpenAiAudioApi openAiAudioApi) { - return new OpenAiAudioTranscriptionClient(openAiAudioApi); + public OpenAiAudioTranscriptionModel openAiClient(OpenAiAudioApi openAiAudioApi) { + return new OpenAiAudioTranscriptionModel(openAiAudioApi); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionClientTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionModelTests.java similarity index 91% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionClientTests.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionModelTests.java index 2b4f48e1d..96431af0e 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionClientTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/TranscriptionModelTests.java @@ -18,7 +18,7 @@ package org.springframework.ai.openai.audio.transcription; import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; +import org.springframework.ai.openai.OpenAiAudioTranscriptionModel; import org.springframework.core.io.Resource; import static org.assertj.core.api.Assertions.assertThat; @@ -33,18 +33,18 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; /** - * Unit Tests for {@link TranscriptionClient}. + * Unit Tests for {@link TranscriptionModel}. * * @author Michael Lavelle */ -class TranscriptionClientTests { +class TranscriptionModelTests { @Test void transcrbeRequestReturnsResponseCorrectly() { Resource mockAudioFile = Mockito.mock(Resource.class); - OpenAiAudioTranscriptionClient mockClient = Mockito.mock(OpenAiAudioTranscriptionClient.class); + OpenAiAudioTranscriptionModel mockClient = Mockito.mock(OpenAiAudioTranscriptionModel.class); String mockTranscription = "All your bases are belong to us"; diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java index 56ac4da9f..35da3bc3a 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java @@ -17,8 +17,8 @@ package org.springframework.ai.openai.chat; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -31,19 +31,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; +import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.messages.AssistantMessage; -import org.springframework.ai.chat.messages.Media; -import org.springframework.ai.chat.messages.Message; -import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.chat.prompt.PromptTemplate; -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.function.FunctionCallbackWrapper; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.ai.openai.OpenAiTestConfiguration; import org.springframework.ai.openai.api.OpenAiApi; @@ -51,7 +41,7 @@ import org.springframework.ai.openai.api.tool.MockWeatherService; import org.springframework.ai.openai.testutils.AbstractIT; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.util.MimeTypeUtils; @@ -65,75 +55,81 @@ class OpenAiChatClientIT extends AbstractIT { private static final Logger logger = LoggerFactory.getLogger(OpenAiChatClientIT.class); @Value("classpath:/prompts/system-message.st") - private Resource systemResource; + private Resource systemTextResource; @Test void roleTest() { - UserMessage userMessage = new UserMessage( - "Tell me about 3 famous pirates from the Golden Age of Piracy and what they did."); - SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); - Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); - Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = chatClient.call(prompt); + + // @formatter:off + ChatResponse response = ChatClient.builder(chatModel).build().prompt() + .system(s -> s.text(systemTextResource) + .param("name", "Bob") + .param("voice", "pirate")) + .user("Tell me about 3 famous pirates from the Golden Age of Piracy and what they did") + .call() + .chatResponse(); + // @formatter:on + + logger.info("" + response); assertThat(response.getResults()).hasSize(1); assertThat(response.getResults().get(0).getOutput().getContent()).contains("Blackbeard"); - // needs fine tuning... evaluateQuestionAndAnswer(request, response, false); } @Test void listOutputConverter() { - DefaultConversionService conversionService = new DefaultConversionService(); - ListOutputConverter outputConverter = new ListOutputConverter(conversionService); + // @formatter:off + Collection collection = ChatClient.builder(chatModel).build().prompt() + .user(u -> u.text("List five {subject}") + .param("subject", "ice cream flavors")) + .call() + .entity(new ParameterizedTypeReference>() {}); + // @formatter:on - String format = outputConverter.getFormat(); - String template = """ - List five {subject} - {format} - """; - PromptTemplate promptTemplate = new PromptTemplate(template, - Map.of("subject", "ice cream flavors", "format", format)); - Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.chatClient.call(prompt).getResult(); + assertThat(collection).hasSize(5); + } - List list = outputConverter.convert(generation.getOutput().getContent()); - assertThat(list).hasSize(5); + @Test + void listOutputConverter2() { + + // @formatter:off + List actorsFilms = ChatClient.builder(chatModel).build().prompt() + .user("Generate the filmography of 5 movies for Tom Hanks and Bill Murray.") + .call() + .entity(new ParameterizedTypeReference>() { + }); + // @formatter:on + + logger.info("" + actorsFilms); + assertThat(actorsFilms).hasSize(2); } @Test void mapOutputConverter() { - MapOutputConverter outputConverter = new MapOutputConverter(); + // @formatter:off + Map result = ChatClient.builder(chatModel).build().prompt() + .user(u -> u.text("Provide me a List of {subject}") + .param("subject", "an array of numbers from 1 to 9 under they key name 'numbers'")) + .call() + .entity(new ParameterizedTypeReference>() { + }); + // @formatter:on - String format = outputConverter.getFormat(); - String template = """ - Provide me a List of {subject} - {format} - """; - PromptTemplate promptTemplate = new PromptTemplate(template, - Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); - Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); - - Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); - } @Test void beanOutputConverter() { - BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilms.class); + // @formatter:off + ActorsFilms actorsFilms = ChatClient.builder(chatModel).build().prompt() + .user("Generate the filmography for a random actor.") + .call() + .entity(ActorsFilms.class); + // @formatter:on - String format = outputConverter.getFormat(); - String template = """ - Generate the filmography for a random actor. - {format} - """; - PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); - Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); - - ActorsFilms actorsFilms = outputConverter.convert(generation.getOutput().getContent()); + logger.info("" + actorsFilms); + assertThat(actorsFilms.getActor()).isNotBlank(); } record ActorsFilmsRecord(String actor, List movies) { @@ -142,18 +138,13 @@ class OpenAiChatClientIT extends AbstractIT { @Test void beanOutputConverterRecords() { - BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilmsRecord.class); + // @formatter:off + ActorsFilmsRecord actorsFilms = ChatClient.builder(chatModel).build().prompt() + .user("Generate the filmography of 5 movies for Tom Hanks.") + .call() + .entity(ActorsFilmsRecord.class); + // @formatter:on - String format = outputConverter.getFormat(); - String template = """ - Generate the filmography of 5 movies for Tom Hanks. - {format} - """; - PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); - Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); - - ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); logger.info("" + actorsFilms); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); assertThat(actorsFilms.movies()).hasSize(5); @@ -164,25 +155,25 @@ class OpenAiChatClientIT extends AbstractIT { BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilmsRecord.class); - String format = outputConverter.getFormat(); - String template = """ - Generate the filmography of 5 movies for Tom Hanks. - {format} - """; - PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); - Prompt prompt = new Prompt(promptTemplate.createMessage()); + // @formatter:off + Flux chatResponse = ChatClient.builder(chatModel) + .build() + .prompt() + .user(u -> u + .text("Generate the filmography of 5 movies for Tom Hanks. " + System.lineSeparator() + + "{format}") + .param("format", outputConverter.getFormat())) + .stream() + .content(); - String generationTextFromStream = streamingChatClient.stream(prompt) - .collectList() - .block() - .stream() - .map(ChatResponse::getResults) - .flatMap(List::stream) - .map(Generation::getOutput) - .map(AssistantMessage::getContent) - .collect(Collectors.joining()); + String generationTextFromStream = chatResponse.collectList() + .block() + .stream() + .collect(Collectors.joining()); + // @formatter:on ActorsFilmsRecord actorsFilms = outputConverter.convert(generationTextFromStream); + logger.info("" + actorsFilms); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); assertThat(actorsFilms.movies()).hasSize(5); @@ -191,54 +182,33 @@ class OpenAiChatClientIT extends AbstractIT { @Test void functionCallTest() { - UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - - List messages = new ArrayList<>(List.of(userMessage)); - - var promptOptions = OpenAiChatOptions.builder() - .withModel(OpenAiApi.ChatModel.GPT_4_TURBO_PREVIEW.getValue()) - .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) - .withName("getCurrentWeather") - .withDescription("Get the weather in location") - .withResponseConverter((response) -> "" + response.temp() + response.unit()) - .build())) - .build(); - - ChatResponse response = chatClient.call(new Prompt(messages, promptOptions)); + // @formatter:off + String response = ChatClient.builder(chatModel).build().prompt() + .user(u -> u.text("What's the weather like in San Francisco, Tokyo, and Paris?")) + .function("getCurrentWeather", "Get the weather in location", new MockWeatherService()) + .call() + .content(); + // @formatter:on logger.info("Response: {}", response); - assertThat(response.getResult().getOutput().getContent()).containsAnyOf("30.0", "30"); - assertThat(response.getResult().getOutput().getContent()).containsAnyOf("10.0", "10"); - assertThat(response.getResult().getOutput().getContent()).containsAnyOf("15.0", "15"); + assertThat(response).containsAnyOf("30.0", "30"); + assertThat(response).containsAnyOf("10.0", "10"); + assertThat(response).containsAnyOf("15.0", "15"); } @Test void streamFunctionCallTest() { - UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); + // @formatter:off + Flux response = ChatClient.builder(chatModel).build().prompt() + .user("What's the weather like in San Francisco, Tokyo, and Paris?") + .function("getCurrentWeather", "Get the weather in location", new MockWeatherService()) + .stream() + .content(); + // @formatter:on - List messages = new ArrayList<>(List.of(userMessage)); - - var promptOptions = OpenAiChatOptions.builder() - // .withModel(OpenAiApi.ChatModel.GPT_4_TURBO_PREVIEW.getValue()) - .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) - .withName("getCurrentWeather") - .withDescription("Get the weather in location") - .withResponseConverter((response) -> "" + response.temp() + response.unit()) - .build())) - .build(); - - Flux response = streamingChatClient.stream(new Prompt(messages, promptOptions)); - - String content = response.collectList() - .block() - .stream() - .map(ChatResponse::getResults) - .flatMap(List::stream) - .map(Generation::getOutput) - .map(AssistantMessage::getContent) - .collect(Collectors.joining()); + String content = response.collectList().block().stream().collect(Collectors.joining()); logger.info("Response: {}", content); assertThat(content).containsAnyOf("30.0", "30"); @@ -250,53 +220,62 @@ class OpenAiChatClientIT extends AbstractIT { @ValueSource(strings = { "gpt-4-vision-preview", "gpt-4o" }) void multiModalityEmbeddedImage(String modelName) throws IOException { - var imageData = new ClassPathResource("/test.png"); + // @formatter:off + String response = ChatClient.builder(chatModel).build().prompt() + // TODO consider adding model(...) method to ChatClient as a shortcut to + // OpenAiChatOptions.builder().withModel(modelName).build() + .options(OpenAiChatOptions.builder().withModel(modelName).build()) + .user(u -> u.text("Explain what do you see on this picture?") + .media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("/test.png"))) + .call() + .content(); + // @formatter:on - var userMessage = new UserMessage("Explain what do you see on this picture?", - List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); - - var response = chatClient - .call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(modelName).build())); - - logger.info(response.getResult().getOutput().getContent()); - assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple"); - assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket"); + logger.info(response); + assertThat(response).contains("bananas", "apple"); + assertThat(response).containsAnyOf("bowl", "basket"); } @ParameterizedTest(name = "{0} : {displayName} ") @ValueSource(strings = { "gpt-4-vision-preview", "gpt-4o" }) void multiModalityImageUrl(String modelName) throws IOException { - var userMessage = new UserMessage("Explain what do you see on this picture?", List - .of(new Media(MimeTypeUtils.IMAGE_PNG, - new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png")))); + // TODO: add url method that wrapps the checked exception. + URL url = new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png"); - ChatResponse response = chatClient - .call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(modelName).build())); + // @formatter:off + String response = ChatClient.builder(chatModel).build().prompt() + // TODO consider adding model(...) method to ChatClient as a shortcut to + // OpenAiChatOptions.builder().withModel(modelName).build() + .options(OpenAiChatOptions.builder().withModel(modelName).build()) + .user(u -> u.text("Explain what do you see on this picture?").media(MimeTypeUtils.IMAGE_PNG, url)) + .call() + .content(); + // @formatter:on - logger.info(response.getResult().getOutput().getContent()); - assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple"); - assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket"); + logger.info(response); + assertThat(response).contains("bananas", "apple"); + assertThat(response).containsAnyOf("bowl", "basket"); } @Test void streamingMultiModalityImageUrl() throws IOException { - var userMessage = new UserMessage("Explain what do you see on this picture?", List - .of(new Media(MimeTypeUtils.IMAGE_PNG, - new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png")))); + // TODO: add url method that wrapps the checked exception. + URL url = new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png"); - Flux response = streamingChatClient.stream(new Prompt(List.of(userMessage), - OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_VISION_PREVIEW.getValue()).build())); + // @formatter:off + Flux response = ChatClient.builder(chatModel).build().prompt() + .options(OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_VISION_PREVIEW.getValue()) + .build()) + .user(u -> u.text("Explain what do you see on this picture?") + .media(MimeTypeUtils.IMAGE_PNG, url)) + .stream() + .content(); + // @formatter:on + + String content = response.collectList().block().stream().collect(Collectors.joining()); - String content = response.collectList() - .block() - .stream() - .map(ChatResponse::getResults) - .flatMap(List::stream) - .map(Generation::getOutput) - .map(AssistantMessage::getContent) - .collect(Collectors.joining()); logger.info("Response: {}", content); assertThat(content).contains("bananas", "apple"); assertThat(content).containsAnyOf("bowl", "basket"); diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClient2IT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModel2IT.java similarity index 89% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClient2IT.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModel2IT.java index fc5904be1..6c0127641 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClient2IT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModel2IT.java @@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest; @@ -41,14 +41,14 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Christian Tzolov */ -@SpringBootTest(classes = OpenAiChatClient2IT.Config.class) +@SpringBootTest(classes = OpenAiChatModel2IT.Config.class) @EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") -public class OpenAiChatClient2IT { +public class OpenAiChatModel2IT { private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired - private OpenAiChatClient openAiChatClient; + private OpenAiChatModel openAiChatModel; @Test void responseFormatTest() throws JsonMappingException, JsonProcessingException { @@ -67,7 +67,7 @@ public class OpenAiChatClient2IT { .withResponseFormat(new ChatCompletionRequest.ResponseFormat("json_object")) .build()); - ChatResponse response = this.openAiChatClient.call(prompt); + ChatResponse response = this.openAiChatModel.call(prompt); assertThat(response).isNotNull(); @@ -99,8 +99,8 @@ public class OpenAiChatClient2IT { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } } 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 new file mode 100644 index 000000000..1d811e82e --- /dev/null +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java @@ -0,0 +1,305 @@ +/* + * Copyright 2023 - 2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.openai.chat; + +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import reactor.core.publisher.Flux; + +import org.springframework.ai.chat.ChatResponse; +import org.springframework.ai.chat.Generation; +import org.springframework.ai.chat.messages.AssistantMessage; +import org.springframework.ai.chat.messages.Media; +import org.springframework.ai.chat.messages.Message; +import org.springframework.ai.chat.messages.UserMessage; +import org.springframework.ai.chat.prompt.Prompt; +import org.springframework.ai.chat.prompt.PromptTemplate; +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.function.FunctionCallbackWrapper; +import org.springframework.ai.openai.OpenAiChatOptions; +import org.springframework.ai.openai.OpenAiTestConfiguration; +import org.springframework.ai.openai.api.OpenAiApi; +import org.springframework.ai.openai.api.tool.MockWeatherService; +import org.springframework.ai.openai.testutils.AbstractIT; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.util.MimeTypeUtils; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest(classes = OpenAiTestConfiguration.class) +@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") +class OpenAiChatModelIT extends AbstractIT { + + private static final Logger logger = LoggerFactory.getLogger(OpenAiChatModelIT.class); + + @Value("classpath:/prompts/system-message.st") + private Resource systemResource; + + @Test + void roleTest() { + UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and what they did."); + SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); + Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); + Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); + ChatResponse response = chatModel.call(prompt); + assertThat(response.getResults()).hasSize(1); + assertThat(response.getResults().get(0).getOutput().getContent()).contains("Blackbeard"); + // needs fine tuning... evaluateQuestionAndAnswer(request, response, false); + } + + @Test + void listOutputConverter() { + DefaultConversionService conversionService = new DefaultConversionService(); + ListOutputConverter outputConverter = new ListOutputConverter(conversionService); + + String format = outputConverter.getFormat(); + String template = """ + List five {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "ice cream flavors", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = this.chatModel.call(prompt).getResult(); + + List list = outputConverter.convert(generation.getOutput().getContent()); + assertThat(list).hasSize(5); + + } + + @Test + void mapOutputConverter() { + MapOutputConverter outputConverter = new MapOutputConverter(); + + String format = outputConverter.getFormat(); + String template = """ + Provide me a List of {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = chatModel.call(prompt).getResult(); + + Map result = outputConverter.convert(generation.getOutput().getContent()); + assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); + + } + + @Test + void beanOutputConverter() { + + BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilms.class); + + String format = outputConverter.getFormat(); + String template = """ + Generate the filmography for a random actor. + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = chatModel.call(prompt).getResult(); + + ActorsFilms actorsFilms = outputConverter.convert(generation.getOutput().getContent()); + } + + record ActorsFilmsRecord(String actor, List movies) { + } + + @Test + void beanOutputConverterRecords() { + + BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilmsRecord.class); + + String format = outputConverter.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = chatModel.call(prompt).getResult(); + + ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); + logger.info("" + actorsFilms); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @Test + void beanStreamOutputConverterRecords() { + + BeanOutputConverter outputConverter = new BeanOutputConverter<>(ActorsFilmsRecord.class); + + String format = outputConverter.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + + String generationTextFromStream = streamingChatModel.stream(prompt) + .collectList() + .block() + .stream() + .map(ChatResponse::getResults) + .flatMap(List::stream) + .map(Generation::getOutput) + .map(AssistantMessage::getContent) + .collect(Collectors.joining()); + + ActorsFilmsRecord actorsFilms = outputConverter.convert(generationTextFromStream); + logger.info("" + actorsFilms); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @Test + void functionCallTest() { + + UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); + + List messages = new ArrayList<>(List.of(userMessage)); + + var promptOptions = OpenAiChatOptions.builder() + .withModel(OpenAiApi.ChatModel.GPT_4_TURBO_PREVIEW.getValue()) + .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) + .withName("getCurrentWeather") + .withDescription("Get the weather in location") + .withResponseConverter((response) -> "" + response.temp() + response.unit()) + .build())) + .build(); + + ChatResponse response = chatModel.call(new Prompt(messages, promptOptions)); + + logger.info("Response: {}", response); + + assertThat(response.getResult().getOutput().getContent()).containsAnyOf("30.0", "30"); + assertThat(response.getResult().getOutput().getContent()).containsAnyOf("10.0", "10"); + assertThat(response.getResult().getOutput().getContent()).containsAnyOf("15.0", "15"); + } + + @Test + void streamFunctionCallTest() { + + UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); + + List messages = new ArrayList<>(List.of(userMessage)); + + var promptOptions = OpenAiChatOptions.builder() + // .withModel(OpenAiApi.ChatModel.GPT_4_TURBO_PREVIEW.getValue()) + .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) + .withName("getCurrentWeather") + .withDescription("Get the weather in location") + .withResponseConverter((response) -> "" + response.temp() + response.unit()) + .build())) + .build(); + + Flux response = streamingChatModel.stream(new Prompt(messages, promptOptions)); + + String content = response.collectList() + .block() + .stream() + .map(ChatResponse::getResults) + .flatMap(List::stream) + .map(Generation::getOutput) + .map(AssistantMessage::getContent) + .collect(Collectors.joining()); + logger.info("Response: {}", content); + + assertThat(content).containsAnyOf("30.0", "30"); + assertThat(content).containsAnyOf("10.0", "10"); + assertThat(content).containsAnyOf("15.0", "15"); + } + + @ParameterizedTest(name = "{0} : {displayName} ") + @ValueSource(strings = { "gpt-4-vision-preview", "gpt-4o" }) + void multiModalityEmbeddedImage(String modelName) throws IOException { + + var imageData = new ClassPathResource("/test.png"); + + var userMessage = new UserMessage("Explain what do you see on this picture?", + List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); + + var response = chatModel + .call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(modelName).build())); + + logger.info(response.getResult().getOutput().getContent()); + assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple"); + assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket"); + } + + @ParameterizedTest(name = "{0} : {displayName} ") + @ValueSource(strings = { "gpt-4-vision-preview", "gpt-4o" }) + void multiModalityImageUrl(String modelName) throws IOException { + + var userMessage = new UserMessage("Explain what do you see on this picture?", List + .of(new Media(MimeTypeUtils.IMAGE_PNG, + new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png")))); + + ChatResponse response = chatModel + .call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(modelName).build())); + + logger.info(response.getResult().getOutput().getContent()); + assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple"); + assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket"); + } + + @Test + void streamingMultiModalityImageUrl() throws IOException { + + var userMessage = new UserMessage("Explain what do you see on this picture?", List + .of(new Media(MimeTypeUtils.IMAGE_PNG, + new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png")))); + + Flux response = streamingChatModel.stream(new Prompt(List.of(userMessage), + OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_VISION_PREVIEW.getValue()).build())); + + String content = response.collectList() + .block() + .stream() + .map(ChatResponse::getResults) + .flatMap(List::stream) + .map(Generation::getOutput) + .map(AssistantMessage::getContent) + .collect(Collectors.joining()); + logger.info("Response: {}", content); + assertThat(content).contains("bananas", "apple"); + assertThat(content).containsAnyOf("bowl", "basket"); + } + +} \ No newline at end of file diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientTypeReferenceBeanOutputConverterIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelTypeReferenceBeanOutputConverterIT.java similarity index 93% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientTypeReferenceBeanOutputConverterIT.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelTypeReferenceBeanOutputConverterIT.java index 4626af1fa..a35d31d61 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientTypeReferenceBeanOutputConverterIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelTypeReferenceBeanOutputConverterIT.java @@ -39,10 +39,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = OpenAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") -class OpenAiChatClientTypeReferenceBeanOutputConverterIT extends AbstractIT { +class OpenAiChatModelTypeReferenceBeanOutputConverterIT extends AbstractIT { private static final Logger logger = LoggerFactory - .getLogger(OpenAiChatClientTypeReferenceBeanOutputConverterIT.class); + .getLogger(OpenAiChatModelTypeReferenceBeanOutputConverterIT.class); record ActorsFilmsRecord(String actor, List movies) { } @@ -61,7 +61,7 @@ class OpenAiChatClientTypeReferenceBeanOutputConverterIT extends AbstractIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = chatClient.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); List actorsFilms = outputConverter.convert(generation.getOutput().getContent()); logger.info("" + actorsFilms); @@ -87,7 +87,7 @@ class OpenAiChatClientTypeReferenceBeanOutputConverterIT extends AbstractIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = streamingChatClient.stream(prompt) + String generationTextFromStream = streamingChatModel.stream(prompt) .collectList() .block() .stream() diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientWithChatResponseMetadataTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelWithChatResponseMetadataTests.java similarity index 94% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientWithChatResponseMetadataTests.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelWithChatResponseMetadataTests.java index b1ef5e43b..7e4ee28f1 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientWithChatResponseMetadataTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelWithChatResponseMetadataTests.java @@ -27,7 +27,7 @@ import org.springframework.ai.chat.metadata.PromptMetadata; import org.springframework.ai.chat.metadata.RateLimit; import org.springframework.ai.chat.metadata.Usage; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.metadata.support.OpenAiApiResponseHeaders; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.beans.factory.annotation.Autowired; @@ -51,13 +51,13 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat * @author Christian Tzolov * @since 0.7.0 */ -@RestClientTest(OpenAiChatClientWithChatResponseMetadataTests.Config.class) -public class OpenAiChatClientWithChatResponseMetadataTests { +@RestClientTest(OpenAiChatModelWithChatResponseMetadataTests.Config.class) +public class OpenAiChatModelWithChatResponseMetadataTests { private static String TEST_API_KEY = "sk-1234567890"; @Autowired - private OpenAiChatClient openAiChatClient; + private OpenAiChatModel openAiChatClient; @Autowired private MockRestServiceServer server; @@ -171,8 +171,8 @@ public class OpenAiChatClientWithChatResponseMetadataTests { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiRetryTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiRetryTests.java index dcf0f303f..6bcd64408 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiRetryTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiRetryTests.java @@ -29,13 +29,13 @@ import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.document.MetadataMode; import org.springframework.ai.image.ImageMessage; import org.springframework.ai.image.ImagePrompt; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; +import org.springframework.ai.openai.OpenAiAudioTranscriptionModel; import org.springframework.ai.openai.OpenAiAudioTranscriptionOptions; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiChatOptions; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.OpenAiEmbeddingOptions; -import org.springframework.ai.openai.OpenAiImageClient; +import org.springframework.ai.openai.OpenAiImageModel; import org.springframework.ai.openai.OpenAiImageOptions; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.openai.api.OpenAiApi.ChatCompletion; @@ -107,13 +107,13 @@ public class OpenAiRetryTests { private @Mock OpenAiImageApi openAiImageApi; - private OpenAiChatClient chatClient; + private OpenAiChatModel chatModel; - private OpenAiEmbeddingClient embeddingClient; + private OpenAiEmbeddingModel embeddingModel; - private OpenAiAudioTranscriptionClient audioTranscriptionClient; + private OpenAiAudioTranscriptionModel audioTranscriptionModel; - private OpenAiImageClient imageClient; + private OpenAiImageModel imageModel; @BeforeEach public void beforeEach() { @@ -121,16 +121,16 @@ public class OpenAiRetryTests { retryListener = new TestRetryListener(); retryTemplate.registerListener(retryListener); - chatClient = new OpenAiChatClient(openAiApi, OpenAiChatOptions.builder().build(), null, retryTemplate); - embeddingClient = new OpenAiEmbeddingClient(openAiApi, MetadataMode.EMBED, + chatModel = new OpenAiChatModel(openAiApi, OpenAiChatOptions.builder().build(), null, retryTemplate); + embeddingModel = new OpenAiEmbeddingModel(openAiApi, MetadataMode.EMBED, OpenAiEmbeddingOptions.builder().build(), retryTemplate); - audioTranscriptionClient = new OpenAiAudioTranscriptionClient(openAiAudioApi, + audioTranscriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi, OpenAiAudioTranscriptionOptions.builder() .withModel("model") .withResponseFormat(TranscriptResponseFormat.JSON) .build(), retryTemplate); - imageClient = new OpenAiImageClient(openAiImageApi, OpenAiImageOptions.builder().build(), retryTemplate); + imageModel = new OpenAiImageModel(openAiImageApi, OpenAiImageOptions.builder().build(), retryTemplate); } @Test @@ -146,7 +146,7 @@ public class OpenAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedChatCompletion))); - var result = chatClient.call(new Prompt("text")); + var result = chatModel.call(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getContent()).isSameAs("Response"); @@ -158,7 +158,7 @@ public class OpenAiRetryTests { public void openAiChatNonTransientError() { when(openAiApi.chatCompletionEntity(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.call(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.call(new Prompt("text"))); } @Test @@ -174,7 +174,7 @@ public class OpenAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(Flux.just(expectedChatCompletion)); - var result = chatClient.stream(new Prompt("text")); + var result = chatModel.stream(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.collectList().block().get(0).getResult().getOutput().getContent()).isSameAs("Response"); @@ -186,7 +186,7 @@ public class OpenAiRetryTests { public void openAiChatStreamNonTransientError() { when(openAiApi.chatCompletionStream(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.stream(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.stream(new Prompt("text"))); } @Test @@ -199,7 +199,7 @@ public class OpenAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedEmbeddings))); - var result = embeddingClient + var result = embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null)); assertThat(result).isNotNull(); @@ -212,7 +212,7 @@ public class OpenAiRetryTests { public void openAiEmbeddingNonTransientError() { when(openAiApi.embeddings(isA(EmbeddingRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> embeddingClient + assertThrows(RuntimeException.class, () -> embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null))); } @@ -226,7 +226,7 @@ public class OpenAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedResponse))); - AudioTranscriptionResponse result = audioTranscriptionClient + AudioTranscriptionResponse result = audioTranscriptionModel .call(new AudioTranscriptionPrompt(new ClassPathResource("speech/jfk.flac"))); assertThat(result).isNotNull(); @@ -239,7 +239,7 @@ public class OpenAiRetryTests { public void openAiAudioTranscriptionNonTransientError() { when(openAiAudioApi.createTranscription(isA(TranscriptionRequest.class), isA(Class.class))) .thenThrow(new RuntimeException("Transient Error 1")); - assertThrows(RuntimeException.class, () -> audioTranscriptionClient + assertThrows(RuntimeException.class, () -> audioTranscriptionModel .call(new AudioTranscriptionPrompt(new ClassPathResource("speech/jfk.flac")))); } @@ -253,7 +253,7 @@ public class OpenAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedResponse))); - var result = imageClient.call(new ImagePrompt(List.of(new ImageMessage("Image Message")))); + var result = imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message")))); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getUrl()).isEqualTo("url678"); @@ -266,7 +266,7 @@ public class OpenAiRetryTests { when(openAiImageApi.createImage(isA(OpenAiImageRequest.class))) .thenThrow(new RuntimeException("Transient Error 1")); assertThrows(RuntimeException.class, - () -> imageClient.call(new ImagePrompt(List.of(new ImageMessage("Image Message"))))); + () -> imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message"))))); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryLongTermSystemPromptIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryLongTermSystemPromptIT.java index 4516e08ae..e50fc1b13 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryLongTermSystemPromptIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryLongTermSystemPromptIT.java @@ -33,11 +33,11 @@ import org.springframework.ai.chat.memory.VectorStoreChatMemoryChatServiceListen import org.springframework.ai.chat.memory.VectorStoreChatMemoryRetriever; import org.springframework.ai.chat.memory.LastMaxTokenSizeContentTransformer; import org.springframework.ai.chat.memory.SystemPromptChatMemoryAugmentor; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.evaluation.BaseMemoryTest; import org.springframework.ai.evaluation.RelevancyEvaluator; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiChatModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; import org.springframework.ai.tokenizer.TokenCountEstimator; @@ -75,21 +75,21 @@ public class ChatMemoryLongTermSystemPromptIT extends BaseMemoryTest { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } @Bean - public EmbeddingClient embeddingClient(OpenAiApi openAiApi) { - return new OpenAiEmbeddingClient(openAiApi); + public EmbeddingModel embeddingModel(OpenAiApi openAiApi) { + return new OpenAiEmbeddingModel(openAiApi); } @Bean - public VectorStore qdrantVectorStore(EmbeddingClient embeddingClient) { + public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel) { QdrantClient qdrantClient = new QdrantClient(QdrantGrpcClient .newBuilder(qdrantContainer.getHost(), qdrantContainer.getMappedPort(QDRANT_GRPC_PORT), false) .build()); - return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingClient); + return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingModel); } @Bean @@ -98,10 +98,10 @@ public class ChatMemoryLongTermSystemPromptIT extends BaseMemoryTest { } @Bean - public ChatService memoryChatService(OpenAiChatClient chatClient, VectorStore vectorStore, + public ChatService memoryChatService(OpenAiChatModel chatModel, VectorStore vectorStore, TokenCountEstimator tokenCountEstimator) { - return PromptTransformingChatService.builder(chatClient) + return PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new VectorStoreChatMemoryRetriever(vectorStore, 10))) .withContentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new SystemPromptChatMemoryAugmentor())) @@ -110,10 +110,10 @@ public class ChatMemoryLongTermSystemPromptIT extends BaseMemoryTest { } @Bean - public StreamingChatService memoryStreamingChatService(OpenAiChatClient streamingChatClient, + public StreamingChatService memoryStreamingChatService(OpenAiChatModel streamingChatModel, VectorStore vectorStore, TokenCountEstimator tokenCountEstimator) { - return StreamingPromptTransformingChatService.builder(streamingChatClient) + return StreamingPromptTransformingChatService.builder(streamingChatModel) .withRetrievers(List.of(new VectorStoreChatMemoryRetriever(vectorStore, 10))) .withDocumentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new SystemPromptChatMemoryAugmentor())) @@ -122,8 +122,8 @@ public class ChatMemoryLongTermSystemPromptIT extends BaseMemoryTest { } @Bean - public RelevancyEvaluator relevancyEvaluator(OpenAiChatClient chatClient) { - return new RelevancyEvaluator(chatClient); + public RelevancyEvaluator relevancyEvaluator(OpenAiChatModel chatModel) { + return new RelevancyEvaluator(chatModel); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermMessageListIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermMessageListIT.java index d26f6c563..60489546e 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermMessageListIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermMessageListIT.java @@ -31,7 +31,7 @@ import org.springframework.ai.chat.memory.LastMaxTokenSizeContentTransformer; import org.springframework.ai.chat.memory.MessageChatMemoryAugmentor; import org.springframework.ai.evaluation.BaseMemoryTest; import org.springframework.ai.evaluation.RelevancyEvaluator; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; import org.springframework.ai.tokenizer.TokenCountEstimator; @@ -59,8 +59,8 @@ public class ChatMemoryShortTermMessageListIT extends BaseMemoryTest { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } @Bean @@ -74,10 +74,10 @@ public class ChatMemoryShortTermMessageListIT extends BaseMemoryTest { } @Bean - public ChatService memoryChatService(OpenAiChatClient chatClient, ChatMemory chatHistory, + public ChatService memoryChatService(OpenAiChatModel chatModel, ChatMemory chatHistory, TokenCountEstimator tokenCountEstimator) { - return PromptTransformingChatService.builder(chatClient) + return PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new ChatMemoryRetriever(chatHistory))) .withContentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new MessageChatMemoryAugmentor())) @@ -86,10 +86,10 @@ public class ChatMemoryShortTermMessageListIT extends BaseMemoryTest { } @Bean - public StreamingChatService memoryStreamingChatService(OpenAiChatClient streamingChatClient, + public StreamingChatService memoryStreamingChatService(OpenAiChatModel streamingChatModel, ChatMemory chatHistory, TokenCountEstimator tokenCountEstimator) { - return StreamingPromptTransformingChatService.builder(streamingChatClient) + return StreamingPromptTransformingChatService.builder(streamingChatModel) .withRetrievers(List.of(new ChatMemoryRetriever(chatHistory))) .withDocumentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new MessageChatMemoryAugmentor())) @@ -98,8 +98,8 @@ public class ChatMemoryShortTermMessageListIT extends BaseMemoryTest { } @Bean - public RelevancyEvaluator relevancyEvaluator(OpenAiChatClient chatClient) { - return new RelevancyEvaluator(chatClient); + public RelevancyEvaluator relevancyEvaluator(OpenAiChatModel chatModel) { + return new RelevancyEvaluator(chatModel); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermSystemPromptIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermSystemPromptIT.java index 7ca4c795b..cc07d6da4 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermSystemPromptIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/ChatMemoryShortTermSystemPromptIT.java @@ -32,7 +32,7 @@ import org.springframework.ai.chat.memory.LastMaxTokenSizeContentTransformer; import org.springframework.ai.chat.memory.SystemPromptChatMemoryAugmentor; import org.springframework.ai.evaluation.BaseMemoryTest; import org.springframework.ai.evaluation.RelevancyEvaluator; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; import org.springframework.ai.tokenizer.TokenCountEstimator; @@ -60,8 +60,8 @@ public class ChatMemoryShortTermSystemPromptIT extends BaseMemoryTest { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } @Bean @@ -75,10 +75,10 @@ public class ChatMemoryShortTermSystemPromptIT extends BaseMemoryTest { } @Bean - public ChatService memoryChatService(OpenAiChatClient chatClient, ChatMemory chatHistory, + public ChatService memoryChatService(OpenAiChatModel chatModel, ChatMemory chatHistory, TokenCountEstimator tokenCountEstimator) { - return PromptTransformingChatService.builder(chatClient) + return PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new ChatMemoryRetriever(chatHistory))) .withContentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new SystemPromptChatMemoryAugmentor())) @@ -87,10 +87,10 @@ public class ChatMemoryShortTermSystemPromptIT extends BaseMemoryTest { } @Bean - public StreamingChatService memoryStreamingChatService(OpenAiChatClient streamingChatClient, + public StreamingChatService memoryStreamingChatService(OpenAiChatModel streamingChatModel, ChatMemory chatHistory, TokenCountEstimator tokenCountEstimator) { - return StreamingPromptTransformingChatService.builder(streamingChatClient) + return StreamingPromptTransformingChatService.builder(streamingChatModel) .withRetrievers(List.of(new ChatMemoryRetriever(chatHistory))) .withDocumentPostProcessors(List.of(new LastMaxTokenSizeContentTransformer(tokenCountEstimator, 1000))) .withAugmentors(List.of(new SystemPromptChatMemoryAugmentor())) @@ -99,8 +99,8 @@ public class ChatMemoryShortTermSystemPromptIT extends BaseMemoryTest { } @Bean - public RelevancyEvaluator relevancyEvaluator(OpenAiChatClient chatClient) { - return new RelevancyEvaluator(chatClient); + public RelevancyEvaluator relevancyEvaluator(OpenAiChatModel chatModel) { + return new RelevancyEvaluator(chatModel); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/LongShortTermChatMemoryWithRagIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/LongShortTermChatMemoryWithRagIT.java index c2739a018..1162c9fce 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/LongShortTermChatMemoryWithRagIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/LongShortTermChatMemoryWithRagIT.java @@ -30,6 +30,7 @@ import org.springframework.ai.chat.prompt.transformer.ChatServiceContext; import org.springframework.ai.chat.service.ChatService; import org.springframework.ai.chat.service.PromptTransformingChatService; import org.springframework.ai.openai.OpenAiChatOptions; +import org.springframework.ai.openai.OpenAiChatModel; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; @@ -49,12 +50,10 @@ import org.springframework.ai.chat.prompt.transformer.TransformerContentType; import org.springframework.ai.chat.prompt.transformer.VectorStoreRetriever; import org.springframework.ai.document.Document; import org.springframework.ai.document.DocumentTransformer; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.evaluation.EvaluationRequest; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.evaluation.EvaluationResponse; import org.springframework.ai.evaluation.RelevancyEvaluator; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.reader.JsonReader; import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator; @@ -164,21 +163,21 @@ public class LongShortTermChatMemoryWithRagIT { } @Bean - public OpenAiChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public OpenAiChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } @Bean - public OpenAiEmbeddingClient embeddingClient(OpenAiApi openAiApi) { - return new OpenAiEmbeddingClient(openAiApi); + public OpenAiEmbeddingModel embeddingModel(OpenAiApi openAiApi) { + return new OpenAiEmbeddingModel(openAiApi); } @Bean - public VectorStore qdrantVectorStore(EmbeddingClient embeddingClient) { + public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel) { QdrantClient qdrantClient = new QdrantClient(QdrantGrpcClient .newBuilder(qdrantContainer.getHost(), qdrantContainer.getMappedPort(QDRANT_GRPC_PORT), false) .build()); - return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingClient); + return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingModel); } @Bean @@ -187,10 +186,10 @@ public class LongShortTermChatMemoryWithRagIT { } @Bean - public ChatService memoryChatService(OpenAiChatClient chatClient, VectorStore vectorStore, + public ChatService memoryChatService(OpenAiChatModel chatModel, VectorStore vectorStore, TokenCountEstimator tokenCountEstimator, ChatMemory chatHistory) { - return PromptTransformingChatService.builder(chatClient) + return PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new VectorStoreRetriever(vectorStore, SearchRequest.defaults()), ChatMemoryRetriever.builder() .withChatHistory(chatHistory) @@ -224,12 +223,12 @@ public class LongShortTermChatMemoryWithRagIT { } // @Bean - // public StreamingChatService memoryStreamingChatAgent(OpenAiChatClient - // streamingChatClient, + // public StreamingChatService memoryStreamingChatAgent(OpenAiChatModel + // streamingChatModel, // VectorStore vectorStore, TokenCountEstimator tokenCountEstimator, ChatHistory // chatHistory) { - // return StreamingPromptTransformingChatService.builder(streamingChatClient) + // return StreamingPromptTransformingChatService.builder(streamingChatModel) // .withRetrievers(List.of(new ChatHistoryRetriever(chatHistory), new // DocumentChatHistoryRetriever(vectorStore, 10))) // .withDocumentPostProcessors(List.of(new @@ -241,13 +240,13 @@ public class LongShortTermChatMemoryWithRagIT { // } @Bean - public RelevancyEvaluator relevancyEvaluator(OpenAiChatClient chatClient) { + public RelevancyEvaluator relevancyEvaluator(OpenAiChatModel chatModel) { // Use GPT 4 as a better model for determining relevancy. gpt 3.5 makes basic // mistakes OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() .withModel(GPT_4_TURBO_PREVIEW.getValue()) .build(); - return new RelevancyEvaluator(chatClient, openAiChatOptions); + return new RelevancyEvaluator(chatModel, openAiChatOptions); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/OpenAiPromptTransformingChatServiceIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/OpenAiPromptTransformingChatServiceIT.java index a5f1ed415..4ed06cbd2 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/OpenAiPromptTransformingChatServiceIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/service/OpenAiPromptTransformingChatServiceIT.java @@ -23,6 +23,7 @@ import io.qdrant.client.QdrantClient; import io.qdrant.client.QdrantGrpcClient; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.service.ChatService; import org.springframework.ai.chat.prompt.transformer.TransformerContentType; import org.springframework.ai.document.Document; @@ -31,19 +32,17 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; -import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.service.PromptTransformingChatService; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.transformer.ChatServiceContext; import org.springframework.ai.chat.prompt.transformer.QuestionContextAugmentor; import org.springframework.ai.chat.prompt.transformer.VectorStoreRetriever; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.evaluation.EvaluationRequest; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.evaluation.EvaluationResponse; import org.springframework.ai.evaluation.RelevancyEvaluator; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiChatModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.reader.JsonReader; import org.springframework.ai.transformer.splitter.TokenTextSplitter; @@ -72,7 +71,7 @@ public class OpenAiPromptTransformingChatServiceIT { @Container static QdrantContainer qdrantContainer = new QdrantContainer("qdrant/qdrant:v1.9.2"); - private final ChatClient chatClient; + private final ChatModel chatModel; private final VectorStore vectorStore; @@ -82,9 +81,9 @@ public class OpenAiPromptTransformingChatServiceIT { private ChatService chatService; @Autowired - public OpenAiPromptTransformingChatServiceIT(ChatClient chatClient, ChatService chatService, + public OpenAiPromptTransformingChatServiceIT(ChatModel chatModel, ChatService chatService, VectorStore vectorStore) { - this.chatClient = chatClient; + this.chatModel = chatModel; this.chatService = chatService; this.vectorStore = vectorStore; } @@ -103,7 +102,7 @@ public class OpenAiPromptTransformingChatServiceIT { OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() .withModel(GPT_4_TURBO_PREVIEW.getValue()) .build(); - var relevancyEvaluator = new RelevancyEvaluator(this.chatClient, openAiChatOptions); + var relevancyEvaluator = new RelevancyEvaluator(this.chatModel, openAiChatOptions); EvaluationResponse evaluationResponse = relevancyEvaluator.evaluate(chatServiceResponse.toEvaluationRequest()); assertTrue(evaluationResponse.isPass(), "Response is not relevant to the question"); @@ -146,26 +145,26 @@ public class OpenAiPromptTransformingChatServiceIT { } @Bean - public ChatClient openAiClient(OpenAiApi openAiApi) { - return new OpenAiChatClient(openAiApi); + public ChatModel openAiClient(OpenAiApi openAiApi) { + return new OpenAiChatModel(openAiApi); } @Bean - public EmbeddingClient embeddingClient(OpenAiApi openAiApi) { - return new OpenAiEmbeddingClient(openAiApi); + public EmbeddingModel embeddingModel(OpenAiApi openAiApi) { + return new OpenAiEmbeddingModel(openAiApi); } @Bean - public VectorStore qdrantVectorStore(EmbeddingClient embeddingClient) { + public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel) { QdrantClient qdrantClient = new QdrantClient(QdrantGrpcClient .newBuilder(qdrantContainer.getHost(), qdrantContainer.getMappedPort(QDRANT_GRPC_PORT), false) .build()); - return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingClient); + return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingModel); } @Bean - public ChatService chatService(ChatClient chatClient, VectorStore vectorStore) { - return PromptTransformingChatService.builder(chatClient) + public ChatService chatService(ChatModel chatModel, VectorStore vectorStore) { + return PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new VectorStoreRetriever(vectorStore, SearchRequest.defaults()))) .withAugmentors(List.of(new QuestionContextAugmentor())) .build(); diff --git a/models/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 index 683f54b48..326e9ebce 100644 --- a/models/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 @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.embedding.EmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.OpenAiEmbeddingOptions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -32,13 +32,13 @@ import static org.assertj.core.api.Assertions.assertThat; class EmbeddingIT { @Autowired - private OpenAiEmbeddingClient embeddingClient; + private OpenAiEmbeddingModel embeddingModel; @Test void defaultEmbedding() { - assertThat(embeddingClient).isNotNull(); + assertThat(embeddingModel).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0)).isNotNull(); assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(1536); @@ -46,13 +46,13 @@ class EmbeddingIT { assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 2); assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 2); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); } @Test void embedding3Large() { - EmbeddingResponse embeddingResponse = embeddingClient.call(new EmbeddingRequest(List.of("Hello World"), + EmbeddingResponse embeddingResponse = embeddingModel.call(new EmbeddingRequest(List.of("Hello World"), OpenAiEmbeddingOptions.builder().withModel("text-embedding-3-large").build())); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0)).isNotNull(); @@ -61,13 +61,13 @@ class EmbeddingIT { assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 2); assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 2); - // assertThat(embeddingClient.dimensions()).isEqualTo(3072); + // assertThat(embeddingModel.dimensions()).isEqualTo(3072); } @Test void textEmbeddingAda002() { - EmbeddingResponse embeddingResponse = embeddingClient.call(new EmbeddingRequest(List.of("Hello World"), + EmbeddingResponse embeddingResponse = embeddingModel.call(new EmbeddingRequest(List.of("Hello World"), OpenAiEmbeddingOptions.builder().withModel("text-embedding-3-small").build())); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0)).isNotNull(); @@ -77,7 +77,7 @@ class EmbeddingIT { assertThat(embeddingResponse.getMetadata()).containsEntry("total-tokens", 2); assertThat(embeddingResponse.getMetadata()).containsEntry("prompt-tokens", 2); - // assertThat(embeddingClient.dimensions()).isEqualTo(3072); + // assertThat(embeddingModel.dimensions()).isEqualTo(3072); } } diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelIT.java similarity index 95% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientIT.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelIT.java index 057e20dae..415760b0a 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelIT.java @@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = OpenAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".+") -public class OpenAiImageClientIT extends AbstractIT { +public class OpenAiImageModelIT extends AbstractIT { @Test void imageAsUrlTest() { @@ -44,7 +44,7 @@ public class OpenAiImageClientIT extends AbstractIT { ImagePrompt imagePrompt = new ImagePrompt(instructions, options); - ImageResponse imageResponse = imageClient.call(imagePrompt); + ImageResponse imageResponse = imageModel.call(imagePrompt); assertThat(imageResponse.getResults()).hasSize(1); diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientWithImageResponseMetadataTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelWithImageResponseMetadataTests.java similarity index 91% rename from models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientWithImageResponseMetadataTests.java rename to models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelWithImageResponseMetadataTests.java index 13d87c174..0133fd973 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageClientWithImageResponseMetadataTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/image/OpenAiImageModelWithImageResponseMetadataTests.java @@ -21,7 +21,7 @@ import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; import org.springframework.ai.image.ImageResponseMetadata; -import org.springframework.ai.openai.OpenAiImageClient; +import org.springframework.ai.openai.OpenAiImageModel; import org.springframework.ai.openai.api.OpenAiImageApi; import org.springframework.ai.openai.metadata.support.OpenAiApiResponseHeaders; import org.springframework.beans.factory.annotation.Autowired; @@ -47,13 +47,13 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat * @author Christian Tzolov * @since 0.7.0 */ -@RestClientTest(OpenAiImageClientWithImageResponseMetadataTests.Config.class) -public class OpenAiImageClientWithImageResponseMetadataTests { +@RestClientTest(OpenAiImageModelWithImageResponseMetadataTests.Config.class) +public class OpenAiImageModelWithImageResponseMetadataTests { private static String TEST_API_KEY = "sk-1234567890"; @Autowired - private OpenAiImageClient openAiImageClient; + private OpenAiImageModel openAiImageModel; @Autowired private MockRestServiceServer server; @@ -70,7 +70,7 @@ public class OpenAiImageClientWithImageResponseMetadataTests { ImagePrompt prompt = new ImagePrompt("Create an image of a mini golden doodle dog."); - ImageResponse response = this.openAiImageClient.call(prompt); + ImageResponse response = this.openAiImageModel.call(prompt); assertThat(response).isNotNull(); List imageGenerations = response.getResults(); @@ -134,8 +134,8 @@ public class OpenAiImageClientWithImageResponseMetadataTests { } @Bean - public OpenAiImageClient openAiImageClient(OpenAiImageApi openAiImageApi) { - return new OpenAiImageClient(openAiImageApi); + public OpenAiImageModel openAiImageModel(OpenAiImageApi openAiImageApi) { + return new OpenAiImageModel(openAiImageApi); } } diff --git a/models/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 index 89155e9e8..abae0a879 100644 --- a/models/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 @@ -21,16 +21,16 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.PromptTemplate; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.SystemMessage; -import org.springframework.ai.image.ImageClient; -import org.springframework.ai.openai.OpenAiAudioSpeechClient; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; +import org.springframework.ai.image.ImageModel; +import org.springframework.ai.openai.OpenAiAudioSpeechModel; +import org.springframework.ai.openai.OpenAiAudioTranscriptionModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; @@ -43,19 +43,19 @@ public abstract class AbstractIT { private static final Logger logger = LoggerFactory.getLogger(AbstractIT.class); @Autowired - protected ChatClient chatClient; + protected ChatModel chatModel; @Autowired - protected StreamingChatClient streamingChatClient; + protected StreamingChatModel streamingChatModel; @Autowired - protected OpenAiAudioTranscriptionClient transcriptionClient; + protected OpenAiAudioTranscriptionModel transcriptionModel; @Autowired - protected OpenAiAudioSpeechClient speechClient; + protected OpenAiAudioSpeechModel speechModel; @Autowired - protected ImageClient imageClient; + protected ImageModel imageModel; @Value("classpath:/prompts/eval/qa-evaluator-accurate-answer.st") protected Resource qaEvaluatorAccurateAnswerResource; @@ -85,12 +85,12 @@ public abstract class AbstractIT { } Message userMessage = userPromptTemplate.createMessage(); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - String yesOrNo = chatClient.call(prompt).getResult().getOutput().getContent(); + String yesOrNo = chatModel.call(prompt).getResult().getOutput().getContent(); logger.info("Is Answer related to question: " + yesOrNo); if (yesOrNo.equalsIgnoreCase("no")) { SystemMessage notRelatedSystemMessage = new SystemMessage(qaEvaluatorNotRelatedResource); prompt = new Prompt(List.of(userMessage, notRelatedSystemMessage)); - String reasonForFailure = chatClient.call(prompt).getResult().getOutput().getContent(); + String reasonForFailure = chatModel.call(prompt).getResult().getOutput().getContent(); fail(reasonForFailure); } else { diff --git a/models/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 index d13c06612..aca29f27b 100644 --- a/models/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 @@ -24,8 +24,8 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.document.DefaultContentFormatter; import org.springframework.ai.document.Document; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.ai.transformer.ContentFormatTransformer; import org.springframework.ai.transformer.KeywordMetadataEnricher; import org.springframework.ai.transformer.SummaryMetadataEnricher; @@ -163,18 +163,18 @@ public class MetadataTransformerIT { } @Bean - public OpenAiChatClient openAiChatClient(OpenAiApi openAiApi) { - OpenAiChatClient openAiChatClient = new OpenAiChatClient(openAiApi); - return openAiChatClient; + public OpenAiChatModel openAiChatModel(OpenAiApi openAiApi) { + OpenAiChatModel openAiChatModel = new OpenAiChatModel(openAiApi); + return openAiChatModel; } @Bean - public KeywordMetadataEnricher keywordMetadata(OpenAiChatClient aiClient) { + public KeywordMetadataEnricher keywordMetadata(OpenAiChatModel aiClient) { return new KeywordMetadataEnricher(aiClient, 5); } @Bean - public SummaryMetadataEnricher summaryMetadata(OpenAiChatClient aiClient) { + public SummaryMetadataEnricher summaryMetadata(OpenAiChatModel aiClient) { return new SummaryMetadataEnricher(aiClient, List.of(SummaryType.PREVIOUS, SummaryType.CURRENT, SummaryType.NEXT)); } diff --git a/models/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 index 169d6e53d..32ba4572c 100644 --- a/models/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 @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.CleanupMode; import org.junit.jupiter.api.io.TempDir; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.reader.JsonReader; import org.springframework.ai.vectorstore.SimpleVectorStore; import org.springframework.ai.reader.JsonMetadataGenerator; @@ -42,21 +42,21 @@ public class SimplePersistentVectorStoreIT { private Resource bikesJsonResource; @Autowired - private EmbeddingClient embeddingClient; + private EmbeddingModel embeddingModel; @Test void persist(@TempDir(cleanup = CleanupMode.ON_SUCCESS) Path workingDir) { JsonReader jsonReader = new JsonReader(bikesJsonResource, new ProductMetadataGenerator(), "price", "name", "shortDescription", "description", "tags"); List documents = jsonReader.get(); - SimpleVectorStore vectorStore = new SimpleVectorStore(this.embeddingClient); + SimpleVectorStore vectorStore = new SimpleVectorStore(this.embeddingModel); vectorStore.add(documents); File tempFile = new File(workingDir.toFile(), "temp.txt"); vectorStore.save(tempFile); assertThat(tempFile).isNotEmpty(); assertThat(tempFile).content().contains("Velo 99 XR1 AXS"); - SimpleVectorStore vectorStore2 = new SimpleVectorStore(this.embeddingClient); + SimpleVectorStore vectorStore2 = new SimpleVectorStore(this.embeddingModel); vectorStore2.load(tempFile); List similaritySearch = vectorStore2.similaritySearch("Velo 99 XR1 AXS"); diff --git a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClient.java b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java similarity index 91% rename from models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClient.java rename to models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java index 677a7fba4..2783f6df3 100644 --- a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClient.java +++ b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java @@ -24,7 +24,7 @@ import java.util.Map; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -39,12 +39,12 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; /** - * PostgresML EmbeddingClient + * PostgresML EmbeddingModel * * @author Toshiaki Maki * @author Christian Tzolov */ -public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implements InitializingBean { +public class PostgresMlEmbeddingModel extends AbstractEmbeddingModel implements InitializingBean { public static final String DEFAULT_TRANSFORMER_MODEL = "distilbert-base-uncased"; @@ -83,16 +83,16 @@ public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implement * a constructor * @param jdbcTemplate JdbcTemplate */ - public PostgresMlEmbeddingClient(JdbcTemplate jdbcTemplate) { + public PostgresMlEmbeddingModel(JdbcTemplate jdbcTemplate) { this(jdbcTemplate, PostgresMlEmbeddingOptions.builder().build()); } /** - * a PostgresMlEmbeddingClient constructor + * a PostgresMlEmbeddingModel constructor * @param jdbcTemplate JdbcTemplate to use to interact with the database. * @param options PostgresMlEmbeddingOptions to configure the client. */ - public PostgresMlEmbeddingClient(JdbcTemplate jdbcTemplate, PostgresMlEmbeddingOptions options) { + public PostgresMlEmbeddingModel(JdbcTemplate jdbcTemplate, PostgresMlEmbeddingOptions options) { Assert.notNull(jdbcTemplate, "jdbc template must not be null."); Assert.notNull(options, "options must not be null."); Assert.notNull(options.getTransformer(), "transformer must not be null."); @@ -110,7 +110,7 @@ public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implement * @param transformer huggingface sentence-transformer name */ @Deprecated(since = "0.8.0", forRemoval = true) - public PostgresMlEmbeddingClient(JdbcTemplate jdbcTemplate, String transformer) { + public PostgresMlEmbeddingModel(JdbcTemplate jdbcTemplate, String transformer) { this(jdbcTemplate, transformer, VectorType.PG_ARRAY); } @@ -122,7 +122,7 @@ public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implement * @param vectorType vector type in PostgreSQL */ @Deprecated(since = "0.8.0", forRemoval = true) - public PostgresMlEmbeddingClient(JdbcTemplate jdbcTemplate, String transformer, VectorType vectorType) { + public PostgresMlEmbeddingModel(JdbcTemplate jdbcTemplate, String transformer, VectorType vectorType) { this(jdbcTemplate, transformer, vectorType, Map.of(), MetadataMode.EMBED); } @@ -135,7 +135,7 @@ public class PostgresMlEmbeddingClient extends AbstractEmbeddingClient implement * @param kwargs optional arguments */ @Deprecated(since = "0.8.0", forRemoval = true) - public PostgresMlEmbeddingClient(JdbcTemplate jdbcTemplate, String transformer, VectorType vectorType, + public PostgresMlEmbeddingModel(JdbcTemplate jdbcTemplate, String transformer, VectorType vectorType, Map kwargs, MetadataMode metadataMode) { Assert.notNull(jdbcTemplate, "jdbc template must not be null."); Assert.notNull(transformer, "transformer must not be null."); diff --git a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java index b80e1f639..220d5d283 100644 --- a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java +++ b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java @@ -24,7 +24,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.ai.document.MetadataMode; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.model.ModelOptionsUtils; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient.VectorType; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel.VectorType; /** * @author Christian Tzolov @@ -36,7 +36,7 @@ public class PostgresMlEmbeddingOptions implements EmbeddingOptions { /** * The Huggingface transformer model to use for the embedding. */ - private @JsonProperty("transformer") String transformer = PostgresMlEmbeddingClient.DEFAULT_TRANSFORMER_MODEL; + private @JsonProperty("transformer") String transformer = PostgresMlEmbeddingModel.DEFAULT_TRANSFORMER_MODEL; /** * PostgresML vector type to use for the embedding. diff --git a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClientIT.java b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java similarity index 79% rename from models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClientIT.java rename to models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java index 7a4539e0e..55c05d06d 100644 --- a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingClientIT.java +++ b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java @@ -30,7 +30,7 @@ import org.junit.jupiter.params.provider.ValueSource; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient.VectorType; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel.VectorType; import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; @@ -56,7 +56,7 @@ import static org.assertj.core.api.Assertions.assertThat; @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @Testcontainers @Disabled("Disabled from automatic execution, as it requires an excessive amount of memory (over 9GB)!") -class PostgresMlEmbeddingClientIT { +class PostgresMlEmbeddingModelIT { @Container @ServiceConnection @@ -80,51 +80,51 @@ class PostgresMlEmbeddingClientIT { @Test void embed() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate); - embeddingClient.afterPropertiesSet(); + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate); + embeddingModel.afterPropertiesSet(); - List embed = embeddingClient.embed("Hello World!"); + List embed = embeddingModel.embed("Hello World!"); assertThat(embed).hasSize(768); } @Test void embedWithPgVector() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder() .withTransformer("distilbert-base-uncased") - .withVectorType(PostgresMlEmbeddingClient.VectorType.PG_VECTOR) + .withVectorType(PostgresMlEmbeddingModel.VectorType.PG_VECTOR) .build()); - embeddingClient.afterPropertiesSet(); + embeddingModel.afterPropertiesSet(); - List embed = embeddingClient.embed(new Document("Hello World!")); + List embed = embeddingModel.embed(new Document("Hello World!")); assertThat(embed).hasSize(768); } @Test void embedWithDifferentModel() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder().withTransformer("intfloat/e5-small").build()); - embeddingClient.afterPropertiesSet(); + embeddingModel.afterPropertiesSet(); - List embed = embeddingClient.embed(new Document("Hello World!")); + List embed = embeddingModel.embed(new Document("Hello World!")); assertThat(embed).hasSize(384); } @Test void embedWithKwargs() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder() .withTransformer("distilbert-base-uncased") - .withVectorType(PostgresMlEmbeddingClient.VectorType.PG_ARRAY) + .withVectorType(PostgresMlEmbeddingModel.VectorType.PG_ARRAY) .withKwargs(Map.of("device", "cpu")) .withMetadataMode(MetadataMode.EMBED) .build()); - embeddingClient.afterPropertiesSet(); + embeddingModel.afterPropertiesSet(); - List embed = embeddingClient.embed(new Document("Hello World!")); + List embed = embeddingModel.embed(new Document("Hello World!")); assertThat(embed).hasSize(768); } @@ -132,14 +132,14 @@ class PostgresMlEmbeddingClientIT { @ParameterizedTest @ValueSource(strings = { "PG_ARRAY", "PG_VECTOR" }) void embedForResponse(String vectorType) { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder() .withTransformer("distilbert-base-uncased") .withVectorType(VectorType.valueOf(vectorType)) .build()); - embeddingClient.afterPropertiesSet(); + embeddingModel.afterPropertiesSet(); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World!", "Spring AI!", "LLM!")); assertThat(embeddingResponse).isNotNull(); @@ -157,16 +157,16 @@ class PostgresMlEmbeddingClientIT { @Test void embedCallWithRequestOptionsOverride() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder() .withTransformer("distilbert-base-uncased") .withVectorType(VectorType.PG_VECTOR) .build()); - embeddingClient.afterPropertiesSet(); + embeddingModel.afterPropertiesSet(); var request1 = new EmbeddingRequest(List.of("Hello World!", "Spring AI!", "LLM!"), EmbeddingOptions.EMPTY); - EmbeddingResponse embeddingResponse = embeddingClient.call(request1); + EmbeddingResponse embeddingResponse = embeddingModel.call(request1); assertThat(embeddingResponse).isNotNull(); assertThat(embeddingResponse.getResults()).hasSize(3); @@ -188,7 +188,7 @@ class PostgresMlEmbeddingClientIT { .withKwargs(Map.of("device", "cpu")) .build()); - embeddingResponse = embeddingClient.call(request2); + embeddingResponse = embeddingModel.call(request2); assertThat(embeddingResponse).isNotNull(); assertThat(embeddingResponse.getResults()).hasSize(3); @@ -205,11 +205,11 @@ class PostgresMlEmbeddingClientIT { @Test void dimensions() { - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate); - embeddingClient.afterPropertiesSet(); - Assertions.assertThat(embeddingClient.dimensions()).isEqualTo(768); + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate); + embeddingModel.afterPropertiesSet(); + Assertions.assertThat(embeddingModel.dimensions()).isEqualTo(768); // cached - Assertions.assertThat(embeddingClient.dimensions()).isEqualTo(768); + Assertions.assertThat(embeddingModel.dimensions()).isEqualTo(768); } @SpringBootApplication diff --git a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java index aeceb5c58..07ce531b7 100644 --- a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java +++ b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java @@ -34,8 +34,8 @@ public class PostgresMlEmbeddingOptionsTests { public void defaultOptions() { PostgresMlEmbeddingOptions options = PostgresMlEmbeddingOptions.builder().build(); - assertThat(options.getTransformer()).isEqualTo(PostgresMlEmbeddingClient.DEFAULT_TRANSFORMER_MODEL); - assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_ARRAY); + assertThat(options.getTransformer()).isEqualTo(PostgresMlEmbeddingModel.DEFAULT_TRANSFORMER_MODEL); + assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_ARRAY); assertThat(options.getKwargs()).isEqualTo(Map.of()); assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.EMBED); } @@ -44,13 +44,13 @@ public class PostgresMlEmbeddingOptionsTests { public void newOptions() { PostgresMlEmbeddingOptions options = PostgresMlEmbeddingOptions.builder() .withTransformer("intfloat/e5-small") - .withVectorType(PostgresMlEmbeddingClient.VectorType.PG_VECTOR) + .withVectorType(PostgresMlEmbeddingModel.VectorType.PG_VECTOR) .withMetadataMode(org.springframework.ai.document.MetadataMode.ALL) .withKwargs(Map.of("device", "cpu")) .build(); assertThat(options.getTransformer()).isEqualTo("intfloat/e5-small"); - assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_VECTOR); + assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_VECTOR); assertThat(options.getKwargs()).isEqualTo(Map.of("device", "cpu")); assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.ALL); } @@ -59,37 +59,37 @@ public class PostgresMlEmbeddingOptionsTests { public void mergeOptions() { var jdbcTemplate = Mockito.mock(JdbcTemplate.class); - PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(jdbcTemplate); + PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(jdbcTemplate); - PostgresMlEmbeddingOptions options = embeddingClient.mergeOptions(EmbeddingOptions.EMPTY); + PostgresMlEmbeddingOptions options = embeddingModel.mergeOptions(EmbeddingOptions.EMPTY); // Default options - assertThat(options.getTransformer()).isEqualTo(PostgresMlEmbeddingClient.DEFAULT_TRANSFORMER_MODEL); - assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_ARRAY); + assertThat(options.getTransformer()).isEqualTo(PostgresMlEmbeddingModel.DEFAULT_TRANSFORMER_MODEL); + assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_ARRAY); assertThat(options.getKwargs()).isEqualTo(Map.of()); assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.EMBED); // Partial override - options = embeddingClient.mergeOptions(PostgresMlEmbeddingOptions.builder() + options = embeddingModel.mergeOptions(PostgresMlEmbeddingOptions.builder() .withTransformer("intfloat/e5-small") .withKwargs(Map.of("device", "cpu")) .build()); assertThat(options.getTransformer()).isEqualTo("intfloat/e5-small"); - assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_ARRAY); // Default + assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_ARRAY); // Default assertThat(options.getKwargs()).isEqualTo(Map.of("device", "cpu")); assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.EMBED); // Default // Complete override - options = embeddingClient.mergeOptions(PostgresMlEmbeddingOptions.builder() + options = embeddingModel.mergeOptions(PostgresMlEmbeddingOptions.builder() .withTransformer("intfloat/e5-small") - .withVectorType(PostgresMlEmbeddingClient.VectorType.PG_VECTOR) + .withVectorType(PostgresMlEmbeddingModel.VectorType.PG_VECTOR) .withMetadataMode(org.springframework.ai.document.MetadataMode.ALL) .withKwargs(Map.of("device", "cpu")) .build()); assertThat(options.getTransformer()).isEqualTo("intfloat/e5-small"); - assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_VECTOR); + assertThat(options.getVectorType()).isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_VECTOR); assertThat(options.getKwargs()).isEqualTo(Map.of("device", "cpu")); assertThat(options.getMetadataMode()).isEqualTo(org.springframework.ai.document.MetadataMode.ALL); } diff --git a/models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageClient.java b/models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageModel.java similarity index 90% rename from models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageClient.java rename to models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageModel.java index e632e5235..abb52c9a9 100644 --- a/models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageClient.java +++ b/models/spring-ai-stability-ai/src/main/java/org/springframework/ai/stabilityai/StabilityAiImageModel.java @@ -22,7 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImageOptions; import org.springframework.ai.image.ImagePrompt; @@ -34,10 +34,10 @@ import org.springframework.ai.stabilityai.api.StabilityAiImageOptions; import org.springframework.util.Assert; /** - * StabilityAiImageClient is a class that implements the ImageClient interface. It - * provides a client for calling the StabilityAI image generation API. + * StabilityAiImageModel is a class that implements the ImageModel interface. It provides + * a client for calling the StabilityAI image generation API. */ -public class StabilityAiImageClient implements ImageClient { +public class StabilityAiImageModel implements ImageModel { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -45,11 +45,11 @@ public class StabilityAiImageClient implements ImageClient { private final StabilityAiApi stabilityAiApi; - public StabilityAiImageClient(StabilityAiApi stabilityAiApi) { + public StabilityAiImageModel(StabilityAiApi stabilityAiApi) { this(stabilityAiApi, StabilityAiImageOptions.builder().build()); } - public StabilityAiImageClient(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options) { + public StabilityAiImageModel(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options) { Assert.notNull(stabilityAiApi, "StabilityAiApi must not be null"); Assert.notNull(options, "StabilityAiImageOptions must not be null"); this.stabilityAiApi = stabilityAiApi; @@ -61,20 +61,20 @@ public class StabilityAiImageClient implements ImageClient { } /** - * Calls the StabilityAiImageClient with the given StabilityAiImagePrompt and returns + * Calls the StabilityAiImageModel with the given StabilityAiImagePrompt and returns * the ImageResponse. This overloaded call method lets you pass the full set of Prompt * instructions that StabilityAI supports. * @param imagePrompt the StabilityAiImagePrompt containing the prompt and image model * options - * @return the ImageResponse generated by the StabilityAiImageClient + * @return the ImageResponse generated by the StabilityAiImageModel */ public ImageResponse call(ImagePrompt imagePrompt) { ImageOptions runtimeOptions = imagePrompt.getOptions(); - // Merge the runtime options passed via the prompt with the StabilityAiImageClient + // Merge the runtime options passed via the prompt with the StabilityAiImageModel // options configured via Autoconfiguration. - // Runtime options overwrite StabilityAiImageClient options + // Runtime options overwrite StabilityAiImageModel options StabilityAiImageOptions optionsToUse = ModelOptionsUtils.merge(runtimeOptions, this.options, StabilityAiImageOptions.class); diff --git a/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageClientIT.java b/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageModelIT.java similarity index 91% rename from models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageClientIT.java rename to models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageModelIT.java index afa4b0d55..b2de03a19 100644 --- a/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageClientIT.java +++ b/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageModelIT.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; @@ -36,10 +36,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = StabilityAiImageTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "STABILITYAI_API_KEY", matches = ".*") -public class StabilityAiImageClientIT { +public class StabilityAiImageModelIT { @Autowired - protected ImageClient stabilityAiImageClient; + protected ImageModel stabilityAiImageModel; @Test void imageAsBase64Test() throws IOException { @@ -54,7 +54,7 @@ public class StabilityAiImageClientIT { ImagePrompt imagePrompt = new ImagePrompt(instructions, imageOptions); - ImageResponse imageResponse = this.stabilityAiImageClient.call(imagePrompt); + ImageResponse imageResponse = this.stabilityAiImageModel.call(imagePrompt); ImageGeneration imageGeneration = imageResponse.getResult(); Image image = imageGeneration.getOutput(); diff --git a/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageTestConfiguration.java b/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageTestConfiguration.java index 394d384ff..c5271ff00 100644 --- a/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageTestConfiguration.java +++ b/models/spring-ai-stability-ai/src/test/java/org/springframework/ai/stabilityai/StabilityAiImageTestConfiguration.java @@ -29,8 +29,8 @@ public class StabilityAiImageTestConfiguration { } @Bean - StabilityAiImageClient stabilityAiImageClient(StabilityAiApi stabilityAiApi) { - return new StabilityAiImageClient(stabilityAiApi); + StabilityAiImageModel stabilityAiImageModel(StabilityAiApi stabilityAiApi) { + return new StabilityAiImageModel(stabilityAiApi); } private String getApiKey() { diff --git a/models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingClient.java b/models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingModel.java similarity index 97% rename from models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingClient.java rename to models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingModel.java index d5b1d1933..20d24f8a6 100644 --- a/models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingClient.java +++ b/models/spring-ai-transformers/src/main/java/org/springframework/ai/transformers/TransformersEmbeddingModel.java @@ -40,7 +40,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -56,9 +56,9 @@ import org.springframework.util.StringUtils; * * @author Christian Tzolov */ -public class TransformersEmbeddingClient extends AbstractEmbeddingClient implements InitializingBean { +public class TransformersEmbeddingModel extends AbstractEmbeddingModel implements InitializingBean { - private static final Log logger = LogFactory.getLog(TransformersEmbeddingClient.class); + private static final Log logger = LogFactory.getLog(TransformersEmbeddingModel.class); // ONNX tokenizer for the all-MiniLM-L6-v2 generative public final static String DEFAULT_ONNX_TOKENIZER_URI = "https://raw.githubusercontent.com/spring-projects/spring-ai/main/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/tokenizer.json"; @@ -126,11 +126,11 @@ public class TransformersEmbeddingClient extends AbstractEmbeddingClient impleme private Set onnxModelInputs; - public TransformersEmbeddingClient() { + public TransformersEmbeddingModel() { this(MetadataMode.NONE); } - public TransformersEmbeddingClient(MetadataMode metadataMode) { + public TransformersEmbeddingModel(MetadataMode metadataMode) { Assert.notNull(metadataMode, "Metadata mode should not be null"); this.metadataMode = metadataMode; } diff --git a/models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingClientTests.java b/models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingModelTests.java similarity index 72% rename from models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingClientTests.java rename to models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingModelTests.java index d2526bbe8..023496eff 100644 --- a/models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingClientTests.java +++ b/models/spring-ai-transformers/src/test/java/org/springframework/ai/transformers/TransformersEmbeddingModelTests.java @@ -28,16 +28,16 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Christian Tzolov */ -public class TransformersEmbeddingClientTests { +public class TransformersEmbeddingModelTests { private static DecimalFormat DF = new DecimalFormat("#.######"); @Test void embed() throws Exception { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); - embeddingClient.afterPropertiesSet(); - List embed = embeddingClient.embed("Hello world"); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); + embeddingModel.afterPropertiesSet(); + List embed = embeddingModel.embed("Hello world"); assertThat(embed).hasSize(384); assertThat(DF.format(embed.get(0))).isEqualTo(DF.format(-0.19744634628295898)); assertThat(DF.format(embed.get(383))).isEqualTo(DF.format(0.17298996448516846)); @@ -45,9 +45,9 @@ public class TransformersEmbeddingClientTests { @Test void embedDocument() throws Exception { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); - embeddingClient.afterPropertiesSet(); - List embed = embeddingClient.embed(new Document("Hello world")); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); + embeddingModel.afterPropertiesSet(); + List embed = embeddingModel.embed(new Document("Hello world")); assertThat(embed).hasSize(384); assertThat(DF.format(embed.get(0))).isEqualTo(DF.format(-0.19744634628295898)); assertThat(DF.format(embed.get(383))).isEqualTo(DF.format(0.17298996448516846)); @@ -55,9 +55,9 @@ public class TransformersEmbeddingClientTests { @Test void embedList() throws Exception { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); - embeddingClient.afterPropertiesSet(); - List> embed = embeddingClient.embed(List.of("Hello world", "World is big")); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); + embeddingModel.afterPropertiesSet(); + List> embed = embeddingModel.embed(List.of("Hello world", "World is big")); assertThat(embed).hasSize(2); assertThat(embed.get(0)).hasSize(384); assertThat(DF.format(embed.get(0).get(0))).isEqualTo(DF.format(-0.19744634628295898)); @@ -72,9 +72,9 @@ public class TransformersEmbeddingClientTests { @Test void embedForResponse() throws Exception { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); - embeddingClient.afterPropertiesSet(); - EmbeddingResponse embed = embeddingClient.embedForResponse(List.of("Hello world", "World is big")); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); + embeddingModel.afterPropertiesSet(); + EmbeddingResponse embed = embeddingModel.embedForResponse(List.of("Hello world", "World is big")); assertThat(embed.getResults()).hasSize(2); assertThat(embed.getMetadata()).isEmpty(); @@ -90,11 +90,11 @@ public class TransformersEmbeddingClientTests { @Test void dimensions() throws Exception { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); - embeddingClient.afterPropertiesSet(); - assertThat(embeddingClient.dimensions()).isEqualTo(384); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); + embeddingModel.afterPropertiesSet(); + assertThat(embeddingModel.dimensions()).isEqualTo(384); // cached - assertThat(embeddingClient.dimensions()).isEqualTo(384); + assertThat(embeddingModel.dimensions()).isEqualTo(384); } } diff --git a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClient.java b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java similarity index 95% rename from models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClient.java rename to models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java index e30df03ce..80d668f0c 100644 --- a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClient.java +++ b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java @@ -32,16 +32,17 @@ import com.google.cloud.vertexai.generativeai.PartMaker; import com.google.cloud.vertexai.generativeai.ResponseStream; import com.google.protobuf.Struct; import com.google.protobuf.util.JsonFormat; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.AssistantMessage; 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.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.model.function.AbstractFunctionCallSupport; import org.springframework.ai.model.function.FunctionCallbackContext; @@ -65,9 +66,9 @@ import java.util.stream.Collectors; * @author Grogdunn * @since 0.8.1 */ -public class VertexAiGeminiChatClient - extends AbstractFunctionCallSupport - implements ChatClient, StreamingChatClient, DisposableBean { +public class VertexAiGeminiChatModel + extends AbstractFunctionCallSupport + implements ChatModel, StreamingChatModel, DisposableBean { private final static boolean IS_RUNTIME_CALL = true; @@ -95,7 +96,7 @@ public class VertexAiGeminiChatClient } - public enum ChatModel { + public enum ChatModel implements ModelDescription { GEMINI_PRO_VISION("gemini-pro-vision"), @@ -115,9 +116,14 @@ public class VertexAiGeminiChatClient return this.value; } + @Override + public String getModelName() { + return this.value; + } + } - public VertexAiGeminiChatClient(VertexAI vertexAI) { + public VertexAiGeminiChatModel(VertexAI vertexAI) { this(vertexAI, VertexAiGeminiChatOptions.builder() .withModel(ChatModel.GEMINI_PRO_VISION) @@ -125,11 +131,11 @@ public class VertexAiGeminiChatClient .build()); } - public VertexAiGeminiChatClient(VertexAI vertexAI, VertexAiGeminiChatOptions options) { + public VertexAiGeminiChatModel(VertexAI vertexAI, VertexAiGeminiChatOptions options) { this(vertexAI, options, null); } - public VertexAiGeminiChatClient(VertexAI vertexAI, VertexAiGeminiChatOptions options, + public VertexAiGeminiChatModel(VertexAI vertexAI, VertexAiGeminiChatOptions options, FunctionCallbackContext functionCallbackContext) { super(functionCallbackContext); @@ -478,4 +484,9 @@ public class VertexAiGeminiChatClient return response.getCandidatesList().get(0).getContent().getPartsList().get(0).hasFunctionCall(); } + @Override + public ChatOptions getDefaultOptions() { + return VertexAiGeminiChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java index 311ff16af..6a83f4a00 100644 --- a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java +++ b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java @@ -28,7 +28,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallingOptions; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient.ChatModel; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.ChatModel; import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.util.Assert; @@ -78,10 +78,10 @@ public class VertexAiGeminiChatOptions implements FunctionCallingOptions, ChatOp private @JsonProperty("modelName") String model; /** - * Tool Function Callbacks to register with the ChatClient. + * Tool Function Callbacks to register with the ChatModel. * For Prompt Options the functionCallbacks are automatically enabled for the duration of the prompt execution. * For Default Options the functionCallbacks are registered but disabled by default. Use the enableFunctions to set the functions - * from the registry to be used by the ChatClient chat completion requests. + * from the registry to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -336,4 +336,18 @@ public class VertexAiGeminiChatOptions implements FunctionCallingOptions, ChatOp return true; } + public static VertexAiGeminiChatOptions fromOptions(VertexAiGeminiChatOptions fromOptions) { + VertexAiGeminiChatOptions options = new VertexAiGeminiChatOptions(); + options.setStopSequences(fromOptions.getStopSequences()); + options.setTemperature(fromOptions.getTemperature()); + options.setTopP(fromOptions.getTopP()); + options.setTopK(fromOptions.getTopK()); + options.setCandidateCount(fromOptions.getCandidateCount()); + options.setMaxOutputTokens(fromOptions.getMaxOutputTokens()); + options.setModel(fromOptions.getModel()); + options.setFunctionCallbacks(fromOptions.getFunctionCallbacks()); + options.setFunctions(fromOptions.getFunctions()); + return options; + } + } diff --git a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHints.java b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHints.java index 8911288fa..0a46b9f2f 100644 --- a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHints.java +++ b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHints.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.vertexai.gemini.aot; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; @@ -34,7 +34,7 @@ public class VertexAiGeminiRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { var mcs = MemberCategory.values(); - for (var tr : findJsonAnnotatedClassesInPackage(VertexAiGeminiChatClient.class)) + for (var tr : findJsonAnnotatedClassesInPackage(VertexAiGeminiChatModel.class)) hints.reflection().registerType(tr, mcs); } diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClientIT.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java similarity index 91% rename from models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClientIT.java rename to models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java index 58f687eb4..5e81d683b 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClientIT.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java @@ -53,10 +53,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "VERTEX_AI_GEMINI_PROJECT_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "VERTEX_AI_GEMINI_LOCATION", matches = ".*") -class VertexAiGeminiChatClientIT { +class VertexAiGeminiChatModelIT { @Autowired - private VertexAiGeminiChatClient client; + private VertexAiGeminiChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -70,7 +70,7 @@ class VertexAiGeminiChatClientIT { SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); } @@ -87,7 +87,7 @@ class VertexAiGeminiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputParser.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -106,7 +106,7 @@ class VertexAiGeminiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -129,7 +129,7 @@ class VertexAiGeminiChatClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConvert.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -139,7 +139,7 @@ class VertexAiGeminiChatClientIT { @Test void textStream() { - String generationTextFromStream = client.stream(new Prompt("Explain Bulgaria? Answer in 10 paragraphs.")) + String generationTextFromStream = chatModel.stream(new Prompt("Explain Bulgaria? Answer in 10 paragraphs.")) .collectList() .block() .stream() @@ -167,7 +167,7 @@ class VertexAiGeminiChatClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - String generationTextFromStream = client.stream(prompt) + String generationTextFromStream = chatModel.stream(prompt) .collectList() .block() .stream() @@ -191,7 +191,7 @@ class VertexAiGeminiChatClientIT { var userMessage = new UserMessage("Explain what do you see o this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, data))); - var response = client.call(new Prompt(List.of(userMessage))); + var response = chatModel.call(new Prompt(List.of(userMessage))); // Response should contain something like: // I see a bunch of bananas in a golden basket. The bananas are ripe and yellow. @@ -231,10 +231,10 @@ class VertexAiGeminiChatClientIT { } @Bean - public VertexAiGeminiChatClient vertexAiEmbedding(VertexAI vertexAi) { - return new VertexAiGeminiChatClient(vertexAi, + public VertexAiGeminiChatModel vertexAiEmbedding(VertexAI vertexAi) { + return new VertexAiGeminiChatModel(vertexAi, VertexAiGeminiChatOptions.builder() - .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_VISION) + .withModel(VertexAiGeminiChatModel.ChatModel.GEMINI_PRO_VISION) .build()); } diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHintsTests.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHintsTests.java index 2e3f12f12..a4aaf3988 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHintsTests.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/aot/VertexAiGeminiRuntimeHintsTests.java @@ -19,7 +19,7 @@ import java.util.Set; import org.junit.jupiter.api.Test; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.TypeReference; @@ -38,7 +38,7 @@ class VertexAiGeminiRuntimeHintsTests { RuntimeHints runtimeHints = new RuntimeHints(); VertexAiGeminiRuntimeHints vertexAiGeminiRuntimeHints = new VertexAiGeminiRuntimeHints(); vertexAiGeminiRuntimeHints.registerHints(runtimeHints, null); - Set jsonAnnotatedClasses = findJsonAnnotatedClassesInPackage(VertexAiGeminiChatClient.class); + Set jsonAnnotatedClasses = findJsonAnnotatedClassesInPackage(VertexAiGeminiChatModel.class); for (TypeReference jsonAnnotatedClass : jsonAnnotatedClasses) { assertThat(runtimeHints).matches(reflection().onType(jsonAnnotatedClass)); } diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatClientFunctionCallingIT.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatModelFunctionCallingIT.java similarity index 92% rename from models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatClientFunctionCallingIT.java rename to models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatModelFunctionCallingIT.java index 11b852222..e71d58bc9 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatClientFunctionCallingIT.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/function/VertexAiGeminiChatModelFunctionCallingIT.java @@ -28,6 +28,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import reactor.core.publisher.Flux; import org.springframework.ai.chat.ChatResponse; @@ -38,7 +39,6 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallbackWrapper; import org.springframework.ai.model.function.FunctionCallbackWrapper.Builder.SchemaType; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -50,12 +50,12 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "VERTEX_AI_GEMINI_PROJECT_ID", matches = ".*") @EnabledIfEnvironmentVariable(named = "VERTEX_AI_GEMINI_LOCATION", matches = ".*") -public class VertexAiGeminiChatClientFunctionCallingIT { +public class VertexAiGeminiChatModelFunctionCallingIT { private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired - private VertexAiGeminiChatClient vertexGeminiClient; + private VertexAiGeminiChatModel vertexGeminiClient; @AfterEach public void afterEach() { @@ -98,8 +98,8 @@ public class VertexAiGeminiChatClientFunctionCallingIT { """; var promptOptions = VertexAiGeminiChatOptions.builder() - .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO) - // .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_1_5_PRO) + .withModel(VertexAiGeminiChatModel.ChatModel.GEMINI_PRO) + // .withModel(VertexAiGeminiModelCall.ChatModel.GEMINI_PRO_1_5_PRO) .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) .withName("get_current_weather") .withDescription("Get the current weather in a given location") @@ -126,8 +126,8 @@ public class VertexAiGeminiChatClientFunctionCallingIT { List messages = new ArrayList<>(List.of(userMessage)); var promptOptions = VertexAiGeminiChatOptions.builder() - // .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_1_5_PRO) - .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue()) + // .withModel(VertexAiGeminiModelCall.ChatModel.GEMINI_PRO_1_5_PRO) + .withModel(VertexAiGeminiChatModel.ChatModel.GEMINI_PRO.getValue()) .withFunctionCallbacks(List.of( FunctionCallbackWrapper.builder(new MockWeatherService()) .withSchemaType(SchemaType.OPEN_API_SCHEMA) @@ -168,7 +168,7 @@ public class VertexAiGeminiChatClientFunctionCallingIT { List messages = new ArrayList<>(List.of(userMessage)); var promptOptions = VertexAiGeminiChatOptions.builder() - .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO) + .withModel(VertexAiGeminiChatModel.ChatModel.GEMINI_PRO) .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) .withSchemaType(SchemaType.OPEN_API_SCHEMA) .withName("getCurrentWeather") @@ -224,10 +224,10 @@ public class VertexAiGeminiChatClientFunctionCallingIT { } @Bean - public VertexAiGeminiChatClient vertexAiEmbedding(VertexAI vertexAi) { - return new VertexAiGeminiChatClient(vertexAi, + public VertexAiGeminiChatModel vertexAiEmbedding(VertexAI vertexAi) { + return new VertexAiGeminiChatModel(vertexAi, VertexAiGeminiChatOptions.builder() - .withModel(VertexAiGeminiChatClient.ChatModel.GEMINI_PRO) + .withModel(VertexAiGeminiChatModel.ChatModel.GEMINI_PRO) .withTemperature(0.9f) .build()); } diff --git a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatClient.java b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatModel.java similarity index 90% rename from models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatClient.java rename to models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatModel.java index 671097615..7b9c00955 100644 --- a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatClient.java +++ b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatModel.java @@ -18,7 +18,7 @@ package org.springframework.ai.vertexai.palm2; import java.util.List; import java.util.stream.Collectors; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -35,18 +35,18 @@ import org.springframework.util.CollectionUtils; /** * @author Christian Tzolov */ -public class VertexAiPaLm2ChatClient implements ChatClient { +public class VertexAiPaLm2ChatModel implements ChatModel { private final VertexAiPaLm2Api vertexAiApi; private final VertexAiPaLm2ChatOptions defaultOptions; - public VertexAiPaLm2ChatClient(VertexAiPaLm2Api vertexAiApi) { + public VertexAiPaLm2ChatModel(VertexAiPaLm2Api vertexAiApi) { this(vertexAiApi, VertexAiPaLm2ChatOptions.builder().withTemperature(0.7f).withCandidateCount(1).withTopK(20).build()); } - public VertexAiPaLm2ChatClient(VertexAiPaLm2Api vertexAiApi, VertexAiPaLm2ChatOptions defaultOptions) { + public VertexAiPaLm2ChatModel(VertexAiPaLm2Api vertexAiApi, VertexAiPaLm2ChatOptions defaultOptions) { Assert.notNull(defaultOptions, "Default options must not be null!"); Assert.notNull(vertexAiApi, "VertexAiPaLm2Api must not be null!"); @@ -111,4 +111,9 @@ public class VertexAiPaLm2ChatClient implements ChatClient { return request; } + @Override + public ChatOptions getDefaultOptions() { + return VertexAiPaLm2ChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatOptions.java b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatOptions.java index cae09e7bb..55742ff05 100644 --- a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatOptions.java +++ b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatOptions.java @@ -127,4 +127,13 @@ public class VertexAiPaLm2ChatOptions implements ChatOptions { this.topK = topK; } + public static VertexAiPaLm2ChatOptions fromOptions(VertexAiPaLm2ChatOptions fromOptions) { + return VertexAiPaLm2ChatOptions.builder() + .withTemperature(fromOptions.getTemperature()) + .withCandidateCount(fromOptions.getCandidateCount()) + .withTopP(fromOptions.getTopP()) + .withTopK(fromOptions.getTopK()) + .build(); + } + } diff --git a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClient.java b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModel.java similarity index 88% rename from models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClient.java rename to models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModel.java index b864c8b4c..59ee71cd1 100644 --- a/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClient.java +++ b/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModel.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; @@ -28,11 +28,11 @@ import org.springframework.ai.vertexai.palm2.api.VertexAiPaLm2Api; /** * @author Christian Tzolov */ -public class VertexAiPaLm2EmbeddingClient extends AbstractEmbeddingClient { +public class VertexAiPaLm2EmbeddingModel extends AbstractEmbeddingModel { private final VertexAiPaLm2Api vertexAiApi; - public VertexAiPaLm2EmbeddingClient(VertexAiPaLm2Api vertexAiApi) { + public VertexAiPaLm2EmbeddingModel(VertexAiPaLm2Api vertexAiApi) { this.vertexAiApi = vertexAiApi; } diff --git a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatGenerationClientIT.java b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatGenerationClientIT.java index 5fd43b0d5..4039969fd 100644 --- a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatGenerationClientIT.java +++ b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatGenerationClientIT.java @@ -48,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; class VertexAiPaLm2ChatGenerationClientIT { @Autowired - private VertexAiPaLm2ChatClient client; + private VertexAiPaLm2ChatModel chatModel; @Value("classpath:/prompts/system-message.st") private Resource systemResource; @@ -62,7 +62,7 @@ class VertexAiPaLm2ChatGenerationClientIT { SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); assertThat(response.getResult().getOutput().getContent()).contains("Bartholomew"); } @@ -79,7 +79,7 @@ class VertexAiPaLm2ChatGenerationClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors.", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = this.client.call(prompt).getResult(); + Generation generation = this.chatModel.call(prompt).getResult(); List list = outputConverter.convert(generation.getOutput().getContent()); assertThat(list).hasSize(5); @@ -98,7 +98,7 @@ class VertexAiPaLm2ChatGenerationClientIT { PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); Map result = outputConverter.convert(generation.getOutput().getContent()); assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); @@ -120,7 +120,7 @@ class VertexAiPaLm2ChatGenerationClientIT { """; PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); - Generation generation = client.call(prompt).getResult(); + Generation generation = chatModel.call(prompt).getResult(); ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent()); assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); @@ -136,8 +136,8 @@ class VertexAiPaLm2ChatGenerationClientIT { } @Bean - public VertexAiPaLm2ChatClient vertexAiEmbedding(VertexAiPaLm2Api vertexAiApi) { - return new VertexAiPaLm2ChatClient(vertexAiApi); + public VertexAiPaLm2ChatModel vertexAiEmbedding(VertexAiPaLm2Api vertexAiApi) { + return new VertexAiPaLm2ChatModel(vertexAiApi); } } diff --git a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatRequestTests.java b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatRequestTests.java index 6c5478f67..81a07a150 100644 --- a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatRequestTests.java +++ b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatRequestTests.java @@ -29,12 +29,12 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class VertexAiPaLm2ChatRequestTests { - VertexAiPaLm2ChatClient client = new VertexAiPaLm2ChatClient(new VertexAiPaLm2Api("bla")); + VertexAiPaLm2ChatModel chatModel = new VertexAiPaLm2ChatModel(new VertexAiPaLm2Api("bla")); @Test public void createRequestWithDefaultOptions() { - var request = client.createRequest(new Prompt("Test message content")); + var request = chatModel.createRequest(new Prompt("Test message content")); assertThat(request.prompt().messages()).hasSize(1); @@ -55,7 +55,7 @@ public class VertexAiPaLm2ChatRequestTests { // .withCandidateCount(2) .build(); - var request = client.createRequest(new Prompt("Test message content", promptOptions)); + var request = chatModel.createRequest(new Prompt("Test message content", promptOptions)); assertThat(request.prompt().messages()).hasSize(1); @@ -75,7 +75,7 @@ public class VertexAiPaLm2ChatRequestTests { .withTopP(0.6f) .build(); - var request = client.createRequest(new Prompt("Test message content", portablePromptOptions)); + var request = chatModel.createRequest(new Prompt("Test message content", portablePromptOptions)); assertThat(request.prompt().messages()).hasSize(1); diff --git a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClientIT.java b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModelIT.java similarity index 78% rename from models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClientIT.java rename to models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModelIT.java index 6014d5b0e..2e05dbfd1 100644 --- a/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClientIT.java +++ b/models/spring-ai-vertex-ai-palm2/src/test/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModelIT.java @@ -31,24 +31,24 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @EnabledIfEnvironmentVariable(named = "PALM_API_KEY", matches = ".*") -class VertexAiPaLm2EmbeddingClientIT { +class VertexAiPaLm2EmbeddingModelIT { @Autowired - private VertexAiPaLm2EmbeddingClient embeddingClient; + private VertexAiPaLm2EmbeddingModel embeddingModel; @Test void simpleEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(768); + assertThat(embeddingModel.dimensions()).isEqualTo(768); } @Test void batchEmbedding() { - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -56,7 +56,7 @@ class VertexAiPaLm2EmbeddingClientIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(768); + assertThat(embeddingModel.dimensions()).isEqualTo(768); } @SpringBootConfiguration @@ -68,8 +68,8 @@ class VertexAiPaLm2EmbeddingClientIT { } @Bean - public VertexAiPaLm2EmbeddingClient vertexAiEmbedding(VertexAiPaLm2Api vertexAiApi) { - return new VertexAiPaLm2EmbeddingClient(vertexAiApi); + public VertexAiPaLm2EmbeddingModel vertexAiEmbedding(VertexAiPaLm2Api vertexAiApi) { + return new VertexAiPaLm2EmbeddingModel(vertexAiApi); } } diff --git a/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatClient.java b/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatModel.java similarity index 90% rename from models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatClient.java rename to models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatModel.java index b4f5c14ff..b04cd0051 100644 --- a/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatClient.java +++ b/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatModel.java @@ -18,12 +18,12 @@ package org.springframework.ai.watsonx; import java.util.List; import java.util.Map; +import org.springframework.ai.chat.ChatModel; import reactor.core.publisher.Flux; -import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; @@ -35,7 +35,7 @@ import org.springframework.ai.watsonx.utils.MessageToPromptConverter; import org.springframework.util.Assert; /** - * {@link ChatClient} implementation for {@literal watsonx.ai}. + * {@link ChatModel} implementation for {@literal watsonx.ai}. * * watsonx.ai allows developers to use large language models within a SaaS service. It * supports multiple open-source models as well as IBM created models @@ -48,13 +48,13 @@ import org.springframework.util.Assert; * @author Christian Tzolov * @since 1.0.0 */ -public class WatsonxAiChatClient implements ChatClient, StreamingChatClient { +public class WatsonxAiChatModel implements ChatModel, StreamingChatModel { private final WatsonxAiApi watsonxAiApi; private final WatsonxAiChatOptions defaultOptions; - public WatsonxAiChatClient(WatsonxAiApi watsonxAiApi) { + public WatsonxAiChatModel(WatsonxAiApi watsonxAiApi) { this(watsonxAiApi, WatsonxAiChatOptions.builder() .withTemperature(0.7f) @@ -68,7 +68,7 @@ public class WatsonxAiChatClient implements ChatClient, StreamingChatClient { .build()); } - public WatsonxAiChatClient(WatsonxAiApi watsonxAiApi, WatsonxAiChatOptions defaultOptions) { + public WatsonxAiChatModel(WatsonxAiApi watsonxAiApi, WatsonxAiChatOptions defaultOptions) { Assert.notNull(watsonxAiApi, "watsonxAiApi cannot be null"); Assert.notNull(defaultOptions, "defaultOptions cannot be null"); this.watsonxAiApi = watsonxAiApi; @@ -140,4 +140,9 @@ public class WatsonxAiChatClient implements ChatClient, StreamingChatClient { return WatsonxAiRequest.builder(convertedPrompt).withParameters(parameters).build(); } + @Override + public ChatOptions getDefaultOptions() { + return WatsonxAiChatOptions.fromOptions(this.defaultOptions); + } + } \ No newline at end of file diff --git a/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatOptions.java b/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatOptions.java index 0b10febdb..28bd02159 100644 --- a/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatOptions.java +++ b/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatOptions.java @@ -324,5 +324,21 @@ public class WatsonxAiChatOptions implements ChatOptions { return input != null ? input.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase() : null; } + public static WatsonxAiChatOptions fromOptions(WatsonxAiChatOptions fromOptions) { + return WatsonxAiChatOptions.builder() + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTopK(fromOptions.getTopK()) + .withDecodingMethod(fromOptions.getDecodingMethod()) + .withMaxNewTokens(fromOptions.getMaxNewTokens()) + .withMinNewTokens(fromOptions.getMinNewTokens()) + .withStopSequences(fromOptions.getStopSequences()) + .withRepetitionPenalty(fromOptions.getRepetitionPenalty()) + .withRandomSeed(fromOptions.getRandomSeed()) + .withModel(fromOptions.getModel()) + .withAdditionalProperties(fromOptions.getAdditionalProperties()) + .build(); + } + } // @formatter:on \ No newline at end of file diff --git a/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatClientTest.java b/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatModelTest.java similarity index 93% rename from models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatClientTest.java rename to models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatModelTest.java index c74afa427..18b89ff09 100644 --- a/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatClientTest.java +++ b/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiChatModelTest.java @@ -46,9 +46,9 @@ import static org.mockito.Mockito.when; * @author Pablo Sanchidrian Herrera * @author John Jairo Moreno Rojas */ -public class WatsonxAiChatClientTest { +public class WatsonxAiChatModelTest { - WatsonxAiChatClient chatClient = new WatsonxAiChatClient(mock(WatsonxAiApi.class)); + WatsonxAiChatModel chatModel = new WatsonxAiChatModel(mock(WatsonxAiApi.class)); @Test public void testCreateRequestWithNoModelId() { @@ -57,7 +57,7 @@ public class WatsonxAiChatClientTest { Prompt prompt = new Prompt("Test message", options); Exception exception = Assert.assertThrows(IllegalArgumentException.class, () -> { - WatsonxAiRequest request = chatClient.request(prompt); + WatsonxAiRequest request = chatModel.request(prompt); }); } @@ -71,7 +71,7 @@ public class WatsonxAiChatClientTest { .build(); Prompt prompt = new Prompt(msg, modelOptions); - WatsonxAiRequest request = chatClient.request(prompt); + WatsonxAiRequest request = chatModel.request(prompt); Assert.assertEquals(request.getModelId(), "meta-llama/llama-2-70b-chat"); assertThat(request.getParameters().get("decoding_method")).isEqualTo("greedy"); @@ -105,7 +105,7 @@ public class WatsonxAiChatClientTest { Prompt prompt = new Prompt(msg, modelOptions); - WatsonxAiRequest request = chatClient.request(prompt); + WatsonxAiRequest request = chatModel.request(prompt); Assert.assertEquals(request.getModelId(), "meta-llama/llama-2-70b-chat"); assertThat(request.getParameters().get("decoding_method")).isEqualTo("sample"); @@ -139,7 +139,7 @@ public class WatsonxAiChatClientTest { Prompt prompt = new Prompt(msg, modelOptions); - WatsonxAiRequest request = chatClient.request(prompt); + WatsonxAiRequest request = chatModel.request(prompt); Assert.assertEquals(request.getModelId(), "meta-llama/llama-2-70b-chat"); assertThat(request.getInput()).isEqualTo(msg); @@ -157,7 +157,7 @@ public class WatsonxAiChatClientTest { @Test public void testCallMethod() { WatsonxAiApi mockChatApi = mock(WatsonxAiApi.class); - WatsonxAiChatClient client = new WatsonxAiChatClient(mockChatApi); + WatsonxAiChatModel chatModel = new WatsonxAiChatModel(mockChatApi); Prompt prompt = new Prompt(List.of(new SystemMessage("Your prompt here")), WatsonxAiChatOptions.builder().withModel("google/flan-ul2").build()); @@ -177,7 +177,7 @@ public class WatsonxAiChatClientTest { Map.of("warnings", List.of(Map.of("message", "the message", "id", "disclaimer_warning"))))); ChatResponse expectedResponse = new ChatResponse(List.of(expectedGenerator)); - ChatResponse response = client.call(prompt); + ChatResponse response = chatModel.call(prompt); Assert.assertEquals(expectedResponse.getResults().size(), response.getResults().size()); Assert.assertEquals(expectedResponse.getResult().getOutput(), response.getResult().getOutput()); @@ -186,7 +186,7 @@ public class WatsonxAiChatClientTest { @Test public void testStreamMethod() { WatsonxAiApi mockChatApi = mock(WatsonxAiApi.class); - WatsonxAiChatClient client = new WatsonxAiChatClient(mockChatApi); + WatsonxAiChatModel chatModel = new WatsonxAiChatModel(mockChatApi); Prompt prompt = new Prompt(List.of(new SystemMessage("Your prompt here")), WatsonxAiChatOptions.builder().withModel("google/flan-ul2").build()); @@ -210,7 +210,7 @@ public class WatsonxAiChatClientTest { Map.of("warnings", List.of(Map.of("message", "the message", "id", "disclaimer_warning"))))); Generation secondGen = new Generation("onse"); - Flux response = client.stream(prompt); + Flux response = chatModel.stream(prompt); StepVerifier.create(response).assertNext(current -> { diff --git a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatClient.java b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatModel.java similarity index 93% rename from models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatClient.java rename to models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatModel.java index f0c612672..2b5d804b1 100644 --- a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatClient.java +++ b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatModel.java @@ -17,10 +17,12 @@ package org.springframework.ai.zhipuai; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; + +import org.springframework.ai.chat.ChatModel; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.metadata.ChatGenerationMetadata; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; @@ -55,20 +57,20 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; /** - * {@link ChatClient} and {@link StreamingChatClient} implementation for - * {@literal ZhiPuAI} backed by {@link ZhiPuAiApi}. + * {@link ChatModel} and {@link StreamingChatModel} implementation for {@literal ZhiPuAI} + * backed by {@link ZhiPuAiApi}. * * @author Geng Rong - * @see ChatClient - * @see StreamingChatClient + * @see ChatModel + * @see StreamingChatModel * @see ZhiPuAiApi * @since 1.0.0 M1 */ -public class ZhiPuAiChatClient extends +public class ZhiPuAiChatModel extends AbstractFunctionCallSupport> - implements ChatClient, StreamingChatClient { + implements ChatModel, StreamingChatModel { - private static final Logger logger = LoggerFactory.getLogger(ZhiPuAiChatClient.class); + private static final Logger logger = LoggerFactory.getLogger(ZhiPuAiChatModel.class); /** * The default options used for the chat completion requests. @@ -86,35 +88,35 @@ public class ZhiPuAiChatClient extends private final ZhiPuAiApi zhiPuAiApi; /** - * Creates an instance of the ZhiPuAiChatClient. + * Creates an instance of the ZhiPuAiChatModel. * @param zhiPuAiApi The ZhiPuAiApi instance to be used for interacting with the * ZhiPuAI Chat API. * @throws IllegalArgumentException if zhiPuAiApi is null */ - public ZhiPuAiChatClient(ZhiPuAiApi zhiPuAiApi) { + public ZhiPuAiChatModel(ZhiPuAiApi zhiPuAiApi) { this(zhiPuAiApi, ZhiPuAiChatOptions.builder().withModel(ZhiPuAiApi.DEFAULT_CHAT_MODEL).withTemperature(0.7f).build()); } /** - * Initializes an instance of the ZhiPuAiChatClient. + * Initializes an instance of the ZhiPuAiChatModel. * @param zhiPuAiApi The ZhiPuAiApi instance to be used for interacting with the * ZhiPuAI Chat API. - * @param options The ZhiPuAiChatOptions to configure the chat client. + * @param options The ZhiPuAiChatOptions to configure the chat model. */ - public ZhiPuAiChatClient(ZhiPuAiApi zhiPuAiApi, ZhiPuAiChatOptions options) { + public ZhiPuAiChatModel(ZhiPuAiApi zhiPuAiApi, ZhiPuAiChatOptions options) { this(zhiPuAiApi, options, null, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the ZhiPuAiChatClient. + * Initializes a new instance of the ZhiPuAiChatModel. * @param zhiPuAiApi The ZhiPuAiApi instance to be used for interacting with the * ZhiPuAI Chat API. - * @param options The ZhiPuAiChatOptions to configure the chat client. + * @param options The ZhiPuAiChatOptions to configure the chat model. * @param functionCallbackContext The function callback context. * @param retryTemplate The retry template. */ - public ZhiPuAiChatClient(ZhiPuAiApi zhiPuAiApi, ZhiPuAiChatOptions options, + public ZhiPuAiChatModel(ZhiPuAiApi zhiPuAiApi, ZhiPuAiChatOptions options, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate) { super(functionCallbackContext); Assert.notNull(zhiPuAiApi, "ZhiPuAiApi must not be null"); @@ -382,4 +384,9 @@ public class ZhiPuAiChatClient extends && choice.finishReason() == ChatCompletionFinishReason.TOOL_CALLS; } + @Override + public ChatOptions getDefaultOptions() { + return ZhiPuAiChatOptions.fromOptions(this.defaultOptions); + } + } diff --git a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatOptions.java b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatOptions.java index 13dc8d519..6280c10ac 100644 --- a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatOptions.java +++ b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatOptions.java @@ -117,10 +117,10 @@ public class ZhiPuAiChatOptions implements FunctionCallingOptions, ChatOptions { private @JsonProperty("user_id") String user; /** - * ZhiPuAI Tool Function Callbacks to register with the ChatClient. + * ZhiPuAI Tool Function Callbacks to register with the ChatModel. * For Prompt Options the functionCallbacks are automatically enabled for the duration of the prompt execution. * For Default Options the functionCallbacks are registered but disabled by default. Use the enableFunctions to set the functions - * from the registry to be used by the ChatClient chat completion requests. + * from the registry to be used by the ChatModel chat completion requests. */ @NestedConfigurationProperty @JsonIgnore @@ -490,4 +490,24 @@ public class ZhiPuAiChatOptions implements FunctionCallingOptions, ChatOptions { throw new UnsupportedOperationException("Unimplemented method 'setTopK'"); } + public static ZhiPuAiChatOptions fromOptions(ZhiPuAiChatOptions fromOptions) { + return ZhiPuAiChatOptions.builder() + .withModel(fromOptions.getModel()) + .withFrequencyPenalty(fromOptions.getFrequencyPenalty()) + .withMaxTokens(fromOptions.getMaxTokens()) + .withN(fromOptions.getN()) + .withPresencePenalty(fromOptions.getPresencePenalty()) + .withResponseFormat(fromOptions.getResponseFormat()) + .withSeed(fromOptions.getSeed()) + .withStop(fromOptions.getStop()) + .withTemperature(fromOptions.getTemperature()) + .withTopP(fromOptions.getTopP()) + .withTools(fromOptions.getTools()) + .withToolChoice(fromOptions.getToolChoice()) + .withUser(fromOptions.getUser()) + .withFunctionCallbacks(fromOptions.getFunctionCallbacks()) + .withFunctions(fromOptions.getFunctions()) + .build(); + } + } diff --git a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingClient.java b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingModel.java similarity index 87% rename from models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingClient.java rename to models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingModel.java index 25aecfc74..8ec16a109 100644 --- a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingClient.java +++ b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingModel.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; @@ -39,9 +39,9 @@ import java.util.List; * @author Geng Rong * @since 1.0.0 M1 */ -public class ZhiPuAiEmbeddingClient extends AbstractEmbeddingClient { +public class ZhiPuAiEmbeddingModel extends AbstractEmbeddingModel { - private static final Logger logger = LoggerFactory.getLogger(ZhiPuAiEmbeddingClient.class); + private static final Logger logger = LoggerFactory.getLogger(ZhiPuAiEmbeddingModel.class); private final ZhiPuAiEmbeddingOptions defaultOptions; @@ -52,43 +52,43 @@ public class ZhiPuAiEmbeddingClient extends AbstractEmbeddingClient { private final MetadataMode metadataMode; /** - * Constructor for the ZhiPuAiEmbeddingClient class. + * Constructor for the ZhiPuAiEmbeddingModel class. * @param zhiPuAiApi The ZhiPuAiApi instance to use for making API requests. */ - public ZhiPuAiEmbeddingClient(ZhiPuAiApi zhiPuAiApi) { + public ZhiPuAiEmbeddingModel(ZhiPuAiApi zhiPuAiApi) { this(zhiPuAiApi, MetadataMode.EMBED); } /** - * Initializes a new instance of the ZhiPuAiEmbeddingClient class. + * Initializes a new instance of the ZhiPuAiEmbeddingModel class. * @param zhiPuAiApi The ZhiPuAiApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. */ - public ZhiPuAiEmbeddingClient(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode) { + public ZhiPuAiEmbeddingModel(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode) { this(zhiPuAiApi, metadataMode, ZhiPuAiEmbeddingOptions.builder().withModel(ZhiPuAiApi.DEFAULT_EMBEDDING_MODEL).build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the ZhiPuAiEmbeddingClient class. + * Initializes a new instance of the ZhiPuAiEmbeddingModel class. * @param zhiPuAiApi The ZhiPuAiApi instance to use for making API requests. * @param metadataMode The mode for generating metadata. * @param zhiPuAiEmbeddingOptions The options for ZhiPuAI embedding. */ - public ZhiPuAiEmbeddingClient(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode, + public ZhiPuAiEmbeddingModel(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode, ZhiPuAiEmbeddingOptions zhiPuAiEmbeddingOptions) { this(zhiPuAiApi, metadataMode, zhiPuAiEmbeddingOptions, RetryUtils.DEFAULT_RETRY_TEMPLATE); } /** - * Initializes a new instance of the ZhiPuAiEmbeddingClient class. + * Initializes a new instance of the ZhiPuAiEmbeddingModel class. * @param zhiPuAiApi - The ZhiPuAiApi instance to use for making API requests. * @param metadataMode - The mode for generating metadata. * @param options - The options for ZhiPuAI embedding. * @param retryTemplate - The RetryTemplate for retrying failed API requests. */ - public ZhiPuAiEmbeddingClient(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode, ZhiPuAiEmbeddingOptions options, + public ZhiPuAiEmbeddingModel(ZhiPuAiApi zhiPuAiApi, MetadataMode metadataMode, ZhiPuAiEmbeddingOptions options, RetryTemplate retryTemplate) { Assert.notNull(zhiPuAiApi, "ZhiPuAiApi must not be null"); Assert.notNull(metadataMode, "metadataMode must not be null"); diff --git a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageClient.java b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageModel.java similarity index 92% rename from models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageClient.java rename to models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageModel.java index 09caabb63..5b31aca1c 100644 --- a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageClient.java +++ b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageModel.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImageOptions; import org.springframework.ai.image.ImagePrompt; @@ -34,15 +34,15 @@ import org.springframework.util.Assert; import java.util.List; /** - * ZhiPuAiImageClient is a class that implements the ImageClient interface. It provides a + * ZhiPuAiImageModel is a class that implements the ImageModel interface. It provides a * client for calling the ZhiPuAI image generation API. * * @author Geng Rong * @since 1.0.0 M1 */ -public class ZhiPuAiImageClient implements ImageClient { +public class ZhiPuAiImageModel implements ImageModel { - private final static Logger logger = LoggerFactory.getLogger(ZhiPuAiImageClient.class); + private final static Logger logger = LoggerFactory.getLogger(ZhiPuAiImageModel.class); private final ZhiPuAiImageOptions defaultOptions; @@ -50,11 +50,11 @@ public class ZhiPuAiImageClient implements ImageClient { public final RetryTemplate retryTemplate; - public ZhiPuAiImageClient(ZhiPuAiImageApi zhiPuAiImageApi) { + public ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi) { this(zhiPuAiImageApi, ZhiPuAiImageOptions.builder().build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); } - public ZhiPuAiImageClient(ZhiPuAiImageApi zhiPuAiImageApi, ZhiPuAiImageOptions defaultOptions, + public ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi, ZhiPuAiImageOptions defaultOptions, RetryTemplate retryTemplate) { Assert.notNull(zhiPuAiImageApi, "ZhiPuAiImageApi must not be null"); Assert.notNull(defaultOptions, "defaultOptions must not be null"); diff --git a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/api/ZhiPuAiApi.java b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/api/ZhiPuAiApi.java index 5984e189c..45e21a500 100644 --- a/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/api/ZhiPuAiApi.java +++ b/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/api/ZhiPuAiApi.java @@ -18,6 +18,8 @@ package org.springframework.ai.zhipuai.api; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.ai.model.ModelDescription; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.ai.retry.RetryUtils; import org.springframework.boot.context.properties.bind.ConstructorBinding; @@ -110,7 +112,7 @@ public class ZhiPuAiApi { * ZhiPuAI Chat Completion Models: * ZhiPuAI Model. */ - public enum ChatModel { + public enum ChatModel implements ModelDescription { GLM_4("GLM-4"), GLM_3_Turbo("GLM-3-Turbo"); @@ -123,6 +125,11 @@ public class ZhiPuAiApi { public String getValue() { return value; } + + @Override + public String getModelName() { + return this.value; + } } /** diff --git a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ChatCompletionRequestTests.java b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ChatCompletionRequestTests.java index b958bc013..972280627 100644 --- a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ChatCompletionRequestTests.java +++ b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ChatCompletionRequestTests.java @@ -33,7 +33,7 @@ public class ChatCompletionRequestTests { @Test public void createRequestWithChatOptions() { - var client = new ZhiPuAiChatClient(new ZhiPuAiApi("TEST"), + var client = new ZhiPuAiChatModel(new ZhiPuAiApi("TEST"), ZhiPuAiChatOptions.builder().withModel("DEFAULT_MODEL").withTemperature(66.6f).build()); var request = client.createRequest(new Prompt("Test message content"), false); @@ -59,7 +59,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new ZhiPuAiChatClient(new ZhiPuAiApi("TEST"), + var client = new ZhiPuAiChatModel(new ZhiPuAiApi("TEST"), ZhiPuAiChatOptions.builder().withModel("DEFAULT_MODEL").build()); var request = client.createRequest(new Prompt("Test message content", @@ -89,7 +89,7 @@ public class ChatCompletionRequestTests { final String TOOL_FUNCTION_NAME = "CurrentWeather"; - var client = new ZhiPuAiChatClient(new ZhiPuAiApi("TEST"), + var client = new ZhiPuAiChatModel(new ZhiPuAiApi("TEST"), ZhiPuAiChatOptions.builder() .withModel("DEFAULT_MODEL") .withFunctionCallbacks(List.of(FunctionCallbackWrapper.builder(new MockWeatherService()) diff --git a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ZhiPuAiTestConfiguration.java b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ZhiPuAiTestConfiguration.java index 92f0bbb28..d35ac839a 100644 --- a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ZhiPuAiTestConfiguration.java +++ b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/ZhiPuAiTestConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.zhipuai; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.zhipuai.api.ZhiPuAiApi; import org.springframework.ai.zhipuai.api.ZhiPuAiImageApi; import org.springframework.boot.SpringBootConfiguration; @@ -48,18 +48,18 @@ public class ZhiPuAiTestConfiguration { } @Bean - public ZhiPuAiChatClient zhiPuAiChatClient(ZhiPuAiApi api) { - return new ZhiPuAiChatClient(api); + public ZhiPuAiChatModel zhiPuAiChatModel(ZhiPuAiApi api) { + return new ZhiPuAiChatModel(api); } @Bean - public ZhiPuAiImageClient zhiPuAiImageClient(ZhiPuAiImageApi imageApi) { - return new ZhiPuAiImageClient(imageApi); + public ZhiPuAiImageModel zhiPuAiImageModel(ZhiPuAiImageApi imageApi) { + return new ZhiPuAiImageModel(imageApi); } @Bean - public EmbeddingClient zhiPuAiEmbeddingClient(ZhiPuAiApi api) { - return new ZhiPuAiEmbeddingClient(api); + public EmbeddingModel zhiPuAiEmbeddingModel(ZhiPuAiApi api) { + return new ZhiPuAiEmbeddingModel(api); } } diff --git a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/api/ZhiPuAiRetryTests.java b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/api/ZhiPuAiRetryTests.java index 3326af098..6feb7747c 100644 --- a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/api/ZhiPuAiRetryTests.java +++ b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/api/ZhiPuAiRetryTests.java @@ -26,11 +26,11 @@ import org.springframework.ai.image.ImageMessage; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.retry.RetryUtils; import org.springframework.ai.retry.TransientAiException; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; import org.springframework.ai.zhipuai.ZhiPuAiChatOptions; -import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingClient; +import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingModel; import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingOptions; -import org.springframework.ai.zhipuai.ZhiPuAiImageClient; +import org.springframework.ai.zhipuai.ZhiPuAiImageModel; import org.springframework.ai.zhipuai.ZhiPuAiImageOptions; import org.springframework.ai.zhipuai.api.ZhiPuAiApi.ChatCompletion; import org.springframework.ai.zhipuai.api.ZhiPuAiApi.ChatCompletionChunk; @@ -93,11 +93,11 @@ public class ZhiPuAiRetryTests { private @Mock ZhiPuAiImageApi zhiPuAiImageApi; - private ZhiPuAiChatClient chatClient; + private ZhiPuAiChatModel chatModel; - private ZhiPuAiEmbeddingClient embeddingClient; + private ZhiPuAiEmbeddingModel embeddingModel; - private ZhiPuAiImageClient imageClient; + private ZhiPuAiImageModel imageModel; @BeforeEach public void beforeEach() { @@ -105,10 +105,10 @@ public class ZhiPuAiRetryTests { retryListener = new TestRetryListener(); retryTemplate.registerListener(retryListener); - chatClient = new ZhiPuAiChatClient(zhiPuAiApi, ZhiPuAiChatOptions.builder().build(), null, retryTemplate); - embeddingClient = new ZhiPuAiEmbeddingClient(zhiPuAiApi, MetadataMode.EMBED, + chatModel = new ZhiPuAiChatModel(zhiPuAiApi, ZhiPuAiChatOptions.builder().build(), null, retryTemplate); + embeddingModel = new ZhiPuAiEmbeddingModel(zhiPuAiApi, MetadataMode.EMBED, ZhiPuAiEmbeddingOptions.builder().build(), retryTemplate); - imageClient = new ZhiPuAiImageClient(zhiPuAiImageApi, ZhiPuAiImageOptions.builder().build(), retryTemplate); + imageModel = new ZhiPuAiImageModel(zhiPuAiImageApi, ZhiPuAiImageOptions.builder().build(), retryTemplate); } @Test @@ -124,7 +124,7 @@ public class ZhiPuAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedChatCompletion))); - var result = chatClient.call(new Prompt("text")); + var result = chatModel.call(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getContent()).isSameAs("Response"); @@ -136,7 +136,7 @@ public class ZhiPuAiRetryTests { public void zhiPuAiChatNonTransientError() { when(zhiPuAiApi.chatCompletionEntity(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.call(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.call(new Prompt("text"))); } @Test @@ -152,7 +152,7 @@ public class ZhiPuAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(Flux.just(expectedChatCompletion)); - var result = chatClient.stream(new Prompt("text")); + var result = chatModel.stream(new Prompt("text")); assertThat(result).isNotNull(); assertThat(result.collectList().block().get(0).getResult().getOutput().getContent()).isSameAs("Response"); @@ -164,7 +164,7 @@ public class ZhiPuAiRetryTests { public void zhiPuAiChatStreamNonTransientError() { when(zhiPuAiApi.chatCompletionStream(isA(ChatCompletionRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> chatClient.stream(new Prompt("text"))); + assertThrows(RuntimeException.class, () -> chatModel.stream(new Prompt("text"))); } @Test @@ -178,7 +178,7 @@ public class ZhiPuAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedEmbeddings))); - var result = embeddingClient + var result = embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null)); assertThat(result).isNotNull(); @@ -191,7 +191,7 @@ public class ZhiPuAiRetryTests { public void zhiPuAiEmbeddingNonTransientError() { when(zhiPuAiApi.embeddings(isA(EmbeddingRequest.class))) .thenThrow(new RuntimeException("Non Transient Error")); - assertThrows(RuntimeException.class, () -> embeddingClient + assertThrows(RuntimeException.class, () -> embeddingModel .call(new org.springframework.ai.embedding.EmbeddingRequest(List.of("text1", "text2"), null))); } @@ -205,7 +205,7 @@ public class ZhiPuAiRetryTests { .thenThrow(new TransientAiException("Transient Error 2")) .thenReturn(ResponseEntity.of(Optional.of(expectedResponse))); - var result = imageClient.call(new ImagePrompt(List.of(new ImageMessage("Image Message")))); + var result = imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message")))); assertThat(result).isNotNull(); assertThat(result.getResult().getOutput().getUrl()).isEqualTo("url678"); @@ -218,7 +218,7 @@ public class ZhiPuAiRetryTests { when(zhiPuAiImageApi.createImage(isA(ZhiPuAiImageRequest.class))) .thenThrow(new RuntimeException("Transient Error 1")); assertThrows(RuntimeException.class, - () -> imageClient.call(new ImagePrompt(List.of(new ImageMessage("Image Message"))))); + () -> imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message"))))); } } diff --git a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageClientIT.java b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageModelIT.java similarity index 92% rename from models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageClientIT.java rename to models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageModelIT.java index c150cce63..2c95a1499 100644 --- a/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageClientIT.java +++ b/models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/image/ZhiPuAiImageModelIT.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageOptionsBuilder; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; @@ -32,10 +32,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = ZhiPuAiTestConfiguration.class) @EnabledIfEnvironmentVariable(named = "ZHIPU_AI_API_KEY", matches = ".+") -public class ZhiPuAiImageClientIT { +public class ZhiPuAiImageModelIT { @Autowired - protected ImageClient imageClient; + protected ImageModel imageModel; @Test void imageAsUrlTest() { @@ -46,7 +46,7 @@ public class ZhiPuAiImageClientIT { ImagePrompt imagePrompt = new ImagePrompt(instructions, options); - ImageResponse imageResponse = imageClient.call(imagePrompt); + ImageResponse imageResponse = imageModel.call(imagePrompt); assertThat(imageResponse.getResults()).hasSize(1); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatClient.java index cff4f8674..bc2163765 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatClient.java @@ -15,30 +15,626 @@ */ package org.springframework.ai.chat; -import org.springframework.ai.chat.prompt.Prompt; - +import java.io.IOException; +import java.net.URL; +import java.nio.charset.Charset; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import reactor.core.publisher.Flux; + +import org.springframework.ai.chat.messages.Media; import org.springframework.ai.chat.messages.Message; +import org.springframework.ai.chat.messages.SystemMessage; import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.model.ModelClient; +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.converter.BeanOutputConverter; +import org.springframework.ai.model.function.FunctionCallback; +import org.springframework.ai.model.function.FunctionCallbackWrapper; +import org.springframework.ai.model.function.FunctionCallingOptions; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; +import org.springframework.util.MimeType; +import org.springframework.util.StringUtils; -@FunctionalInterface -public interface ChatClient extends ModelClient { +// todo support plugging in a outputConverter at runtime +// todo figure out stream and list methods +/** + * @author Mark Pollack + * @author Christian Tzolov + * @author Josh Long + * @author Arjen Poutsma + */ +public interface ChatClient { + + static ChatClientBuilder builder(ChatModel chatModel) { + return new ChatClientBuilder(chatModel); + } + + ChatClientRequest prompt(); + + ChatClientPromptRequest prompt(Prompt prompt); + + interface PromptSpec { + + T text(String text); + + T text(Resource text, Charset charset); + + T text(Resource text); + + T params(Map p); + + T param(String k, String v); + + } + + abstract class AbstractPromptSpec> implements PromptSpec { + + private String text = ""; + + private final Map params = new HashMap<>(); + + @Override + public T text(String text) { + this.text = text; + return self(); + } + + @Override + public T text(Resource text, Charset charset) { + try { + this.text(text.getContentAsString(charset)); + } + catch (IOException e) { + throw new RuntimeException(e); + } + return self(); + } + + @Override + public T text(Resource text) { + this.text(text, Charset.defaultCharset()); + return self(); + } + + @Override + public T param(String k, String v) { + this.params.put(k, v); + return self(); + } + + @Override + public T params(Map p) { + this.params.putAll(p); + return self(); + } + + protected abstract T self(); + + protected String text() { + return this.text; + } + + protected Map params() { + return this.params; + } + + } + + class UserSpec extends AbstractPromptSpec implements PromptSpec { + + private final List media = new ArrayList<>(); + + public UserSpec media(Media... media) { + this.media.addAll(Arrays.asList(media)); + return self(); + } + + public UserSpec media(MimeType mimeType, URL url) { + this.media.add(new Media(mimeType, url)); + return self(); + } + + public UserSpec media(MimeType mimeType, Resource resource) { + this.media.add(new Media(mimeType, resource)); + return self(); + } + + protected List media() { + return this.media; + } + + @Override + protected UserSpec self() { + return this; + } + + } + + class SystemSpec extends AbstractPromptSpec implements PromptSpec { + + @Override + protected SystemSpec self() { + return this; + } + + } + + class ChatClientPromptRequest { + + private final ChatModel chatModel; + + private final Prompt prompt; + + public ChatClientPromptRequest(ChatModel chatModel, Prompt prompt) { + this.chatModel = chatModel; + this.prompt = prompt; + } + + public ChatClientRequest.CallPromptResponseSpec call() { + return new ChatClientRequest.CallPromptResponseSpec(this.chatModel, this.prompt); + } + + public ChatClientRequest.StreamPromptResponseSpec stream() { + return new ChatClientRequest.StreamPromptResponseSpec((StreamingChatModel) this.chatModel, this.prompt); + } + + } + + class ChatClientRequest { + + private final ChatModel chatModel; + + private String userText = ""; + + private String systemText = ""; + + private ChatOptions chatOptions; + + private final List media = new ArrayList<>(); + + private final List functionNames = new ArrayList<>(); + + private final List functionCallbacks = new ArrayList<>(); + + private final List messages = new ArrayList<>(); + + private final Map userParams = new HashMap<>(); + + private final Map systemParams = new HashMap<>(); + + /* copy constructor */ + ChatClientRequest(ChatClientRequest ccr) { + this(ccr.chatModel, ccr.userText, ccr.systemText, ccr.functionCallbacks, ccr.functionNames, ccr.media, + ccr.chatOptions); + } + + public ChatClientRequest(ChatModel chatModel, String userText, String systemText, + List functionCallbacks, List functionNames, List media, + ChatOptions chatOptions) { + + this.chatModel = chatModel; + this.chatOptions = chatOptions != null ? chatOptions : chatModel.getDefaultOptions(); + + this.userText = userText; + this.systemText = systemText; + + this.functionNames.addAll(functionNames); + this.functionCallbacks.addAll(functionCallbacks); + this.media.addAll(media); + } + + public ChatClientRequest messages(Message... messages) { + this.messages.addAll(List.of(messages)); + return this; + } + + public ChatClientRequest messages(List messages) { + this.messages.addAll(messages); + return this; + } + + public ChatClientRequest options(T options) { + this.chatOptions = options; + return this; + } + + public ChatClientRequest function(String name, String description, + java.util.function.Function function) { + var fcw = FunctionCallbackWrapper.builder(function) + .withDescription(description) + .withName(name) + .withResponseConverter(Object::toString) + .build(); + this.functionCallbacks.add(fcw); + return this; + } + + public ChatClientRequest functions(String... functionBeanNames) { + this.functionNames.addAll(List.of(functionBeanNames)); + return this; + } + + public ChatClientRequest chatOptions(ChatOptions chatOptions) { + this.chatOptions = chatOptions; + return this; + } + + public ChatClientRequest system(String text) { + this.systemText = text; + return this; + } + + public ChatClientRequest system(Consumer consumer) { + var ss = new SystemSpec(); + consumer.accept(ss); + this.systemText = StringUtils.hasText(ss.text()) ? ss.text() : this.systemText; + this.systemParams.putAll(ss.params()); + return this; + } + + public ChatClientRequest user(String text) { + this.userText = text; + return this; + } + + public ChatClientRequest user(Consumer consumer) { + var us = new UserSpec(); + consumer.accept(us); + this.userText = StringUtils.hasText(us.text()) ? us.text() : this.userText; + this.userParams.putAll(us.params()); + this.media.addAll(us.media()); + return this; + } + + public static class StreamPromptResponseSpec { + + private final Prompt prompt; + + private final StreamingChatModel chatModel; + + public StreamPromptResponseSpec(StreamingChatModel streamingChatModel, Prompt prompt) { + this.chatModel = streamingChatModel; + this.prompt = prompt; + } + + public Flux chatResponse() { + return doGetFluxChatResponse(this.prompt); + } + + private Flux doGetFluxChatResponse(Prompt prompt) { + return this.chatModel.stream(prompt); + } + + public Flux content() { + return doGetFluxChatResponse(this.prompt).map(r -> { + if (r.getResult() == null || r.getResult().getOutput() == null + || r.getResult().getOutput().getContent() == null) { + return ""; + } + return r.getResult().getOutput().getContent(); + }).filter(v -> StringUtils.hasText(v)); + } + + } + + public static class CallPromptResponseSpec { + + private final ChatModel chatModel; + + private final Prompt prompt; + + public CallPromptResponseSpec(ChatModel chatModel, Prompt prompt) { + this.chatModel = chatModel; + this.prompt = prompt; + } + + public String content() { + return doGetChatResponse(this.prompt).getResult().getOutput().getContent(); + } + + public List contents() { + return doGetChatResponse(this.prompt).getResults() + .stream() + .map(r -> r.getOutput().getContent()) + .toList(); + } + + public ChatResponse chatResponse() { + return doGetChatResponse(this.prompt); + } + + private ChatResponse doGetChatResponse(Prompt prompt) { + return chatModel.call(prompt); + } + + } + + public static class CallResponseSpec { + + private final ChatClientRequest request; + + private final ChatModel chatModel; + + public CallResponseSpec(ChatModel chatModel, ChatClientRequest request) { + this.chatModel = chatModel; + this.request = request; + } + + public T entity(ParameterizedTypeReference type) { + return doSingleWithBeanOutputConverter(new BeanOutputConverter(type)); + } + + private T doSingleWithBeanOutputConverter(BeanOutputConverter boc) { + var processedUserText = this.request.userText + System.lineSeparator() + System.lineSeparator() + + "{format}"; + var chatResponse = doGetChatResponse(processedUserText, boc.getFormat()); + var stringResponse = chatResponse.getResult().getOutput().getContent(); + return boc.convert(stringResponse); + } + + public T entity(Class type) { + Assert.notNull(type, "the class must be non-null"); + var boc = new BeanOutputConverter(type); + return doSingleWithBeanOutputConverter(boc); + } + + private ChatResponse doGetChatResponse(String processedUserText) { + return this.doGetChatResponse(processedUserText, ""); + } + + private ChatResponse doGetChatResponse(String processedUserText, String formatParam) { + Map userParams = new HashMap<>(this.request.userParams); + if (StringUtils.hasText(formatParam)) { + userParams.put("format", formatParam); + } + + var messages = new ArrayList(); + var textsAreValid = (StringUtils.hasText(processedUserText) + || StringUtils.hasText(this.request.systemText)); + var messagesAreValid = !this.request.messages.isEmpty(); + Assert.state(!(messagesAreValid && textsAreValid), "you must specify either " + Message.class.getName() + + " instances or user/system texts, but not both"); + if (textsAreValid) { + UserMessage userMessage = null; + if (!CollectionUtils.isEmpty(userParams)) { + userMessage = new UserMessage(new PromptTemplate(processedUserText, userParams).render(), + this.request.media); + } + else { + userMessage = new UserMessage(processedUserText, this.request.media); + } + if (StringUtils.hasText(this.request.systemText) || !this.request.systemParams.isEmpty()) { + var systemMessage = new SystemMessage( + new PromptTemplate(this.request.systemText, this.request.systemParams).render()); + messages.add(systemMessage); + } + messages.add(userMessage); + } + else { + messages.addAll(this.request.messages); + } + if (this.request.chatOptions instanceof FunctionCallingOptions functionCallingOptions) { + // if (this.request.chatOptions instanceof + // FunctionCallingOptionsBuilder.PortableFunctionCallingOptions + // functionCallingOptions) { + if (!this.request.functionNames.isEmpty()) { + functionCallingOptions.setFunctions(new HashSet<>(this.request.functionNames)); + } + if (!this.request.functionCallbacks.isEmpty()) { + functionCallingOptions.setFunctionCallbacks(this.request.functionCallbacks); + } + } + var prompt = new Prompt(messages, this.request.chatOptions); + return this.chatModel.call(prompt); + } + + public ChatResponse chatResponse() { + return doGetChatResponse(this.request.userText); + } + + public String content() { + return doGetChatResponse(this.request.userText).getResult().getOutput().getContent(); + } + + public List contents() { + return doGetChatResponse(this.request.userText).getResults() + .stream() + .map(r -> r.getOutput().getContent()) + .toList(); + } + + } + + public static class StreamResponseSpec { + + private final ChatClientRequest request; + + private final StreamingChatModel chatModel; + + public StreamResponseSpec(StreamingChatModel streamingChatModel, ChatClientRequest request) { + this.chatModel = streamingChatModel; + this.request = request; + } + + private Flux doGetFluxChatResponse(String processedUserText) { + Map userParams = new HashMap<>(this.request.userParams); + + var messages = new ArrayList(); + var textsAreValid = (StringUtils.hasText(processedUserText) + || StringUtils.hasText(this.request.systemText)); + var messagesAreValid = !this.request.messages.isEmpty(); + Assert.state(!(messagesAreValid && textsAreValid), "you must specify either " + Message.class.getName() + + " instances or user/system texts, but not both"); + if (textsAreValid) { + UserMessage userMessage = null; + if (!CollectionUtils.isEmpty(userParams)) { + userMessage = new UserMessage(new PromptTemplate(processedUserText, userParams).render(), + this.request.media); + } + else { + userMessage = new UserMessage(processedUserText, this.request.media); + } + if (StringUtils.hasText(this.request.systemText) || !this.request.systemParams.isEmpty()) { + var systemMessage = new SystemMessage( + new PromptTemplate(this.request.systemText, this.request.systemParams).render()); + messages.add(systemMessage); + } + messages.add(userMessage); + } + else { + messages.addAll(this.request.messages); + } + if (this.request.chatOptions instanceof FunctionCallingOptions functionCallingOptions) { + // if (this.request.chatOptions instanceof + // FunctionCallingOptionsBuilder.PortableFunctionCallingOptions + // functionCallingOptions) { + if (!this.request.functionNames.isEmpty()) { + functionCallingOptions.setFunctions(new HashSet<>(this.request.functionNames)); + } + if (!this.request.functionCallbacks.isEmpty()) { + functionCallingOptions.setFunctionCallbacks(this.request.functionCallbacks); + } + } + var prompt = new Prompt(messages, this.request.chatOptions); + return this.chatModel.stream(prompt); + } + + public Flux chatResponse() { + return doGetFluxChatResponse(this.request.userText); + } + + public Flux content() { + return doGetFluxChatResponse(this.request.userText).map(r -> { + if (r.getResult() == null || r.getResult().getOutput() == null + || r.getResult().getOutput().getContent() == null) { + return ""; + } + return r.getResult().getOutput().getContent(); + }).filter(v -> StringUtils.hasText(v)); + } + + } + + public CallResponseSpec call() { + return new CallResponseSpec(this.chatModel, this); + } + + public StreamResponseSpec stream() { + return new StreamResponseSpec((StreamingChatModel) this.chatModel, this); + } + + } + + class ChatClientBuilder { + + private final ChatClientRequest defaultRequest; + + private final ChatModel chatModel; + + ChatClientBuilder(ChatModel chatModel) { + Assert.notNull(chatModel, "the " + ChatModel.class.getName() + " must be non-null"); + this.chatModel = chatModel; + this.defaultRequest = new ChatClientRequest(chatModel, "", "", List.of(), List.of(), List.of(), null); + } + + public ChatClient build() { + return new DefaultChatClient(this.chatModel, this.defaultRequest); + } + + public ChatClientBuilder defaultRuntimeOptions(ChatOptions chatOptions) { + this.defaultRequest.chatOptions(chatOptions); + return this; + } + + public ChatClientBuilder defaultUser(String text) { + this.defaultRequest.user(text); + return this; + } + + public ChatClientBuilder defaultUser(Consumer userSpecConsumer) { + this.defaultRequest.user(userSpecConsumer); + return this; + } + + public ChatClientBuilder defaultSystem(String text) { + this.defaultRequest.system(text); + return this; + } + + public ChatClientBuilder defaultSystem(Consumer systemSpecConsumer) { + this.defaultRequest.system(systemSpecConsumer); + return this; + } + + public ChatClientBuilder defaultFunctionWrappers(String name, String description, + java.util.function.Function function) { + this.defaultRequest.function(name, description, function); + return this; + } + + public ChatClientBuilder defaultFunctions(String... functionNames) { + this.defaultRequest.functions(functionNames); + return this; + } + + } + + /** + * Calls the underlying chat model with a prompt message and returns the output + * content of the first generation. + * @param message The message to be used as a prompt for the chat model. + * @return The output content of the first generation. + * @deprecated This method is deprecated as of version 1.0.0 M1 and will be removed in + * a future release. Use the method + * builder(chatModel).build().prompt().user(message).call().content() instead + * + */ + @Deprecated(since = "1.0.0 M1", forRemoval = true) default String call(String message) { - Prompt prompt = new Prompt(new UserMessage(message)); - Generation generation = call(prompt).getResult(); + var prompt = new Prompt(new UserMessage(message)); + var generation = call(prompt).getResult(); return (generation != null) ? generation.getOutput().getContent() : ""; } + /** + * Calls the underlying chat model with a prompt message and returns the output + * content of the first generation. + * @param messages The messages to be used as a prompt for the chat model. + * @return The output content of the first generation. + * @deprecated This method is deprecated as of version 1.0.0 M1 and will be removed in + * a future release. Use the method + * builder(chatModel).build().prompt().messages(messages).call().content() instead. + */ + @Deprecated(since = "1.0.0 M1", forRemoval = true) default String call(Message... messages) { - Prompt prompt = new Prompt(Arrays.asList(messages)); - Generation generation = call(prompt).getResult(); + var prompt = new Prompt(Arrays.asList(messages)); + var generation = call(prompt).getResult(); return (generation != null) ? generation.getOutput().getContent() : ""; } - @Override + /** + * Calls the underlying chat model with a prompt and returns the corresponding chat + * response. + * @param prompt The prompt to be used for the chat model. + * @return The chat response containing the generated messages. + * @deprecated This method is deprecated as of version 1.0.0 M1 and will be removed in + * a future release. Use the method builder(chatModel).build().prompt(prompt).call() + * instead. + */ + @Deprecated(since = "1.0.0 M1", forRemoval = true) ChatResponse call(Prompt prompt); } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatModel.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatModel.java new file mode 100644 index 000000000..4d345bd5c --- /dev/null +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatModel.java @@ -0,0 +1,47 @@ +/* + * Copyright 2023 - 2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.chat; + +import org.springframework.ai.chat.prompt.ChatOptions; +import org.springframework.ai.chat.prompt.Prompt; + +import java.util.Arrays; + +import org.springframework.ai.chat.messages.Message; +import org.springframework.ai.chat.messages.UserMessage; +import org.springframework.ai.model.Model; + +// @FunctionalInterface +public interface ChatModel extends Model { + + default String call(String message) { + Prompt prompt = new Prompt(new UserMessage(message)); + Generation generation = call(prompt).getResult(); + return (generation != null) ? generation.getOutput().getContent() : ""; + } + + default String call(Message... messages) { + Prompt prompt = new Prompt(Arrays.asList(messages)); + Generation generation = call(prompt).getResult(); + return (generation != null) ? generation.getOutput().getContent() : ""; + } + + @Override + ChatResponse call(Prompt prompt); + + ChatOptions getDefaultOptions(); + +} diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatClient.java new file mode 100644 index 000000000..a2e4dcae6 --- /dev/null +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatClient.java @@ -0,0 +1,43 @@ +package org.springframework.ai.chat; + +import org.springframework.ai.chat.prompt.Prompt; + +/** + * @author Mark Pollack + * @author Christian Tzolov + * @author Josh Long + * @author Arjen Poutsma + */ +class DefaultChatClient implements ChatClient { + + private final ChatModel chatModel; + + private final ChatClientRequest defaultChatClientRequest; + + public DefaultChatClient(ChatModel chatModel, ChatClientRequest defaultChatClientRequest) { + this.chatModel = chatModel; + this.defaultChatClientRequest = defaultChatClientRequest; + } + + @Override + public ChatClientRequest prompt() { + return new ChatClientRequest(this.defaultChatClientRequest); + } + + @Override + public ChatClientPromptRequest prompt(Prompt prompt) { + return new ChatClientPromptRequest(this.chatModel, prompt); + } + + /** + * use the new fluid DSL starting in {@link #prompt()} + * @param prompt the {@link Prompt prompt} object + * @return a {@link ChatResponse chat response} + */ + @Deprecated(forRemoval = true, since = "1.0.0 M1") + @Override + public ChatResponse call(Prompt prompt) { + return this.chatModel.call(prompt); + } + +} \ No newline at end of file diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatModel.java similarity index 91% rename from spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatModel.java index 69634b192..e6b96f30e 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatModel.java @@ -21,10 +21,10 @@ import reactor.core.publisher.Flux; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.StreamingModelClient; +import org.springframework.ai.model.StreamingModel; @FunctionalInterface -public interface StreamingChatClient extends StreamingModelClient { +public interface StreamingChatModel extends StreamingModel { default Flux stream(String message) { Prompt prompt = new Prompt(message); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/service/PromptTransformingChatService.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/service/PromptTransformingChatService.java index 761ae5f42..4cb686c3c 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/service/PromptTransformingChatService.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/service/PromptTransformingChatService.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.chat.service; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.prompt.transformer.ChatServiceContext; import org.springframework.ai.chat.prompt.transformer.PromptTransformer; @@ -35,7 +35,7 @@ import java.util.Objects; */ public class PromptTransformingChatService implements ChatService { - private ChatClient chatClient; + private ChatModel chatModel; private List retrievers; @@ -45,19 +45,19 @@ public class PromptTransformingChatService implements ChatService { private List chatServiceListeners; - public PromptTransformingChatService(ChatClient chatClient, List retrievers, + public PromptTransformingChatService(ChatModel chatModel, List retrievers, List documentPostProcessors, List augmentors, List chatServiceListeners) { - Objects.requireNonNull(chatClient, "chatClient must not be null"); - this.chatClient = chatClient; + Objects.requireNonNull(chatModel, "chatModel must not be null"); + this.chatModel = chatModel; this.retrievers = retrievers; this.documentPostProcessors = documentPostProcessors; this.augmentors = augmentors; this.chatServiceListeners = chatServiceListeners; } - public static Builder builder(ChatClient chatClient) { - return new Builder().withChatClient(chatClient); + public static Builder builder(ChatModel chatModel) { + return new Builder().withChatModel(chatModel); } @Override @@ -86,7 +86,7 @@ public class PromptTransformingChatService implements ChatService { } // Perform generation - ChatResponse chatResponse = this.chatClient.call(chatServiceContext.getPrompt()); + ChatResponse chatResponse = this.chatModel.call(chatServiceContext.getPrompt()); // Invoke Listeners onComplete ChatServiceResponse chatServiceResponse = new ChatServiceResponse(chatServiceContext, chatResponse); @@ -98,7 +98,7 @@ public class PromptTransformingChatService implements ChatService { public static class Builder { - private ChatClient chatClient; + private ChatModel chatModel; private List retrievers = new ArrayList<>(); @@ -108,8 +108,8 @@ public class PromptTransformingChatService implements ChatService { private List chatServiceListeners = new ArrayList<>(); - public Builder withChatClient(ChatClient chatClient) { - this.chatClient = chatClient; + public Builder withChatModel(ChatModel chatModel) { + this.chatModel = chatModel; return this; } @@ -134,7 +134,7 @@ public class PromptTransformingChatService implements ChatService { } public PromptTransformingChatService build() { - return new PromptTransformingChatService(chatClient, retrievers, documentPostProcessors, augmentors, + return new PromptTransformingChatService(chatModel, retrievers, documentPostProcessors, augmentors, chatServiceListeners); } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/service/StreamingPromptTransformingChatService.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/service/StreamingPromptTransformingChatService.java index c94241531..6a33a2262 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/service/StreamingPromptTransformingChatService.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/service/StreamingPromptTransformingChatService.java @@ -23,7 +23,7 @@ import org.springframework.ai.chat.prompt.transformer.ChatServiceContext; import reactor.core.publisher.Flux; import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.messages.MessageAggregator; import org.springframework.ai.chat.prompt.transformer.PromptTransformer; @@ -33,7 +33,7 @@ import org.springframework.ai.chat.prompt.transformer.PromptTransformer; */ public class StreamingPromptTransformingChatService implements StreamingChatService { - private StreamingChatClient streamingChatClient; + private StreamingChatModel streamingChatModel; private List retrievers; @@ -43,19 +43,19 @@ public class StreamingPromptTransformingChatService implements StreamingChatServ private List chatServiceListeners; - public StreamingPromptTransformingChatService(StreamingChatClient chatClient, List retrievers, + public StreamingPromptTransformingChatService(StreamingChatModel chatModel, List retrievers, List documentPostProcessors, List augmentors, List chatServiceListeners) { - Objects.requireNonNull(chatClient, "chatClient must not be null"); - this.streamingChatClient = chatClient; + Objects.requireNonNull(chatModel, "chatModel must not be null"); + this.streamingChatModel = chatModel; this.retrievers = retrievers; this.documentPostProcessors = documentPostProcessors; this.augmentors = augmentors; this.chatServiceListeners = chatServiceListeners; } - public static Builder builder(StreamingChatClient chatClient) { - return new Builder().withChatClient(chatClient); + public static Builder builder(StreamingChatModel chatModel) { + return new Builder().withChatModel(chatModel); } @Override @@ -87,7 +87,7 @@ public class StreamingPromptTransformingChatService implements StreamingChatServ final var promptContext2 = chatServiceContext; Flux fluxChatResponse = new MessageAggregator() - .aggregate(this.streamingChatClient.stream(chatServiceContext.getPrompt()), chatResponse -> { + .aggregate(this.streamingChatModel.stream(chatServiceContext.getPrompt()), chatResponse -> { for (ChatServiceListener listener : this.chatServiceListeners) { listener.onComplete(new ChatServiceResponse(promptContext2, chatResponse)); } @@ -99,7 +99,7 @@ public class StreamingPromptTransformingChatService implements StreamingChatServ public static class Builder { - private StreamingChatClient chatClient; + private StreamingChatModel chatModel; private List retrievers = new ArrayList<>(); @@ -109,8 +109,8 @@ public class StreamingPromptTransformingChatService implements StreamingChatServ private List chatServiceListeners = new ArrayList<>(); - public Builder withChatClient(StreamingChatClient chatClient) { - this.chatClient = chatClient; + public Builder withChatModel(StreamingChatModel chatModel) { + this.chatModel = chatModel; return this; } @@ -135,8 +135,8 @@ public class StreamingPromptTransformingChatService implements StreamingChatServ } public StreamingPromptTransformingChatService build() { - return new StreamingPromptTransformingChatService(chatClient, retrievers, documentPostProcessors, - augmentors, chatServiceListeners); + return new StreamingPromptTransformingChatService(chatModel, retrievers, documentPostProcessors, augmentors, + chatServiceListeners); } } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/converter/README.md b/spring-ai-core/src/main/java/org/springframework/ai/converter/README.md index f1a4f7004..6b4f9aa3f 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/converter/README.md +++ b/spring-ai-core/src/main/java/org/springframework/ai/converter/README.md @@ -1,7 +1,7 @@ # Structured Output * [Documentation](https://docs.spring.io/spring-ai/reference/concepts.html#_output_parsing) -* [Usage examples](https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java) +* [Usage examples](https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java) The output of AI models traditionally arrives as a text, even if you ask for the reply to be in JSON. It may be the correct JSON, but it isn’t a JSON data structure. diff --git a/spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingClient.java b/spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingModel.java similarity index 82% rename from spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingModel.java index b7749153f..6d857d3a3 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/embedding/AbstractEmbeddingModel.java @@ -24,12 +24,12 @@ import java.util.stream.Collectors; import org.springframework.core.io.DefaultResourceLoader; /** - * Abstract implementation of the {@link EmbeddingClient} interface that provides + * Abstract implementation of the {@link EmbeddingModel} interface that provides * dimensions calculation caching. * * @author Christian Tzolov */ -public abstract class AbstractEmbeddingClient implements EmbeddingClient { +public abstract class AbstractEmbeddingModel implements EmbeddingModel { protected final AtomicInteger embeddingDimensions = new AtomicInteger(-1); @@ -37,14 +37,14 @@ public abstract class AbstractEmbeddingClient implements EmbeddingClient { /** * Return the dimension of the requested embedding generative name. If the generative - * name is unknown uses the EmbeddingClient to perform a dummy EmbeddingClient#embed - * and count the response dimensions. - * @param embeddingClient Fall-back client to determine, empirically the dimensions. + * name is unknown uses the EmbeddingModel to perform a dummy EmbeddingModel#embed and + * count the response dimensions. + * @param embeddingModel Fall-back client to determine, empirically the dimensions. * @param modelName Embedding generative name to retrieve the dimensions for. * @param dummyContent Dummy content to use for the empirical dimension calculation. * @return Returns the embedding dimensions for the modelName. */ - public static int dimensions(EmbeddingClient embeddingClient, String modelName, String dummyContent) { + public static int dimensions(EmbeddingModel embeddingModel, String modelName, String dummyContent) { if (KNOWN_EMBEDDING_DIMENSIONS.containsKey(modelName)) { // Retrieve the dimension from a pre-configured file. @@ -53,7 +53,7 @@ public abstract class AbstractEmbeddingClient implements EmbeddingClient { else { // Determine the dimensions empirically. // Generate an embedding and count the dimension size; - return embeddingClient.embed(dummyContent).size(); + return embeddingModel.embed(dummyContent).size(); } } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingClient.java b/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingModel.java similarity index 91% rename from spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingModel.java index d9dc2f8a3..66a972f62 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingModel.java @@ -16,15 +16,15 @@ package org.springframework.ai.embedding; import org.springframework.ai.document.Document; -import org.springframework.ai.model.ModelClient; +import org.springframework.ai.model.Model; import org.springframework.util.Assert; import java.util.List; /** - * EmbeddingClient is a generic interface for embedding clients. + * EmbeddingModel is a generic interface for embedding models. */ -public interface EmbeddingClient extends ModelClient { +public interface EmbeddingModel extends Model { @Override EmbeddingResponse call(EmbeddingRequest request); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/evaluation/RelevancyEvaluator.java b/spring-ai-core/src/main/java/org/springframework/ai/evaluation/RelevancyEvaluator.java index 8afc9dcff..8a6b91815 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/evaluation/RelevancyEvaluator.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/evaluation/RelevancyEvaluator.java @@ -1,6 +1,6 @@ package org.springframework.ai.evaluation; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.MessageType; @@ -31,14 +31,14 @@ public class RelevancyEvaluator implements Evaluator { private final ChatOptions chatOptions; - private ChatClient chatClient; + private ChatModel chatModel; - public RelevancyEvaluator(ChatClient chatClient) { - this(chatClient, ChatOptionsBuilder.builder().build()); + public RelevancyEvaluator(ChatModel chatModel) { + this(chatModel, ChatOptionsBuilder.builder().build()); } - public RelevancyEvaluator(ChatClient chatClient, ChatOptions chatOptions) { - this.chatClient = chatClient; + public RelevancyEvaluator(ChatModel chatModel, ChatOptions chatOptions) { + this.chatModel = chatModel; this.chatOptions = chatOptions; } @@ -52,7 +52,7 @@ public class RelevancyEvaluator implements Evaluator { Message message = promptTemplate .createMessage(Map.of("query", query, "response", response, "context", context)); - ChatResponse chatResponse = this.chatClient.call(new Prompt(message, this.chatOptions)); + ChatResponse chatResponse = this.chatModel.call(new Prompt(message, this.chatOptions)); var evaluationResponse = chatResponse.getResult().getOutput().getContent(); boolean passing = false; diff --git a/spring-ai-core/src/main/java/org/springframework/ai/image/ImageClient.java b/spring-ai-core/src/main/java/org/springframework/ai/image/ImageModel.java similarity index 85% rename from spring-ai-core/src/main/java/org/springframework/ai/image/ImageClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/image/ImageModel.java index 7ce6a4749..493da50bf 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/image/ImageClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/image/ImageModel.java @@ -15,10 +15,10 @@ */ package org.springframework.ai.image; -import org.springframework.ai.model.ModelClient; +import org.springframework.ai.model.Model; @FunctionalInterface -public interface ImageClient extends ModelClient { +public interface ImageModel extends Model { ImageResponse call(ImagePrompt request); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/model/ModelClient.java b/spring-ai-core/src/main/java/org/springframework/ai/model/Model.java similarity index 82% rename from spring-ai-core/src/main/java/org/springframework/ai/model/ModelClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/model/Model.java index 1f114a59b..1671a3dc4 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/model/ModelClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/model/Model.java @@ -16,8 +16,8 @@ package org.springframework.ai.model; /** - * The ModelClient interface provides a generic API for invoking AI models. It is designed - * to handle the interaction with various types of AI models by abstracting the process of + * The Model interface provides a generic API for invoking AI models. It is designed to + * handle the interaction with various types of AI models by abstracting the process of * sending requests and receiving responses. The interface uses Java generics to * accommodate different types of requests and responses, enhancing flexibility and * adaptability across different AI model implementations. @@ -27,7 +27,7 @@ package org.springframework.ai.model; * @author Mark Pollack * @since 0.8.0 */ -public interface ModelClient, TRes extends ModelResponse> { +public interface Model, TRes extends ModelResponse> { /** * Executes a method call to the AI model. diff --git a/spring-ai-core/src/main/java/org/springframework/ai/model/ModelDescription.java b/spring-ai-core/src/main/java/org/springframework/ai/model/ModelDescription.java new file mode 100644 index 000000000..57b083fab --- /dev/null +++ b/spring-ai-core/src/main/java/org/springframework/ai/model/ModelDescription.java @@ -0,0 +1,38 @@ +/* + * Copyright 2024-2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.model; + +/** + * @author Christian Tzolov + */ +public interface ModelDescription { + + String getModelName(); + + default String getDescription() { + return ""; + } + + default String getVersion() { + return ""; + } + + default int getContextLength() { + return -1; + } + +} diff --git a/spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModelClient.java b/spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModel.java similarity index 82% rename from spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModelClient.java rename to spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModel.java index 4dddced14..2c1de77a9 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModelClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/model/StreamingModel.java @@ -18,8 +18,8 @@ package org.springframework.ai.model; import reactor.core.publisher.Flux; /** - * The StreamingModelClient interface provides a generic API for invoking an AI models - * with streaming response. It abstracts the process of sending requests and receiving a + * The StreamingModel interface provides a generic API for invoking an AI models with + * streaming response. It abstracts the process of sending requests and receiving a * streaming responses. The interface uses Java generics to accommodate different types of * requests and responses, enhancing flexibility and adaptability across different AI * model implementations. @@ -30,7 +30,7 @@ import reactor.core.publisher.Flux; * @author Christian Tzolov * @since 0.8.0 */ -public interface StreamingModelClient, TResChunk extends ModelResponse> { +public interface StreamingModel, TResChunk extends ModelResponse> { /** * Executes a method call to the AI model. diff --git a/spring-ai-core/src/main/java/org/springframework/ai/model/function/AbstractFunctionCallback.java b/spring-ai-core/src/main/java/org/springframework/ai/model/function/AbstractFunctionCallback.java index f4cdd4ef8..6bd639c88 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/model/function/AbstractFunctionCallback.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/model/function/AbstractFunctionCallback.java @@ -54,7 +54,7 @@ abstract class AbstractFunctionCallback implements Function, Functio /** * Constructs a new {@link AbstractFunctionCallback} with the given name, description, * input type and default object mapper. - * @param name Function name. Should be unique within the ChatClient's function + * @param name Function name. Should be unique within the ChatModel's function * registry. * @param description Function description. Used as a "system prompt" by the model to * decide if the function should be called. diff --git a/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallingOptions.java b/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallingOptions.java index 146b35c47..df603d2b3 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallingOptions.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallingOptions.java @@ -24,32 +24,32 @@ import java.util.Set; public interface FunctionCallingOptions { /** - * Function Callbacks to be registered with the ChatClient. For Prompt Options the + * Function Callbacks to be registered with the ChatModel. For Prompt Options the * functionCallbacks are automatically enabled for the duration of the prompt * execution. For Default Options the FunctionCallbacks are registered but disabled by * default. You have to use "functions" property to list the function names from the - * ChatClient registry to be used in the chat completion requests. - * @return Return the Function Callbacks to be registered with the ChatClient. + * ChatModel registry to be used in the chat completion requests. + * @return Return the Function Callbacks to be registered with the ChatModel. */ List getFunctionCallbacks(); /** - * Set the Function Callbacks to be registered with the ChatClient. + * Set the Function Callbacks to be registered with the ChatModel. * @param functionCallbacks the Function Callbacks to be registered with the - * ChatClient. + * ChatModel. */ void setFunctionCallbacks(List functionCallbacks); /** - * @return List of function names from the ChatClient registry to be used in the next + * @return List of function names from the ChatModel registry to be used in the next * chat completion requests. */ Set getFunctions(); /** - * Set the list of function names from the ChatClient registry to be used in the next + * Set the list of function names from the ChatModel registry to be used in the next * chat completion requests. - * @param functions the list of function names from the ChatClient registry to be used + * @param functions the list of function names from the ChatModel registry to be used * in the next chat completion requests. */ void setFunctions(Set functions); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/transformer/KeywordMetadataEnricher.java b/spring-ai-core/src/main/java/org/springframework/ai/transformer/KeywordMetadataEnricher.java index 67807e419..6156be16d 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/transformer/KeywordMetadataEnricher.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/transformer/KeywordMetadataEnricher.java @@ -18,7 +18,7 @@ package org.springframework.ai.transformer; import java.util.List; import java.util.Map; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.document.Document; import org.springframework.ai.document.DocumentTransformer; import org.springframework.ai.chat.prompt.Prompt; @@ -43,18 +43,18 @@ public class KeywordMetadataEnricher implements DocumentTransformer { /** * Model predictor */ - private final ChatClient chatClient; + private final ChatModel chatModel; /** * The number of keywords to extract. */ private final int keywordCount; - public KeywordMetadataEnricher(ChatClient chatClient, int keywordCount) { - Assert.notNull(chatClient, "ChatClient must not be null"); + public KeywordMetadataEnricher(ChatModel chatModel, int keywordCount) { + Assert.notNull(chatModel, "ChatModel must not be null"); Assert.isTrue(keywordCount >= 1, "Document count must be >= 1"); - this.chatClient = chatClient; + this.chatModel = chatModel; this.keywordCount = keywordCount; } @@ -64,7 +64,7 @@ public class KeywordMetadataEnricher implements DocumentTransformer { var template = new PromptTemplate(String.format(KEYWORDS_TEMPLATE, keywordCount)); Prompt prompt = template.create(Map.of(CONTEXT_STR_PLACEHOLDER, document.getContent())); - String keywords = this.chatClient.call(prompt).getResult().getOutput().getContent(); + String keywords = this.chatModel.call(prompt).getResult().getOutput().getContent(); document.getMetadata().putAll(Map.of(EXCERPT_KEYWORDS_METADATA_KEY, keywords)); } return documents; diff --git a/spring-ai-core/src/main/java/org/springframework/ai/transformer/SummaryMetadataEnricher.java b/spring-ai-core/src/main/java/org/springframework/ai/transformer/SummaryMetadataEnricher.java index e882ac497..154886a61 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/transformer/SummaryMetadataEnricher.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/transformer/SummaryMetadataEnricher.java @@ -20,7 +20,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.document.Document; import org.springframework.ai.document.DocumentTransformer; import org.springframework.ai.document.MetadataMode; @@ -62,7 +62,7 @@ public class SummaryMetadataEnricher implements DocumentTransformer { /** * AI client. */ - private final ChatClient chatClient; + private final ChatModel chatModel; /** * Number of documents from front to use for title extraction. @@ -76,16 +76,16 @@ public class SummaryMetadataEnricher implements DocumentTransformer { */ private final String summaryTemplate; - public SummaryMetadataEnricher(ChatClient chatClient, List summaryTypes) { - this(chatClient, summaryTypes, DEFAULT_SUMMARY_EXTRACT_TEMPLATE, MetadataMode.ALL); + public SummaryMetadataEnricher(ChatModel chatModel, List summaryTypes) { + this(chatModel, summaryTypes, DEFAULT_SUMMARY_EXTRACT_TEMPLATE, MetadataMode.ALL); } - public SummaryMetadataEnricher(ChatClient chatClient, List summaryTypes, String summaryTemplate, + public SummaryMetadataEnricher(ChatModel chatModel, List summaryTypes, String summaryTemplate, MetadataMode metadataMode) { - Assert.notNull(chatClient, "ChatClient must not be null"); + Assert.notNull(chatModel, "ChatModel must not be null"); Assert.hasText(summaryTemplate, "Summary template must not be empty"); - this.chatClient = chatClient; + this.chatModel = chatModel; this.summaryTypes = CollectionUtils.isEmpty(summaryTypes) ? List.of(SummaryType.CURRENT) : summaryTypes; this.metadataMode = metadataMode; this.summaryTemplate = summaryTemplate; @@ -101,7 +101,7 @@ public class SummaryMetadataEnricher implements DocumentTransformer { Prompt prompt = new PromptTemplate(this.summaryTemplate) .create(Map.of(CONTEXT_STR_PLACEHOLDER, documentContext)); - documentSummaries.add(this.chatClient.call(prompt).getResult().getOutput().getContent()); + documentSummaries.add(this.chatModel.call(prompt).getResult().getOutput().getContent()); } for (int i = 0; i < documentSummaries.size(); i++) { diff --git a/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java b/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java index 21db81da0..7c681b678 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/SimpleVectorStore.java @@ -22,7 +22,7 @@ import com.fasterxml.jackson.databind.ObjectWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.core.io.Resource; import java.io.File; @@ -61,18 +61,18 @@ public class SimpleVectorStore implements VectorStore { protected Map store = new ConcurrentHashMap<>(); - protected EmbeddingClient embeddingClient; + protected EmbeddingModel embeddingModel; - public SimpleVectorStore(EmbeddingClient embeddingClient) { - Objects.requireNonNull(embeddingClient, "EmbeddingClient must not be null"); - this.embeddingClient = embeddingClient; + public SimpleVectorStore(EmbeddingModel embeddingModel) { + Objects.requireNonNull(embeddingModel, "EmbeddingModel must not be null"); + this.embeddingModel = embeddingModel; } @Override public void add(List documents) { for (Document document : documents) { - logger.info("Calling EmbeddingClient for document id = {}", document.getId()); - List embedding = this.embeddingClient.embed(document); + logger.info("Calling EmbeddingModel for document id = {}", document.getId()); + List embedding = this.embeddingModel.embed(document); document.setEmbedding(embedding); this.store.put(document.getId(), document); } @@ -187,7 +187,7 @@ public class SimpleVectorStore implements VectorStore { } private List getUserQueryEmbedding(String query) { - return this.embeddingClient.embed(query); + return this.embeddingModel.embed(query); } public static class Similarity { diff --git a/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTest.java b/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTest.java new file mode 100644 index 000000000..44645a4e4 --- /dev/null +++ b/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTest.java @@ -0,0 +1,136 @@ +/* + * Copyright 2024-2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.chat; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +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.prompt.Prompt; +import org.springframework.ai.model.function.FunctionCallingOptions; +import org.springframework.util.MimeTypeUtils; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + +/** + * @author Christian Tzolov + */ +@ExtendWith(MockitoExtension.class) +public class ChatClientTest { + + @Mock + ChatModel chatModel; + + @Captor + ArgumentCaptor promptCaptor; + + @BeforeEach + public void beforeAll() { + when(chatModel.call(promptCaptor.capture())) + .thenReturn(new ChatResponse(List.of(new Generation("response")))); + } + + @Test + public void simpleUserPrompt() { + assertThat(ChatClient.builder(chatModel).build().prompt().user("User prompt").call().content()) + .isEqualTo("response"); + + Message userMessage = promptCaptor.getValue().getInstructions().get(0); + assertThat(userMessage.getContent()).isEqualTo("User prompt"); + assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); + } + + @Test + public void simpleUserPromptObject() throws MalformedURLException { + UserMessage message = new UserMessage("User prompt"); + Prompt prompt = new Prompt(message); + assertThat(ChatClient.builder(chatModel).build().prompt(prompt).call().content()).isEqualTo("response"); + + Message userMessage = promptCaptor.getValue().getInstructions().get(0); + assertThat(userMessage.getContent()).isEqualTo("User prompt"); + assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); + } + + @Test + public void simpleSystemPrompt() throws MalformedURLException { + String response = ChatClient.builder(chatModel).build().prompt().system("System prompt").call().content(); + + assertThat(response).isEqualTo("response"); + + assertThat(promptCaptor.getValue().getInstructions()).hasSize(2); + + Message systemMessage = promptCaptor.getValue().getInstructions().get(0); + assertThat(systemMessage.getContent()).isEqualTo("System prompt"); + assertThat(systemMessage.getMessageType()).isEqualTo(MessageType.SYSTEM); + + // Is this expected? + Message userMessage = promptCaptor.getValue().getInstructions().get(1); + assertThat(userMessage.getContent()).isEqualTo(""); + assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); + } + + @Test + public void complexCall() throws MalformedURLException { + + var options = FunctionCallingOptions.builder().build(); + when(chatModel.getDefaultOptions()).thenReturn(options); + + var url = new URL("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png"); + + // @formatter:off + ChatClient client = ChatClient.builder(chatModel) + .defaultSystem("System text") + .defaultFunctions("function1") + .build(); + + String response = client.prompt() + .user(u -> u.text("User text {music}").param("music", "Rock").media(MimeTypeUtils.IMAGE_PNG, url)) + .call() + .content(); + // @formatter:on + + assertThat(response).isEqualTo("response"); + assertThat(promptCaptor.getValue().getInstructions()).hasSize(2); + + Message systemMessage = promptCaptor.getValue().getInstructions().get(0); + assertThat(systemMessage.getContent()).isEqualTo("System text"); + assertThat(systemMessage.getMessageType()).isEqualTo(MessageType.SYSTEM); + + Message userMessage = promptCaptor.getValue().getInstructions().get(1); + assertThat(userMessage.getContent()).isEqualTo("User text Rock"); + assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); + assertThat(userMessage.getMedia()).hasSize(1); + assertThat(userMessage.getMedia().iterator().next().getMimeType()).isEqualTo(MimeTypeUtils.IMAGE_PNG); + assertThat(userMessage.getMedia().iterator().next().getData()) + .isEqualTo("https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png"); + + assertThat(options.getFunctions()).containsExactly("function1"); + } + +} diff --git a/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTests.java b/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatModelTests.java similarity index 96% rename from spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTests.java rename to spring-ai-core/src/test/java/org/springframework/ai/chat/ChatModelTests.java index 28e4a528c..5eb9796f1 100644 --- a/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatClientTests.java +++ b/spring-ai-core/src/test/java/org/springframework/ai/chat/ChatModelTests.java @@ -34,12 +34,12 @@ import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.prompt.Prompt; /** - * Unit Tests for {@link ChatClient}. + * Unit Tests for {@link ChatModel}. * * @author John Blum * @since 0.2.0 */ -class ChatClientTests { +class ChatModelTests { @Test void generateWithStringCallsGenerateWithPromptAndReturnsResponseCorrectly() { @@ -47,7 +47,7 @@ class ChatClientTests { String userMessage = "Zero Wing"; String responseMessage = "All your bases are belong to us"; - ChatClient mockClient = Mockito.mock(ChatClient.class); + ChatModel mockClient = Mockito.mock(ChatModel.class); AssistantMessage mockAssistantMessage = Mockito.mock(AssistantMessage.class); when(mockAssistantMessage.getContent()).thenReturn(responseMessage); diff --git a/spring-ai-core/src/test/java/org/springframework/ai/chat/memory/ChatMemoryTests.java b/spring-ai-core/src/test/java/org/springframework/ai/chat/memory/ChatMemoryTests.java index 741fd5341..5859d66c6 100644 --- a/spring-ai-core/src/test/java/org/springframework/ai/chat/memory/ChatMemoryTests.java +++ b/spring-ai-core/src/test/java/org/springframework/ai/chat/memory/ChatMemoryTests.java @@ -25,10 +25,10 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; -import org.springframework.ai.chat.StreamingChatClient; +import org.springframework.ai.chat.StreamingChatModel; import org.springframework.ai.chat.service.ChatServiceResponse; import org.springframework.ai.chat.service.PromptTransformingChatService; import org.springframework.ai.chat.messages.Message; @@ -48,10 +48,10 @@ import static org.mockito.Mockito.when; public class ChatMemoryTests { @Mock - ChatClient chatClient; + ChatModel chatModel; @Mock - StreamingChatClient streamingChatClient; + StreamingChatModel streamingChatModel; @Captor ArgumentCaptor promptCaptor; @@ -61,7 +61,7 @@ public class ChatMemoryTests { ChatMemory chatHistory = new InMemoryChatMemory(); - PromptTransformingChatService chatService = PromptTransformingChatService.builder(chatClient) + PromptTransformingChatService chatService = PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(ChatMemoryRetriever.builder().withChatHistory(chatHistory).build())) .withContentPostProcessors( List.of(new LastMaxTokenSizeContentTransformer(new JTokkitTokenCountEstimator(), 10))) @@ -69,7 +69,7 @@ public class ChatMemoryTests { .withChatServiceListeners(List.of(new ChatMemoryChatServiceListener(chatHistory))) .build(); - chatClientUserMessages(chatService, chatHistory); + chatModelUserMessages(chatService, chatHistory); } @Test @@ -77,7 +77,7 @@ public class ChatMemoryTests { ChatMemory chatHistory = new InMemoryChatMemory(); - PromptTransformingChatService chatService = PromptTransformingChatService.builder(chatClient) + PromptTransformingChatService chatService = PromptTransformingChatService.builder(chatModel) .withRetrievers(List.of(new ChatMemoryRetriever(chatHistory))) .withContentPostProcessors( List.of(new LastMaxTokenSizeContentTransformer(new JTokkitTokenCountEstimator(), 10))) @@ -85,12 +85,12 @@ public class ChatMemoryTests { .withChatServiceListeners(List.of(new ChatMemoryChatServiceListener(chatHistory))) .build(); - chatClientUserMessages(chatService, chatHistory); + chatModelUserMessages(chatService, chatHistory); } - public void chatClientUserMessages(PromptTransformingChatService chatService, ChatMemory chatHistory) { + public void chatModelUserMessages(PromptTransformingChatService chatService, ChatMemory chatHistory) { - when(chatClient.call(promptCaptor.capture())) + when(chatModel.call(promptCaptor.capture())) .thenReturn(new ChatResponse(List.of(new Generation("assistant:1")))) .thenReturn(new ChatResponse(List.of(new Generation("assistant:2")))) .thenReturn(new ChatResponse(List.of(new Generation("assistant:3")))); diff --git a/spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingClientTests.java b/spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingModelTests.java similarity index 82% rename from spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingClientTests.java rename to spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingModelTests.java index ad42fc271..d6d51454b 100644 --- a/spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingClientTests.java +++ b/spring-ai-core/src/test/java/org/springframework/ai/embedding/AbstractEmbeddingModelTests.java @@ -37,15 +37,15 @@ import static org.mockito.Mockito.when; * @author Christian Tzolov */ @ExtendWith(MockitoExtension.class) -public class AbstractEmbeddingClientTests { +public class AbstractEmbeddingModelTests { @Mock - private EmbeddingClient embeddingClient; + private EmbeddingModel embeddingModel; @Test public void testDefaultMethodImplementation() { - EmbeddingClient dummy = new EmbeddingClient() { + EmbeddingModel dummy = new EmbeddingModel() { @Override public List embed(String text) { @@ -79,16 +79,16 @@ public class AbstractEmbeddingClientTests { @ParameterizedTest @CsvFileSource(resources = "/embedding/embedding-model-dimensions.properties", numLinesToSkip = 1, delimiter = '=') public void testKnownEmbeddingModelDimensions(String model, String dimension) { - assertThat(AbstractEmbeddingClient.dimensions(embeddingClient, model, "Hello world!")) + assertThat(AbstractEmbeddingModel.dimensions(embeddingModel, model, "Hello world!")) .isEqualTo(Integer.valueOf(dimension)); - verify(embeddingClient, never()).embed(any(String.class)); - verify(embeddingClient, never()).embed(any(Document.class)); + verify(embeddingModel, never()).embed(any(String.class)); + verify(embeddingModel, never()).embed(any(Document.class)); } @Test public void testUnknownModelDimension() { - when(embeddingClient.embed(eq("Hello world!"))).thenReturn(List.of(0.1, 0.1, 0.1)); - assertThat(AbstractEmbeddingClient.dimensions(embeddingClient, "unknown_model", "Hello world!")).isEqualTo(3); + when(embeddingModel.embed(eq("Hello world!"))).thenReturn(List.of(0.1, 0.1, 0.1)); + assertThat(AbstractEmbeddingModel.dimensions(embeddingModel, "unknown_model", "Hello world!")).isEqualTo(3); } } diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/chat-options-flow.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/chat-options-flow.jpg index 4d259d79aed8e54f7a18a00f24d97e2e2882f4ec..a4a4ece10400036bb6125a85e3524ecb0b3ba500 100644 GIT binary patch literal 424713 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

    ^z{wBJsoXcDaI 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

    FGP9A?4Q1TbC(62tC{& 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∋!}E&{>ID*9)Hxe=b;m_b3{)u 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

    &T6)u|TP zwDHldrN3_RLHY81L6oyM$DI@eYw_VdpUym5Qc>_*Uc%m$s(qSu(&`6MhBUkz}Eow6d3iPv@v+r3Be2-7WF#DIt zz;B5`KU$@VgX%7TTIQcBg1aT2;ZF1mD^lvGFp2S-FBlW;}rzw$p7}Pj<={?w$z4t*GUt|WD&I3t@jHe<7 z!ot!`Q}v+lJ7r-OK;U6&T{5)|JSIJxO@UjD+nY{=#}RN>;bTBE;nY4stA*b)XT(6o zaa!4gb}Y}A**+Qz|8%|T%|3tgd9f|=vJ^I~i3*BmB)q+{qD~D~Wv5g~DgGsLyn6^snCk6qlZlh-@1y#=1k~Y?_x5KB zn^0PF)YL-9%KBRt{vXA5_=THJ*V!&KD^zHe%TaPg79xTs>3W7RUtCS@sGKD4hlr-H zn2g7q`!*!;V4)N$N-(vAWmVo6+p{mT?+>um&(_SmlO+%5lmq8)`x(nCv*gf)Q*5BJ zt${5d*r)z4s`hSg_$2`(P^|X5b_I|t(ljK+V}0R}wug!5p#$FkMBskH7u9k6BCEyo4SX3KjnN8kdaC z(UQNlyh(j+qtIIGT9zXZq&2V%E!zGe4lC-vwT#BJvXQ;~g+4-L}V89D#_Sgs=+TtN|0TbmnT&c}bHtv3FAj)m7GV#6L`Qt=v7Equo z;_vBbjNAY()<}EetPKD5T?d{ZrJ?E(sws;9n@J_CfGrrCt_Y4A^H%r@VpyU*CHt*) zzm!bdZ{}y`Xurj3gUvaX{LK8&<=Vbbl=M6NP2f^vZ|)J*Sl=7c``zFE2v)r0*t9_= zQ){V{_tSroC%E!mcl_t#{_p%uq6}9Agd06%{sr&Dd{<*ga?bIXt=)|5cN`p#cP;aZ zzsCKR<6o!H|2-?oe(q!y4ABUWd-FP22fkoV@72^AL_QB?24w zE$I_!bZ)0r6@d(&fZF6Kh5~spA%Yq+v$o~eo($!TMi%EYq8czBC}u!NIde_D0S%Q^BTRm0xmbLu#k80 za_r|2en#QvT=)w9xg!4ZjQSacpHayA`HuL@Yx-vt{*R)dx!)+TM0i;E@z}i}flYM@ z1v5KdA*a_1o(hN5Muv2hQYEoR0Oj&2w7aK8B)I5H>_ls~ nj(R}O*(evQ?CWxRvAlnt#s62!Gk=cv&rYoWgQ9cgm+AijYkYL& literal 173781 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 zco�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Ʉi=coi<%cNrsQgGFB6I(35w`SIY)QDJ(p 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

    FcR{W_Sb|zqb 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

    =$l&6dq8mu~QJK}tIyrcZF+#z>Y|6%JWg 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

    4nP@CbR~MdNubNbS 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 diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chatclient-function-call.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chatclient-function-call.jpg index b92da642d45f60084dede9e6b0357e5f6691377c..bef40fc97a107e5239a934f615002d26d633d2f0 100644 GIT binary patch literal 276138 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�SfXC*%ZKwT*^Z9f>vU-&nFl1 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

      %H29F5rZ<(yoR%V@lePErVZcBOORNyU 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 G4gM#f-^4lq literal 150769 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%0A+TQYWqlIAkkY7v=#f)%i70VLm*o)ey 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%0AT(VJ7{d!iFa~!Num*Ej2QtCS_niP@iXB+S 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õ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 diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-api.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-api.jpg index 371b3f4e9835cdaa8baa701810a5e58c1b83ed3f..96f33fd52f41c95265232eee64e034ad078edb7b 100644 GIT binary patch literal 361065 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 z

      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 E0vEi?DgXcg literal 197234 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 $WbkZZ^B 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

      $B0X{#OT9c@JSs{^L*H z?InE(RWK63q1sSwcL^T*%qTJ|^dIj8!IKf-yI8?Le}GWRKhL{#xXh*Qrqo6$E43Zz!3PCk%LFH$9=C;);0{9^wi9PfYqg0T%d z&{Ri!`vfs+GvROJ0+^vc2L}Bg3=CYWNfidUPbn1f33yLAM2d*QE`eCZ98ib7L&Twf z)_{1j{U-T*!A~SV_?uR+bl+5H-7N!QIdl=#7U;i7>%TE5=s!s7H!b2{(gHvHKa>)e zjEeZhP*K{##!6)-n>mkaoF-yNUdC3o(8zaD-5FC^vv;&--R6aNRjlRR_) diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-completions-clients.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-completions-clients.jpg index f20701c8274f1ae706502927de6e8ca59f943522..5e4ff4b7f31533e9c22c4c1254b998905eb85827 100644 GIT binary patch literal 302680 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 X?eA-p_=C+K3jCqKf2DxRhu(hxtZp(r literal 291284 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�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

    1. aU6{Fm^ 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

      Z`Q9Zuc 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 Xr-A$bvX=k*@!uZ!|HlJAd>{QE>A$XE diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-generic-model-api.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-generic-model-api.jpg index 4fcdadaf69095fe80cd9d32c4e4702a505f027e4..d23f3f8f5dd54dd263cf0897c12eaab224510446 100644 GIT binary patch literal 347792 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�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 z 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

      !*rB?)ZlkU%F%D} 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%0AFBWiUmSBL9P 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℞W$8*%;SpGvwAF9+LheaG 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 literal 252531 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]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 z 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 responseStream = openAiAudioSpeechClient.stream(speechPrompt); +Flux responseStream = openAiAudioSpeechModel.stream(speechPrompt); ---- == Example Code -* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientIT.java[OpenAiSpeechClientIT.java] test provides some general examples of how to use the library. +* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelIT.java[OpenAiSpeechModelIT.java] test provides some general examples of how to use the library. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions.adoc index 703f19908..08d41a9a5 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions.adoc @@ -2,4 +2,4 @@ = Transcription API Spring AI provides support for OpenAI's Transcription API. -When additional providers for Transcription are implemented, a common `AudioTranscriptionClient` interface will be extracted. \ No newline at end of file +When additional providers for Transcription are implemented, a common `AudioTranscriptionModel` interface will be extracted. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions/openai-transcriptions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions/openai-transcriptions.adoc index 5592aa266..5f352f4f9 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions/openai-transcriptions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions/openai-transcriptions.adoc @@ -37,7 +37,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man === Transcription Properties -The prefix `spring.ai.openai.audio.transcription` is used as the property prefix that lets you configure the retry mechanism for the OpenAI Image client. +The prefix `spring.ai.openai.audio.transcription` is used as the property prefix that lets you configure the retry mechanism for the OpenAI image model. [cols="3,5,2"] |==== @@ -69,7 +69,7 @@ OpenAiAudioTranscriptionOptions transcriptionOptions = OpenAiAudioTranscriptionO .withResponseFormat(responseFormat) .build(); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); -AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest); +AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest); ---- == Manual Configuration @@ -95,13 +95,13 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `OpenAiAudioTranscriptionClient` +Next, create a `OpenAiAudioTranscriptionModel` [source,java] ---- var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY")); -var openAiAudioTranscriptionClient = new OpenAiAudioTranscriptionClient(openAiAudioApi); +var openAiAudioTranscriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi); var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder() .withResponseFormat(TranscriptResponseFormat.TEXT) @@ -111,8 +111,8 @@ var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder() var audioFile = new FileSystemResource("/path/to/your/resource/speech/jfk.flac"); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); -AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest); +AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest); ---- == Example Code -* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientIT.java[OpenAiTranscriptionClientIT.java] test provides some general examples how to use the library. \ No newline at end of file +* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelIT.java[OpenAiTranscriptionModelIT.java] test provides some general examples how to use the library. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/bedrock.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/bedrock.adoc index 3bdb84e10..f8b2b2062 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/bedrock.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/bedrock.adoc @@ -2,7 +2,7 @@ link:https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html[Amazon Bedrock] is a managed service that provides foundation models from various AI providers, available through a unified API. -Spring AI supports https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html[all the Chat and Embedding AI models] available through Amazon Bedrock by implementing the Spring interfaces `ChatClient`, `StreamingChatClient`, and `EmbeddingClient`. +Spring AI supports https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html[all the Chat and Embedding AI models] available through Amazon Bedrock by implementing the Spring interfaces `ChatModel`, `StreamingChatModel`, and `EmbeddingModel`. Additionally, Spring AI provides Spring Auto-Configurations and Boot Starters for all clients, making it easy to bootstrap and configure for the Bedrock models. @@ -94,7 +94,7 @@ Here are the supported `` and `` combinations: | titan | Yes | Yes | Yes (however, no batch support) |==== -For example, to enable the Bedrock Llama Chat client, you need to set `spring.ai.bedrock.llama.chat.enabled=true`. +For example, to enable the Bedrock Llama chat model, you need to set `spring.ai.bedrock.llama.chat.enabled=true`. Next, you can use the `spring.ai.bedrock...*` properties to configure each model as provided. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/anthropic-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/anthropic-chat.adoc index def68f7c2..5858c9cef 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/anthropic-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/anthropic-chat.adoc @@ -56,7 +56,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man ==== Retry Properties -The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the Anthropic Chat client. +The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the Anthropic chat model. [cols="3,5,1"] |==== @@ -88,13 +88,13 @@ The prefix `spring.ai.anthropic` is used as the property prefix that lets you co ==== Configuration Properties -The prefix `spring.ai.anthropic.chat` is the property prefix that lets you configure the chat client implementation for Anthropic. +The prefix `spring.ai.anthropic.chat` is the property prefix that lets you configure the chat model implementation for Anthropic. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.anthropic.chat.enabled | Enable Anthropic chat client. | true +| spring.ai.anthropic.chat.enabled | Enable Anthropic chat model. | true | spring.ai.anthropic.chat.options.model | This is the Anthropic Chat model to use. Supports `claude-3-opus-20240229`, `claude-3-sonnet-20240229`, `claude-3-haiku-20240307` and the legacy `claude-2.1`, `claude-2.0` and `claude-instant-1.2` models. | `claude-3-opus-20240229` | spring.ai.anthropic.chat.options.temperature | The sampling temperature to use that controls the apparent creativity of generated completions. Higher values will make output more random while lower values will make results more focused and deterministic. It is not recommended to modify temperature and top_p for the same completions request as the interaction of these two settings is difficult to predict. | 0.8 | spring.ai.anthropic.chat.options.max-tokens | The maximum number of tokens to generate in the chat completion. The total length of input tokens and generated tokens is limited by the model's context length. | 500 @@ -102,7 +102,7 @@ The prefix `spring.ai.anthropic.chat` is the property prefix that lets you confi | spring.ai.anthropic.chat.options.top-p | Use nucleus sampling. In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You should either alter temperature or top_p, but not both. Recommended for advanced use cases only. You usually only need to use temperature. | - | spring.ai.anthropic.chat.options.top-k | Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Learn more technical details here. Recommended for advanced use cases only. You usually only need to use temperature. | - | spring.ai.mistralai.chat.options.functions | List of functions, identified by their names, to enable for function calling in a single prompt requests. Functions with those names must exist in the functionCallbacks registry. | - -| spring.ai.mistralai.chat.options.functionCallbacks | MistralAI Tool Function Callbacks to register with the ChatClient. | - +| spring.ai.mistralai.chat.options.functionCallbacks | MistralAI Tool Function Callbacks to register with the ChatModel. | - |==== TIP: All properties prefixed with `spring.ai.anthropic.chat.options` can be overridden at runtime by adding a request specific <> to the `Prompt` call. @@ -111,14 +111,14 @@ TIP: All properties prefixed with `spring.ai.anthropic.chat.options` can be over The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java[AnthropicChatOptions.java] provides model configurations, such as the model to use, the temperature, the max token count, etc. -On start-up, the default options can be configured with the `AnthropicChatClient(api, options)` constructor or the `spring.ai.anthropic.chat.options.*` properties. +On start-up, the default options can be configured with the `AnthropicChatModel(api, options)` constructor or the `spring.ai.anthropic.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", AnthropicChatOptions.builder() @@ -132,7 +132,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring == Function Calling -You can register custom Java functions with the `AnthropicChatClient` and have the Anthropic Claude model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `AnthropicChatModel` and have the Anthropic Claude model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This is a powerful technique to connect the LLM capabilities with external tools and APIs. Read more about xref:api/chat/functions/anthropic-chat-functions.adoc[Anthropic Function Calling]. @@ -146,7 +146,7 @@ Check the link:https://docs.anthropic.com/claude/docs/vision[Vision guide] for m Spring AI's `Message` interface supports multimodal AI models by introducing the Media type. This type contains data and information about media attachments in messages, using Spring's `org.springframework.util.MimeType` and a `java.lang.Object` for the raw media data. -Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatClientIT.java[AnthropicChatClientIT.java], demonstrating the combination of user text with an image. +Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java[AnthropicChatModelIT.java], demonstrating the combination of user text with an image. [source,java] ---- @@ -155,7 +155,7 @@ byte[] imageData = new ClassPathResource("/multimodal.test.png").getContentAsByt var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage))); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage))); logger.info(response.getResult().getOutput().getContent()); ---- @@ -182,7 +182,7 @@ The composition and lighting give the image a clean, minimalist aesthetic that h https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-anthropic-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic chat model: [source,application.properties] ---- @@ -194,37 +194,37 @@ spring.ai.anthropic.chat.options.max-tokens=450 TIP: replace the `api-key` with your Anthropic credentials. -This will create a `AnthropicChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `AnthropicChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final AnthropicChatClient chatClient; + private final AnthropicChatModel chatModel; @Autowired - public ChatController(AnthropicChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(AnthropicChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatClient.java[AnthropicChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Anthropic service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java[AnthropicChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Anthropic service. Add the `spring-ai-anthropic` dependency to your project's Maven `pom.xml` file: @@ -247,24 +247,24 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `AnthropicChatClient` and use it for text generations: +Next, create a `AnthropicChatModel` and use it for text generations: [source,java] ---- var anthropicApi = new AnthropicApi(System.getenv("ANTHROPIC_API_KEY")); -var chatClient = new AnthropicChatClient(anthropicApi, +var chatModel = new AnthropicChatModel(anthropicApi, AnthropicChatOptions.builder() .withModel("claude-3-opus-20240229") .withTemperature(0.4) .withMaxTokens(200) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/azure-openai-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/azure-openai-chat.adoc index 759aca404..88a7519ed 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/azure-openai-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/azure-openai-chat.adoc @@ -88,13 +88,13 @@ The prefix `spring.ai.azure.openai` is the property prefix to configure the conn | spring.ai.azure.openai.endpoint | The endpoint from the Azure AI OpenAI `Keys and Endpoint` section under `Resource Management` | - |==== -The prefix `spring.ai.azure.openai.chat` is the property prefix that configures the `ChatClient` implementation for Azure OpenAI. +The prefix `spring.ai.azure.openai.chat` is the property prefix that configures the `ChatModel` implementation for Azure OpenAI. [cols="3,5,3"] |==== | Property | Description | Default -| spring.ai.azure.openai.chat.enabled | Enable Azure OpenAI chat client. | true +| spring.ai.azure.openai.chat.enabled | Enable Azure OpenAI chat model. | true | spring.ai.azure.openai.chat.options.deployment-name | * In use with Azure, this refers to the "Deployment Name" of your model, which you can find at https://oai.azure.com/portal. It's important to note that within an Azure OpenAI deployment, the "Deployment Name" is distinct from the model itself. The confusion around these terms stems from the intention to make the Azure OpenAI client library compatible with the original OpenAI endpoint. The deployment structures offered by Azure OpenAI and Sam Altman's OpenAI differ significantly. Deployments model name to provide as part of this completions request. | gpt-35-turbo @@ -115,14 +115,14 @@ TIP: All properties prefixed with `spring.ai.azure.openai.chat.options` can be o The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java[AzureOpenAiChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `AzureOpenAiChatClient(api, options)` constructor or the `spring.ai.azure.openai.chat.options.*` properties. +On start-up, the default options can be configured with the `AzureOpenAiChatModel(api, options)` constructor or the `spring.ai.azure.openai.chat.options.*` properties. At runtime you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", AzureOpenAiChatOptions.builder() @@ -137,7 +137,7 @@ TIP: In addition to the model specific link:https://github.com/spring-projects/s == Function Calling -You can register custom Java functions with the AzureOpenAiChatClient and have the model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the AzureOpenAiChatModel and have the model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This is a powerful technique to connect the LLM capabilities with external tools and APIs. Read more about xref:api/chat/functions/azure-open-ai-chat-functions.adoc[Azure OpenAI Function Calling]. @@ -145,7 +145,7 @@ Read more about xref:api/chat/functions/azure-open-ai-chat-functions.adoc[Azure https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-azure-openai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi chat model: [source,application.properties] ---- @@ -157,8 +157,8 @@ spring.ai.azure.openai.chat.options.temperature=0.7 TIP: replace the `api-key` and `endpoint` with your Azure OpenAI credentials. -This will create a `AzureOpenAiChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `AzureOpenAiChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] @@ -166,29 +166,29 @@ Here is an example of a simple `@Controller` class that uses the chat client for @RestController public class ChatController { - private final AzureOpenAiChatClient chatClient; + private final AzureOpenAiChatModel chatModel; @Autowired - public ChatController(AzureOpenAiChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(AzureOpenAiChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatClient.java[AzureOpenAiChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the link:https://learn.microsoft.com/en-us/java/api/overview/azure/ai-openai-readme?view=azure-java-preview[Azure OpenAI Java Client]. +The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java[AzureOpenAiChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the link:https://learn.microsoft.com/en-us/java/api/overview/azure/ai-openai-readme?view=azure-java-preview[Azure OpenAI Java Client]. To enable it, add the `spring-ai-azure-openai` dependency to your project's Maven `pom.xml` file: [source, xml] @@ -210,9 +210,9 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -TIP: The `spring-ai-azure-openai` dependency also provide the access to the `AzureOpenAiChatClient`. For more information about the `AzureOpenAiChatClient` refer to the link:../chat/azure-openai-chat.html[Azure OpenAI Chat] section. +TIP: The `spring-ai-azure-openai` dependency also provide the access to the `AzureOpenAiChatModel`. For more information about the `AzureOpenAiChatModel` refer to the link:../chat/azure-openai-chat.html[Azure OpenAI Chat] section. -Next, create an `AzureOpenAiChatClient` instance and use it to generate text responses: +Next, create an `AzureOpenAiChatModel` instance and use it to generate text responses: [source,java] ---- @@ -227,13 +227,13 @@ var openAIChatOptions = AzureOpenAiChatOptions.builder() .withMaxTokens(200) .build(); -var chatClient = new AzureOpenAiChatClient(openAIClient, openAIChatOptions); +var chatModel = new AzureOpenAiChatModel(openAIClient, openAIChatOptions); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic.adoc index d6fc03d60..dde93f185 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic.adoc @@ -74,13 +74,13 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.anthropic.chat` is the property prefix that configures the chat client implementation for Claude. +The prefix `spring.ai.bedrock.anthropic.chat` is the property prefix that configures the chat model implementation for Claude. [cols="2,5,1"] |==== | Property | Description | Default -| spring.ai.bedrock.anthropic.chat.enable | Enable Bedrock Anthropic chat client. Disabled by default | false +| spring.ai.bedrock.anthropic.chat.enable | Enable Bedrock Anthropic chat model. Disabled by default | false | spring.ai.bedrock.anthropic.chat.model | The model id to use. See the https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java[AnthropicChatModel] for the supported models. | anthropic.claude-v2 | spring.ai.bedrock.anthropic.chat.options.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.8 | spring.ai.bedrock.anthropic.chat.options.topP | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default @@ -100,14 +100,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.anthropic.chat.options` can The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/AnthropicChatOptions.java[AnthropicChatOptions.java] provides model configurations, such as temperature, topK, topP, etc. -On start-up, the default options can be configured with the `BedrockAnthropicChatClient(api, options)` constructor or the `spring.ai.bedrock.anthropic.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockAnthropicChatModel(api, options)` constructor or the `spring.ai.bedrock.anthropic.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", AnthropicChatOptions.builder() @@ -122,7 +122,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic chat model: [source] ---- @@ -138,37 +138,37 @@ spring.ai.bedrock.anthropic.chat.options.top-k=15 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockAnthropicChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockAnthropicChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockAnthropicChatClient chatClient; + private final BedrockAnthropicChatModel chatModel; @Autowired - public ChatController(BedrockAnthropicChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockAnthropicChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java[BedrockAnthropicChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Bedrock Anthropic service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatModel.java[BedrockAnthropicChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Bedrock Anthropic service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -191,7 +191,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java[BedrockAnthropicChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatModel.java[BedrockAnthropicChatModel] and use it for text generations: [source,java] ---- @@ -202,7 +202,7 @@ AnthropicChatBedrockApi anthropicApi = new AnthropicChatBedrockApi( new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockAnthropicChatClient chatClient = new BedrockAnthropicChatClient(anthropicApi, +BedrockAnthropicChatModel chatModel = new BedrockAnthropicChatModel(anthropicApi, AnthropicChatOptions.builder() .withTemperature(0.6f) .withTopK(10) @@ -211,11 +211,11 @@ BedrockAnthropicChatClient chatClient = new BedrockAnthropicChatClient(anthropic .withAnthropicVersion(AnthropicChatBedrockApi.DEFAULT_ANTHROPIC_VERSION) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic3.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic3.adoc index 3b4cd66af..c03b1d7da 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic3.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-anthropic3.adoc @@ -71,13 +71,13 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.anthropic3.chat` is the property prefix that configures the chat client implementation for Claude. +The prefix `spring.ai.bedrock.anthropic3.chat` is the property prefix that configures the chat model implementation for Claude. [cols="2,5,1"] |==== | Property | Description | Default -| spring.ai.bedrock.anthropic3.chat.enable | Enable Bedrock Anthropic chat client. Disabled by default | false +| spring.ai.bedrock.anthropic3.chat.enable | Enable Bedrock Anthropic chat model. Disabled by default | false | spring.ai.bedrock.anthropic3.chat.model | The model id to use. Supports the `anthropic.claude-3-sonnet-20240229-v1:0`,`anthropic.claude-3-haiku-20240307-v1:0` and the legacy `anthropic.claude-v2`, `anthropic.claude-v2:1` and `anthropic.claude-instant-v1` models for both synchronous and streaming responses. | `anthropic.claude-3-sonnet-20240229-v1:0` | spring.ai.bedrock.anthropic3.chat.options.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.8 | spring.ai.bedrock.anthropic3.chat.options.top-p | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default @@ -97,14 +97,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.anthropic3.chat.options` ca The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/Anthropic3ChatOptions.java[Anthropic3ChatOptions.java] provides model configurations, such as temperature, topK, topP, etc. -On start-up, the default options can be configured with the `BedrockAnthropicChatClient(api, options)` constructor or the `spring.ai.bedrock.anthropic3.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockAnthropicChatModel(api, options)` constructor or the `spring.ai.bedrock.anthropic3.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", Anthropic3ChatOptions.builder() @@ -126,7 +126,7 @@ Check the link:https://docs.anthropic.com/claude/docs/vision[Vision guide] for m Spring AI's `Message` interface supports multimodal AI models by introducing the Media type. This type contains data and information about media attachments in messages, using Spring's `org.springframework.util.MimeType` and a `java.lang.Object` for the raw media data. -Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic3/Anthropic3ChatClientIT.java[Anthropic3ChatClientIT.java], demonstrating the combination of user text with an image. +Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic3/Anthropic3ChatModelIT.java[Anthropic3ChatModelIT.java], demonstrating the combination of user text with an image. [source,java] ---- @@ -135,7 +135,7 @@ Below is a simple code example extracted from https://github.com/spring-projects var userMessage = new UserMessage("Explain what do you see o this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage))); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage))); assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple", "basket"); ---- @@ -163,7 +163,7 @@ The composition and lighting give the image a clean, minimalist aesthetic that h https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic chat model: [source] ---- @@ -179,37 +179,37 @@ spring.ai.bedrock.anthropic3.chat.options.top-k=15 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockAnthropicChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockAnthropicChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockAnthropic3ChatClient chatClient; + private final BedrockAnthropic3ChatModel chatModel; @Autowired - public ChatController(BedrockAnthropic3ChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockAnthropic3ChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClient.java[BedrockAnthropic3ChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Bedrock Anthropic service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModel.java[BedrockAnthropic3ChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Bedrock Anthropic service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -232,7 +232,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClient.java[BedrockAnthropic3ChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModel.java[BedrockAnthropic3ChatModel] and use it for text generations: [source,java] ---- @@ -243,7 +243,7 @@ Anthropic3ChatBedrockApi anthropicApi = new Anthropic3ChatBedrockApi( new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockAnthropic3ChatClient chatClient = new BedrockAnthropic3ChatClient(anthropicApi, +BedrockAnthropic3ChatModel chatModel = new BedrockAnthropic3ChatModel(anthropicApi, AnthropicChatOptions.builder() .withTemperature(0.6f) .withTopK(10) @@ -252,11 +252,11 @@ BedrockAnthropic3ChatClient chatClient = new BedrockAnthropic3ChatClient(anthrop .withAnthropicVersion(AnthropicChatBedrockApi.DEFAULT_ANTHROPIC_VERSION) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-cohere.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-cohere.adoc index 8133f3bc2..c4345a46c 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-cohere.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-cohere.adoc @@ -1,6 +1,6 @@ = Cohere Chat -Provides Bedrock Cohere Chat client. +Provides Bedrock Cohere chat model. Integrate generative AI capabilities into essential apps and workflows that improve business outcomes. The https://aws.amazon.com/bedrock/cohere-command-embed/[AWS Bedrock Cohere Model Page] and https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html[Amazon Bedrock User Guide] contains detailed information on how to use the AWS hosted model. @@ -64,7 +64,7 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.cohere.chat` is the property prefix that configures the chat client implementation for Cohere. +The prefix `spring.ai.bedrock.cohere.chat` is the property prefix that configures the chat model implementation for Cohere. [cols="2,5,1"] |==== @@ -93,14 +93,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.cohere.chat.options` can be The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatOptions.java[BedrockCohereChatOptions.java] provides model configurations, such as temperature, topK, topP, etc. -On start-up, the default options can be configured with the `BedrockCohereChatClient(api, options)` constructor or the `spring.ai.bedrock.cohere.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockCohereChatModel(api, options)` constructor or the `spring.ai.bedrock.cohere.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", BedrockCohereChatOptions.builder() @@ -115,7 +115,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Cohere Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Cohere chat model: [source] ---- @@ -130,37 +130,37 @@ spring.ai.bedrock.cohere.chat.options.temperature=0.8 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockCohereChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockCohereChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockCohereChatClient chatClient; + private final BedrockCohereChatModel chatModel; @Autowired - public ChatController(BedrockCohereChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockCohereChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java[BedrockCohereChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Bedrock Cohere service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatModel.java[BedrockCohereChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Bedrock Cohere service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -183,7 +183,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java[BedrockCohereChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatModel.java[BedrockCohereChatModel] and use it for text generations: [source,java] ---- @@ -193,7 +193,7 @@ CohereChatBedrockApi api = new CohereChatBedrockApi(CohereChatModel.COHERE_COMMA new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockCohereChatClient chatClient = new BedrockCohereChatClient(api, +BedrockCohereChatModel chatModel = new BedrockCohereChatModel(api, BedrockCohereChatOptions.builder() .withTemperature(0.6f) .withTopK(10) @@ -201,11 +201,11 @@ BedrockCohereChatClient chatClient = new BedrockCohereChatClient(api, .withMaxTokens(678) .build() -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-jurassic2.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-jurassic2.adoc index cf7a083de..d1d8956ce 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-jurassic2.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-jurassic2.adoc @@ -64,7 +64,7 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne |==== -The prefix `spring.ai.bedrock.jurassic2.chat` is the property prefix that configures the chat client implementation for Jurassic-2. +The prefix `spring.ai.bedrock.jurassic2.chat` is the property prefix that configures the chat model implementation for Jurassic-2. [cols="2,5,1"] |==== @@ -86,14 +86,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.jurassic2.chat.options` can The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatOptions.java[BedrockAi21Jurassic2ChatOptions.java] provides model configurations, such as temperature, topP, maxTokens, etc. -On start-up, the default options can be configured with the `BedrockAi21Jurassic2ChatClient(api, options)` constructor or the `spring.ai.bedrock.jurassic2.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockAi21Jurassic2ChatModel(api, options)` constructor or the `spring.ai.bedrock.jurassic2.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", BedrockAi21Jurassic2ChatOptions.builder() @@ -108,7 +108,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Jurassic-2 Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Jurassic-2 chat model: [source] ---- @@ -123,24 +123,24 @@ spring.ai.bedrock.jurassic2.chat.options.temperature=0.8 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockAi21Jurassic2ChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockAi21Jurassic2ChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockAi21Jurassic2ChatClient chatClient; + private final BedrockAi21Jurassic2ChatModel chatModel; @Autowired - public ChatController(BedrockAi21Jurassic2ChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockAi21Jurassic2ChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } } @@ -148,7 +148,7 @@ public class ChatController { == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClient.java[BedrockAi21Jurassic2ChatClient] implements the `ChatClient` uses the <> to connect to the Bedrock Jurassic-2 service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModel.java[BedrockAi21Jurassic2ChatModel] implements the `ChatModel` uses the <> to connect to the Bedrock Jurassic-2 service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -171,7 +171,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatClient.java[BedrockAi21Jurassic2ChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/BedrockAi21Jurassic2ChatModel.java[BedrockAi21Jurassic2ChatModel] and use it for text generations: [source,java] ---- @@ -181,13 +181,13 @@ Ai21Jurassic2ChatBedrockApi api = new Ai21Jurassic2ChatBedrockApi(Ai21Jurassic2C new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockAi21Jurassic2ChatClient chatClient = new BedrockAi21Jurassic2ChatClient(api, +BedrockAi21Jurassic2ChatModel chatModel = new BedrockAi21Jurassic2ChatModel(api, BedrockAi21Jurassic2ChatOptions.builder() .withTemperature(0.5f) .withMaxTokens(100) .withTopP(0.9f).build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-llama.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-llama.adoc index 435b71e47..d8a0c6347 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-llama.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-llama.adoc @@ -69,7 +69,7 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne |==== -The prefix `spring.ai.bedrock.llama.chat` is the property prefix that configures the chat client implementation for Llama. +The prefix `spring.ai.bedrock.llama.chat` is the property prefix that configures the chat model implementation for Llama. [cols="2,5,1"] |==== @@ -91,14 +91,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.llama.chat.options` can be The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatOptions.java[BedrockLlChatOptions.java] provides model configurations, such as temperature, topK, topP, etc. -On start-up, the default options can be configured with the `BedrockLlamaChatClient(api, options)` constructor or the `spring.ai.bedrock.llama.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockLlamaChatModel(api, options)` constructor or the `spring.ai.bedrock.llama.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", BedrockLlamaChatOptions.builder() @@ -113,7 +113,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Anthropic chat model: [source] ---- @@ -128,37 +128,37 @@ spring.ai.bedrock.llama.chat.options.temperature=0.8 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockLlamaChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockLlamaChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockLlamaChatClient chatClient; + private final BedrockLlamaChatModel chatModel; @Autowired - public ChatController(BedrockLlamaChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockLlamaChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClient.java[BedrockLlamaChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Bedrock Anthropic service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModel.java[BedrockLlamaChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Bedrock Anthropic service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -181,7 +181,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClient.java[BedrockLlamaChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModel.java[BedrockLlamaChatModel] and use it for text generations: [source,java] ---- @@ -191,17 +191,17 @@ LlamaChatBedrockApi api = new LlamaChatBedrockApi(LlamaChatModel.LLAMA2_70B_CHAT new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockLlamaChatClient chatClient = new BedrockLlamaChatClient(api, +BedrockLlamaChatModel chatModel = new BedrockLlamaChatModel(api, BedrockLlamaChatOptions.builder() .withTemperature(0.5f) .withMaxGenLen(100) .withTopP(0.9f).build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-titan.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-titan.adoc index 38978fcfc..a1e57a357 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-titan.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/bedrock/bedrock-titan.adoc @@ -65,13 +65,13 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.titan.chat` is the property prefix that configures the chat client implementation for Titan. +The prefix `spring.ai.bedrock.titan.chat` is the property prefix that configures the chat model implementation for Titan. [cols="3,4,1"] |==== | Property | Description | Default -| spring.ai.bedrock.titan.chat.enable | Enable Bedrock Titan chat client. Disabled by default | false +| spring.ai.bedrock.titan.chat.enable | Enable Bedrock Titan chat model. Disabled by default | false | spring.ai.bedrock.titan.chat.model | The model id to use. See the link:https://github.com/spring-projects/spring-ai/blob/4839a6175cd1ec89498b97d3efb6647022c3c7cb/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java#L220[TitanChatBedrockApi#TitanChatModel] for the supported models. | amazon.titan-text-lite-v1 | spring.ai.bedrock.titan.chat.options.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.7 | spring.ai.bedrock.titan.chat.options.topP | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default @@ -89,14 +89,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.titan.chat.options` can be The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatOptions.java[BedrockTitanChatOptions.java] provides model configurations, such as temperature, topP, etc. -On start-up, the default options can be configured with the `BedrockTitanChatClient(api, options)` constructor or the `spring.ai.bedrock.titan.chat.options.*` properties. +On start-up, the default options can be configured with the `BedrockTitanChatModel(api, options)` constructor or the `spring.ai.bedrock.titan.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", BedrockTitanChatOptions.builder() @@ -111,7 +111,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-bedrock-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Titan Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Titan chat model: [source] ---- @@ -126,37 +126,37 @@ spring.ai.bedrock.titan.chat.options.temperature=0.8 TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockTitanChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockTitanChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final BedrockTitanChatClient chatClient; + private final BedrockTitanChatModel chatModel; @Autowired - public ChatController(BedrockTitanChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(BedrockTitanChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java[BedrockTitanChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Bedrock Titanic service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatModel.java[BedrockTitanChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Bedrock Titanic service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -179,7 +179,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatClient.java[BedrockTitanChatClient] and use it for text generations: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanChatModel.java[BedrockTitanChatModel] and use it for text generations: [source,java] ---- @@ -190,18 +190,18 @@ TitanChatBedrockApi titanApi = new TitanChatBedrockApi( new ObjectMapper(), Duration.ofMillis(1000L)); -BedrockTitanChatClient chatClient = new BedrockTitanChatClient(titanApi, +BedrockTitanChatModel chatModel = new BedrockTitanChatModel(titanApi, BedrockTitanChatOptions.builder() .withTemperature(0.6f) .withTopP(0.8f) .withMaxTokenCount(100) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/anthropic-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/anthropic-chat-functions.adoc index 3b4d9fcee..fea58dc1d 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/anthropic-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/anthropic-chat-functions.adoc @@ -1,6 +1,6 @@ = Anthropic Function Calling -You can register custom Java functions with the `AnthropicChatClient` and have the Anthropic models intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `AnthropicChatModel` and have the Anthropic models intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The `claude-3-opus`, `claude-3-sonnet` and `claude-3-haiku` link:https://docs.anthropic.com/claude/docs/tool-use#tool-use-best-practices-and-limitations[models are trained to detect when a function should be called] and to respond with JSON that adheres to the function signature. @@ -15,7 +15,7 @@ The `description` helps the model to understand when to call the function. As a developer, you need to implement a function that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../anthropic-chat.html#_auto_configuration[AnthropicChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../anthropic-chat.html#_auto_configuration[AnthropicChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -70,7 +70,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -136,7 +136,7 @@ static class Config { } ---- -It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `AnthropicChatClient`. +It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `AnthropicChatModel`. It also provides a description (2) and an optional response converter (3) to convert the response into a text as expected by the model. NOTE: By default, the response converter does a JSON serialization of the Response object. @@ -149,17 +149,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -AnthropicChatClient chatClient = ... +AnthropicChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), AnthropicChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and produce the final response. @@ -169,7 +169,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -AnthropicChatClient chatClient = ... +AnthropicChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in Paris?"); @@ -180,12 +180,12 @@ var promptOptions = AnthropicChatOptions.builder() new MockWeatherService()))) // function code .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `AnthropicChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `AnthropicChatModel` and use it in a prompt request. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/azure-open-ai-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/azure-open-ai-chat-functions.adoc index 755355a98..ca69472f2 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/azure-open-ai-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/azure-open-ai-chat-functions.adoc @@ -2,7 +2,7 @@ Function calling lets developers create a description of a function in their code, then pass that description to a language model in a request. The response from the model includes the name of a function that matches the description and the arguments to call it with. -You can register custom Java functions with the `AzureOpenAiChatClient` and have the model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `AzureOpenAiChatModel` and have the model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The Azure models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -16,7 +16,7 @@ In general, the custom functions need to provide a function `name`, `description As a developer, you need to implement a function that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../azure-openai-chat.html#_auto_configuration[AzureOpenAiChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../azure-openai-chat.html#_auto_configuration[AzureOpenAiChatModelAuto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -70,7 +70,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -134,7 +134,7 @@ static class Config { } ---- -It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `AzureAiChatClient` and provides a description (2). +It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `AzureAiChatModel` and provides a description (2). NOTE: The default response converter does a JSON serialization of the Response object. @@ -146,17 +146,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -AzureOpenAiChatClient chatClient = ... +AzureOpenAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), AzureOpenAiChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and the final response will be something like this: @@ -176,7 +176,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -AzureOpenAiChatClient chatClient = ... +AzureOpenAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris? Use Multi-turn function calling."); @@ -187,12 +187,12 @@ var promptOptions = AzureOpenAiChatOptions.builder() .build())) .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `AzureOpenAiChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `AzureOpenAiChatModel` and use it in a prompt request. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/minimax-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/minimax-chat-functions.adoc index 473595ca2..2d6380bd7 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/minimax-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/minimax-chat-functions.adoc @@ -1,6 +1,6 @@ = Function Calling -You can register custom Java functions with the `MiniMaxChatClient` and have the MiniMax model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `MiniMaxChatModel` and have the MiniMax model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The MiniMax models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -11,12 +11,12 @@ In general, the custom functions need to provide a function `name`, `descriptio As a developer, you need to implement a functions that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. -// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatClient`. +// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatModel`. == How it works @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../minimax-chat.html#_auto_configuration[MiniMaxChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../minimax-chat.html#_auto_configuration[MiniMaxChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -71,7 +71,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -136,7 +136,7 @@ static class Config { } ---- -It wraps the 3rd party, `MockWeatherService` function and registers it as a `CurrentWeather` function with the `MiniMaxChatClient`. +It wraps the 3rd party, `MockWeatherService` function and registers it as a `CurrentWeather` function with the `MiniMaxChatModel`. It also provides a description (2) and an optional response converter (3) to convert the response into a text as expected by the model. NOTE: By default, the response converter does a JSON serialization of the Response object. @@ -149,17 +149,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -MiniMaxChatClient chatClient = ... +MiniMaxChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and the final response will be something like this: @@ -179,7 +179,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -MiniMaxChatClient chatClient = ... +MiniMaxChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -190,18 +190,18 @@ var promptOptions = MiniMaxChatOptions.builder() new MockWeatherService()))) // function code .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `MiniMaxChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `MiniMaxChatModel` and use it in a prompt request. // // === Register Functions with Default Options // -// You can programmatically register functions with the `MiniMaxChatClient` using the `MiniMaxChatOptions#withFunctionCallbacks`: +// You can programmatically register functions with the `MiniMaxChatModel` using the `MiniMaxChatOptions#withFunctionCallbacks`: // // [source,java] // ---- @@ -215,12 +215,12 @@ The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot // new MockWeatherService()))) // function code // .build(); // -// MiniMaxChatClient chatClient = new MiniMaxChatClient(miniMaxApi, defaultOptions); +// MiniMaxChatModel chatModel = new MiniMaxChatModel(miniMaxApi, defaultOptions); // // UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); // -// ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +// ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), // MiniMaxChatOptions.builder().withFunction("CurrentWeather").build())); // Enable the function // ---- // -// NOTE: Functions are registered when MiniMaxChatClient is created, by you must enable in the Prompt the functions to be used in the request. \ No newline at end of file +// NOTE: Functions are registered when MiniMaxChatModel is created, by you must enable in the Prompt the functions to be used in the request. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/mistralai-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/mistralai-chat-functions.adoc index eb1184795..77fd3dd2e 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/mistralai-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/mistralai-chat-functions.adoc @@ -1,6 +1,6 @@ = Mistral AI Function Calling -You can register custom Java functions with the `MistralAiChatClient` and have the Mistral AI models intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `MistralAiChatModel` and have the Mistral AI models intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The `open-mixtral-8x22b`, `mistral_small_latest`, and `mistral_large_latest` models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -15,7 +15,7 @@ The `description` helps the model to understand when to call the function. As a developer, you need to implement a function that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../mistralai-chat.html#_auto_configuration[MistralAiChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../mistralai-chat.html#_auto_configuration[MistralAiChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -70,7 +70,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -139,7 +139,7 @@ static class Config { } ---- -It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `MistralAiChatClient`. +It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `MistralAiChatModel`. It also provides a description (2) and an optional response converter (3) to convert the response into a text as expected by the model. NOTE: By default, the response converter does a JSON serialization of the Response object. @@ -152,17 +152,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -MistralAiChatClient chatClient = ... +MistralAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), MistralAiChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and produce the final response. @@ -172,7 +172,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -MistralAiChatClient chatClient = ... +MistralAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in Paris?"); @@ -183,14 +183,14 @@ var promptOptions = MistralAiChatOptions.builder() new MockWeatherService()))) // function code .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java[PaymentStatusPromptIT.java] integration test provides a complete example of how to register a function with the `MistralAiChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java[PaymentStatusPromptIT.java] integration test provides a complete example of how to register a function with the `MistralAiChatModel` and use it in a prompt request. == Appendices diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/openai-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/openai-chat-functions.adoc index 0d85e488c..699bf7163 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/openai-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/openai-chat-functions.adoc @@ -1,6 +1,6 @@ = Function Calling -You can register custom Java functions with the `OpenAiChatClient` and have the OpenAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `OpenAiChatModel` and have the OpenAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The OpenAI models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -11,12 +11,12 @@ In general, the custom functions need to provide a function `name`, `descriptio As a developer, you need to implement a function that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. -// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatClient`. +// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatModel`. == How it works @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../openai-chat.html#_auto_configuration[OpenAiChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../openai-chat.html#_auto_configuration[OpenAiChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -71,7 +71,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -136,7 +136,7 @@ static class Config { } ---- -It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `OpenAiChatClient`. +It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `OpenAiChatModel`. It also provides a description (2) and an optional response converter (3) to convert the response into a text as expected by the model. NOTE: By default, the response converter does a JSON serialization of the Response object. @@ -149,17 +149,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -OpenAiChatClient chatClient = ... +OpenAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and the final response will be something like this: @@ -179,7 +179,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -OpenAiChatClient chatClient = ... +OpenAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -190,18 +190,18 @@ var promptOptions = OpenAiChatOptions.builder() new MockWeatherService()))) // function code .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `OpenAiChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `OpenAiChatModel` and use it in a prompt request. // // === Register Functions with Default Options // -// You can programmatically register functions with the `OpenAiChatClient` using the `OpenAiChatOptions#withFunctionCallbacks`: +// You can programmatically register functions with the `OpenAiChatModel` using the `OpenAiChatOptions#withFunctionCallbacks`: // // [source,java] // ---- @@ -215,24 +215,24 @@ The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot // new MockWeatherService()))) // function code // .build(); // -// OpenAiChatClient chatClient = new OpenAiChatClient(openaiApi, defaultOptions); +// OpenAiChatModel chatModel = new OpenAiChatModel(openaiApi, defaultOptions); // // UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); // -// ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +// ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), // OpenAiChatOptions.builder().withFunction("CurrentWeather").build())); // Enable the function // ---- // -// NOTE: Functions are registered when OpenAiChatClient is created, by you must enable in the Prompt the functions to be used in the request. +// NOTE: Functions are registered when OpenAiChatModel is created, by you must enable in the Prompt the functions to be used in the request. == Appendices: === Spring AI Function Calling Flow [[spring-ai-function-calling-flow]] -The following diagram illustrates the flow of the OpenAiChatClient Function Calling: +The following diagram illustrates the flow of the OpenAiChatModel Function Calling: -image:openai-chatclient-function-call.jpg[width=800, title="OpenAiChatClient Function Calling Flow"] +image:openai-chatclient-function-call.jpg[width=800, title="OpenAiChatModel Function Calling Flow"] === OpenAI API Function Calling Flow diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/vertexai-gemini-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/vertexai-gemini-chat-functions.adoc index a464ccf51..d09e0a727 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/vertexai-gemini-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/vertexai-gemini-chat-functions.adoc @@ -6,7 +6,7 @@ The parallel function calling is gone as well. Function calling lets developers create a description of a function in their code, then pass that description to a language model in a request. The response from the model includes the name of a function that matches the description and the arguments to call it with. -You can register custom Java functions with the `VertexAiGeminiChatClient` and have the Gemini Pro model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `VertexAiGeminiChatModel` and have the Gemini Pro model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The VertexAI Gemini Pro model is trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -18,12 +18,12 @@ In general, the custom functions need to provide a function `name`, `description As a developer, you need to implement a function that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. -// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatClient`. +// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatModel`. == How it works @@ -66,7 +66,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../vertexai-gemini-chat.html#_auto_configuration[VertexAiGeminiChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../vertexai-gemini-chat.html#_auto_configuration[VertexAiGeminiChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -74,7 +74,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -139,7 +139,7 @@ static class Config { } ---- -It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `VertexAiGeminiChatClient`. +It wraps the 3rd party `MockWeatherService` function and registers it as a `CurrentWeather` function with the `VertexAiGeminiChatModel`. It also provides a description (2) and sets the Schema type to Open API type (3). NOTE: The default response converter does a JSON serialization of the Response object. @@ -152,17 +152,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -VertexAiGeminiChatClient chatClient = ... +VertexAiGeminiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), VertexAiGeminiChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and the final response will be something like this: @@ -182,7 +182,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -VertexAiGeminiChatClient chatClient = ... +VertexAiGeminiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris? Use Multi-turn function calling."); @@ -194,12 +194,12 @@ var promptOptions = VertexAiGeminiChatOptions.builder() .build())) .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/gemini/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `VertexAiGeminiChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/gemini/tool/FunctionCallWithPromptFunctionIT.java[FunctionCallWithPromptFunctionIT.java] integration test provides a complete example of how to register a function with the `VertexAiGeminiChatModel` and use it in a prompt request. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/zhipuai-chat-functions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/zhipuai-chat-functions.adoc index 338505b78..de25ce8b0 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/zhipuai-chat-functions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/functions/zhipuai-chat-functions.adoc @@ -1,6 +1,6 @@ = Function Calling -You can register custom Java functions with the `ZhiPuAiChatClient` and have the ZhiPuAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the `ZhiPuAiChatModel` and have the ZhiPuAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This allows you to connect the LLM capabilities with external tools and APIs. The ZhiPuAI models are trained to detect when a function should be called and to respond with JSON that adheres to the function signature. @@ -11,12 +11,12 @@ In general, the custom functions need to provide a function `name`, `descriptio As a developer, you need to implement a functions that takes the function call arguments sent from the AI model, and respond with the result back to the model. Your function can in turn invoke other 3rd party services to provide the results. -Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatClient`. +Spring AI makes this as easy as defining a `@Bean` definition that returns a `java.util.Function` and supplying the bean name as an option when invoking the `ChatModel`. Under the hood, Spring wraps your POJO (the function) with the appropriate adapter code that enables interaction with the AI Model, saving you from writing tedious boilerplate code. The basis of the underlying infrastructure is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallback.java[FunctionCallback.java] interface and the companion link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/model/function/FunctionCallbackWrapper.java[FunctionCallbackWrapper.java] utility class to simplify the implementation and registration of Java callback functions. -// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatClient`. +// Additionally, the Auto-Configuration provides a way to auto-register any Function beans definition as function calling candidates in the `ChatModel`. == How it works @@ -62,7 +62,7 @@ public class MockWeatherService implements Function { === Registering Functions as Beans -With the link:../zhipuai-chat.html#_auto_configuration[ZhiPuAiChatClient Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. +With the link:../zhipuai-chat.html#_auto_configuration[ZhiPuAiChatModel Auto-Configuration] you have multiple ways to register custom functions as beans in the Spring context. We start with describing the most POJO friendly options. @@ -71,7 +71,7 @@ We start with describing the most POJO friendly options. In this approach you define `@Beans` in your application context as you would any other Spring managed object. -Internally, Spring AI `ChatClient` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. +Internally, Spring AI `ChatModel` will create an instance of a `FunctionCallbackWrapper` wrapper that adds the logic for it being invoked via the AI model. The name of the `@Bean` is passed as a `ChatOption`. @@ -136,7 +136,7 @@ static class Config { } ---- -It wraps the 3rd party, `MockWeatherService` function and registers it as a `CurrentWeather` function with the `ZhiPuAiChatClient`. +It wraps the 3rd party, `MockWeatherService` function and registers it as a `CurrentWeather` function with the `ZhiPuAiChatModel`. It also provides a description (2) and an optional response converter (3) to convert the response into a text as expected by the model. NOTE: By default, the response converter does a JSON serialization of the Response object. @@ -149,17 +149,17 @@ To let the model know and call your `CurrentWeather` function you need to enable [source,java] ---- -ZhiPuAiChatClient chatClient = ... +ZhiPuAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("CurrentWeather").build())); // (1) Enable the function logger.info("Response: {}", response); ---- -// NOTE: You can can have multiple functions registered in your `ChatClient` but only those enabled in the prompt request will be considered for the function calling. +// NOTE: You can can have multiple functions registered in your `ChatModel` but only those enabled in the prompt request will be considered for the function calling. Above user question will trigger 3 calls to `CurrentWeather` function (one for each city) and the final response will be something like this: @@ -179,7 +179,7 @@ In addition to the auto-configuration you can register callback functions, dynam [source,java] ---- -ZhiPuAiChatClient chatClient = ... +ZhiPuAiChatModel chatModel = ... UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -190,18 +190,18 @@ var promptOptions = ZhiPuAiChatOptions.builder() new MockWeatherService()))) // function code .build(); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); ---- NOTE: The in-prompt registered functions are enabled by default for the duration of this request. This approach allows to dynamically chose different functions to be called based on the user input. -The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `ZhiPuAiChatClient` and use it in a prompt request. +The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java[FunctionCallbackInPromptIT.java] integration test provides a complete example of how to register a function with the `ZhiPuAiChatModel` and use it in a prompt request. // // === Register Functions with Default Options // -// You can programmatically register functions with the `ZhiPuAiChatClient` using the `ZhiPuAiChatOptions#withFunctionCallbacks`: +// You can programmatically register functions with the `ZhiPuAiChatModel using the `ZhiPuAiChatOptions#withFunctionCallbacks`: // // [source,java] // ---- @@ -215,12 +215,12 @@ The https://github.com/spring-projects/spring-ai/blob/main/spring-ai-spring-boot // new MockWeatherService()))) // function code // .build(); // -// ZhiPuAiChatClient chatClient = new ZhiPuAiChatClient(zhiPuAiApi, defaultOptions); +// ZhiPuAiChatModel chatModel = new ZhiPuAiChatModel(zhiPuAiApi, defaultOptions); // // UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); // -// ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +// ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), // ZhiPuAiChatOptions.builder().withFunction("CurrentWeather").build())); // Enable the function // ---- // -// NOTE: Functions are registered when ZhiPuAiChatClient is created, by you must enable in the Prompt the functions to be used in the request. \ No newline at end of file +// NOTE: Functions are registered when ZhiPuAiChatModel is created, by you must enable in the Prompt the functions to be used in the request. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/huggingface.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/huggingface.adoc index eeb815229..a356d54f2 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/huggingface.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/huggingface.adoc @@ -27,7 +27,7 @@ export HUGGINGFACE_API_KEY=your_api_key_here TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Note, there is not yet a Spring Boot Starter for this client implementation. +Note, there is not yet a Spring Boot Starter for this chat implementation. Obtain the endpoint URL of the Inference Endpoint. You can find this on the Inference Endpoint's UI link:https://ui.endpoints.huggingface.co/[here]. @@ -36,9 +36,9 @@ You can find this on the Inference Endpoint's UI link:https://ui.endpoints.huggi [source,java] ---- -HuggingfaceChatClient client = new HuggingfaceChatClient(apiKey, basePath); +HuggingfaceChatModel chatModel = new HuggingfaceChatModel(apiKey, basePath); Prompt prompt = new Prompt("Your text here..."); -ChatResponse response = client.call(prompt); +ChatResponse response = chatModel.call(prompt); System.out.println(response.getGeneration().getText()); ---- @@ -56,7 +56,7 @@ String mistral7bInstruct = """ Just generate the JSON object without explanations: [/INST]"""; Prompt prompt = new Prompt(mistral7bInstruct); -ChatResponse aiResponse = huggingfaceChatClient.call(prompt); +ChatResponse aiResponse = huggingfaceChatModel.call(prompt); System.out.println(response.getGeneration().getText()); ---- Will produce the output diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/minimax-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/minimax-chat.adoc index 29c7ff35e..4827ac891 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/minimax-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/minimax-chat.adoc @@ -52,7 +52,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man ==== Retry Properties -The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the MiniMax Chat client. +The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the MiniMax chat model. [cols="3,5,1"] |==== @@ -81,13 +81,13 @@ The prefix `spring.ai.minimax` is used as the property prefix that lets you conn ==== Configuration Properties -The prefix `spring.ai.minimax.chat` is the property prefix that lets you configure the chat client implementation for MiniMax. +The prefix `spring.ai.minimax.chat` is the property prefix that lets you configure the chat model implementation for MiniMax. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.minimax.chat.enabled | Enable MiniMax chat client. | true +| spring.ai.minimax.chat.enabled | Enable MiniMax chat model. | true | spring.ai.minimax.chat.base-url | Optional overrides the spring.ai.minimax.base-url to provide chat specific url | https://api.minimax.chat | spring.ai.minimax.chat.api-key | Optional overrides the spring.ai.minimax.api-key to provide chat specific api-key | - | spring.ai.minimax.chat.options.model | This is the MiniMax Chat model to use | `abab5.5-chat` (the `abab5.5s-chat`, `abab5.5-chat`, and `abab6-chat` point to the latest model versions) @@ -100,7 +100,7 @@ The prefix `spring.ai.minimax.chat` is the property prefix that lets you configu | spring.ai.minimax.chat.options.stop | The model will stop generating characters specified by stop, and currently only supports a single stop word in the format of ["stop_word1"] | - |==== -NOTE: You can override the common `spring.ai.minimax.base-url` and `spring.ai.minimax.api-key` for the `ChatClient` implementations. +NOTE: You can override the common `spring.ai.minimax.base-url` and `spring.ai.minimax.api-key` for the `ChatModel` implementations. The `spring.ai.minimax.chat.base-url` and `spring.ai.minimax.chat.api-key` properties if set take precedence over the common properties. This is useful if you want to use different MiniMax accounts for different models and different model endpoints. @@ -110,14 +110,14 @@ TIP: All properties prefixed with `spring.ai.minimax.chat.options` can be overri The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatOptions.java[MiniMaxChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `MiniMaxChatClient(api, options)` constructor or the `spring.ai.minimax.chat.options.*` properties. +On start-up, the default options can be configured with the `MiniMaxChatModel(api, options)` constructor or the `spring.ai.minimax.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", MiniMaxChatOptions.builder() @@ -133,7 +133,7 @@ TIP: In addition to the model specific link:https://github.com/spring-projects/s https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-minimax-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the MiniMax Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the MiniMax chat model: [source,application.properties] ---- @@ -144,37 +144,37 @@ spring.ai.minimax.chat.options.temperature=0.7 TIP: replace the `api-key` with your MiniMax credentials. -This will create a `MiniMaxChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `MiniMaxChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final MiniMaxChatClient chatClient; + private final MiniMaxChatModel chatModel; @Autowired - public ChatController(MiniMaxChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(MiniMaxChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { var prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatClient.java[MiniMaxChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the MiniMax service. +The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxChatModel.java[MiniMaxChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the MiniMax service. Add the `spring-ai-minimax` dependency to your project's Maven `pom.xml` file: @@ -197,23 +197,23 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `MiniMaxChatClient` and use it for text generations: +Next, create a `MiniMaxChatModel` and use it for text generations: [source,java] ---- var miniMaxApi = new MiniMaxApi(System.getenv("MINIMAX_API_KEY")); -var chatClient = new MiniMaxChatClient(miniMaxApi, MiniMaxChatOptions.builder() +var chatModel = new MiniMaxChatModel(miniMaxApi, MiniMaxChatOptions.builder() .withModel(MiniMaxApi.ChatModel.GLM_3_Turbo.getValue()) .withTemperature(0.4f) .withMaxTokens(200) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux streamResponse = chatClient.stream( +Flux streamResponse = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/mistralai-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/mistralai-chat.adoc index 26fb6afee..ba184e63f 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/mistralai-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/mistralai-chat.adoc @@ -51,7 +51,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man ==== Retry Properties -The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the Mistral AI Chat client. +The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the Mistral AI chat model. [cols="3,5,1"] |==== @@ -80,13 +80,13 @@ The prefix `spring.ai.mistralai` is used as the property prefix that lets you co ==== Configuration Properties -The prefix `spring.ai.mistralai.chat` is the property prefix that lets you configure the chat client implementation for MistralAI. +The prefix `spring.ai.mistralai.chat` is the property prefix that lets you configure the chat model implementation for MistralAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.mistralai.chat.enabled | Enable MistralAI chat client. | true +| spring.ai.mistralai.chat.enabled | Enable MistralAI chat model. | true | spring.ai.mistralai.chat.base-url | Optional overrides the spring.ai.mistralai.base-url to provide chat specific url | - | spring.ai.mistralai.chat.api-key | Optional overrides the spring.ai.mistralai.api-key to provide chat specific api-key | - | spring.ai.mistralai.chat.options.model | This is the MistralAI Chat model to use | `open-mistral-7b`, `open-mixtral-8x7b`, `mistral-small-latest`, `mistral-medium-latest`, `mistral-large-latest` @@ -100,10 +100,10 @@ The prefix `spring.ai.mistralai.chat` is the property prefix that lets you confi | spring.ai.mistralai.chat.options.tools | A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. | - | spring.ai.mistralai.chat.options.toolChoice | Controls which (if any) function is called by the model. none means the model will not call a function and instead generates a message. auto means the model can pick between generating a message or calling a function. Specifying a particular function via {"type: "function", "function": {"name": "my_function"}} forces the model to call that function. none is the default when no functions are present. auto is the default if functions are present. | - | spring.ai.mistralai.chat.options.functions | List of functions, identified by their names, to enable for function calling in a single prompt requests. Functions with those names must exist in the functionCallbacks registry. | - -| spring.ai.mistralai.chat.options.functionCallbacks | MistralAI Tool Function Callbacks to register with the ChatClient. | - +| spring.ai.mistralai.chat.options.functionCallbacks | MistralAI Tool Function Callbacks to register with the ChatModel. | - |==== -NOTE: You can override the common `spring.ai.mistralai.base-url` and `spring.ai.mistralai.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.mistralai.base-url` and `spring.ai.mistralai.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.mistralai.chat.base-url` and `spring.ai.mistralai.chat.api-key` properties if set take precedence over the common properties. This is useful if you want to use different MistralAI accounts for different models and different model endpoints. @@ -113,14 +113,14 @@ TIP: All properties prefixed with `spring.ai.mistralai.chat.options` can be over The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java[MistralAiChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `MistralAiChatClient(api, options)` constructor or the `spring.ai.mistralai.chat.options.*` properties. +On start-up, the default options can be configured with the `MistralAiChatModel(api, options)` constructor or the `spring.ai.mistralai.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", MistralAiChatOptions.builder() @@ -134,7 +134,7 @@ TIP: In addition to the model specific link:https://github.com/spring-projects/s == Function Calling -You can register custom Java functions with the MistralAiChatClient and have the Mistral AI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the MistralAiChatModel and have the Mistral AI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This is a powerful technique to connect the LLM capabilities with external tools and APIs. Read more about xref:api/chat/functions/mistralai-chat-functions.adoc[Mistral AI Function Calling]. @@ -142,7 +142,7 @@ Read more about xref:api/chat/functions/mistralai-chat-functions.adoc[Mistral AI https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-mistral-ai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi chat model: [source,application.properties] ---- @@ -153,37 +153,37 @@ spring.ai.mistralai.chat.options.temperature=0.7 TIP: replace the `api-key` with your OpenAI credentials. -This will create a `MistralAiChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `MistralAiChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final MistralAiChatClient chatClient; + private final MistralAiChatModel chatModel; @Autowired - public ChatController(MistralAiChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(MistralAiChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { var prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatClient.java[MistralAiChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the MistralAI service. +The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java[MistralAiChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the MistralAI service. Add the `spring-ai-mistral-ai` dependency to your project's Maven `pom.xml` file: @@ -206,23 +206,23 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `MistralAiChatClient` and use it for text generations: +Next, create a `MistralAiChatModel` and use it for text generations: [source,java] ---- var mistralAiApi = new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY")); -var chatClient = new MistralAiChatClient(mistralAiApi, MistralAiChatOptions.builder() +var chatModel = new MistralAiChatModel(mistralAiApi, MistralAiChatOptions.builder() .withModel(MistralAiApi.ChatModel.LARGE.getValue()) .withTemperature(0.4f) .withMaxToken(200) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/ollama-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/ollama-chat.adoc index 0fb32b997..df8a98146 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/ollama-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/ollama-chat.adoc @@ -1,7 +1,7 @@ = Ollama Chat With https://ollama.ai/[Ollama] you can run various Large Language Models (LLMs) locally and generate text from them. -Spring AI supports the Ollama text generation with `OllamaChatClient`. +Spring AI supports the Ollama text generation with `OllamaChatModel`. == Prerequisites @@ -52,16 +52,16 @@ The prefix `spring.ai.ollama` is the property prefix to configure the connection | spring.ai.ollama.base-url | Base URL where Ollama API server is running. | `http://localhost:11434` |==== -The prefix `spring.ai.ollama.chat.options` is the property prefix that configures the Ollama chat client . +The prefix `spring.ai.ollama.chat.options` is the property prefix that configures the Ollama chat model . It includes the Ollama request (advanced) parameters such as the `model`, `keep-alive`, and `format` as well as the Ollama model `options` properties. -Here are the advanced request parameter for the Ollama chat client: +Here are the advanced request parameter for the Ollama chat model: [cols="3,6,1"] |==== | Property | Description | Default -| spring.ai.ollama.chat.enabled | Enable Ollama chat client. | true +| spring.ai.ollama.chat.enabled | Enable Ollama chat model. | true | spring.ai.ollama.chat.options.model | The name of the https://github.com/ollama/ollama?tab=readme-ov-file#model-library[supported model] to use. | mistral | spring.ai.ollama.chat.options.format | The format to return a response in. Currently the only accepted value is `json` | - | spring.ai.ollama.chat.options.keep_alive | Controls how long the model will stay loaded into memory following the request | 5m @@ -110,14 +110,14 @@ TIP: All properties prefixed with `spring.ai.ollama.chat.options` can be overrid The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java[OllamaOptions.java] provides model configurations, such as the model to use, the temperature, etc. -On start-up, the default options can be configured with the `OllamaChatClient(api, options)` constructor or the `spring.ai.ollama.chat.options.*` properties. +On start-up, the default options can be configured with the `OllamaChatModel(api, options)` constructor or the `spring.ai.ollama.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", OllamaOptions.create() @@ -141,7 +141,7 @@ The Ollama link:https://github.com/ollama/ollama/blob/main/docs/api.md#parameter Spring AI’s link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/messages/Message.java[Message] interface facilitates multimodal AI models by introducing the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/messages/Media.java[Media] type. This type encompasses data and details regarding media attachments in messages, utilizing Spring’s `org.springframework.util.MimeType` and a `java.lang.Object` for the raw media data. -Below is a straightforward code example excerpted from link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientMultimodalIT.java[OllamaChatClientMultimodalIT.java], illustrating the fusion of user text with an image. +Below is a straightforward code example excerpted from link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelMultimodalIT.java[OllamaChatModelMultimodalIT.java], illustrating the fusion of user text with an image. [source,java] ---- @@ -150,7 +150,7 @@ byte[] imageData = new ClassPathResource("/multimodal.test.png").getContentAsByt var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt(List.of(userMessage), OllamaOptions.create().withModel("llava"))); logger.info(response.getResult().getOutput().getContent()); @@ -174,7 +174,7 @@ where fruits are being displayed, possibly for convenience or aesthetic purposes https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-ollama-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Ollama Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the Ollama chat model: [source,application.properties] ---- @@ -185,30 +185,30 @@ spring.ai.ollama.chat.options.temperature=0.7 TIP: replace the `base-url` with your Ollama server URL. -This will create a `OllamaChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `OllamaChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final OllamaChatClient chatClient; + private final OllamaChatModel chatModel; @Autowired - public ChatController(OllamaChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(OllamaChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } @@ -216,8 +216,8 @@ public class ChatController { == Manual Configuration -If you don't want to use the Spring Boot auto-configuration, you can manually configure the `OllamaChatClient` in your application. -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatClient.java[OllamaChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the Ollama service. +If you don't want to use the Spring Boot auto-configuration, you can manually configure the `OllamaChatModel` in your application. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatModel.java[OllamaChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the Ollama service. To use it add the `spring-ai-ollama` dependency to your project's Maven `pom.xml` file: @@ -240,25 +240,25 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -TIP: The `spring-ai-ollama` dependency provides access also to the `OllamaEmbeddingClient`. -For more information about the `OllamaEmbeddingClient` refer to the link:../embeddings/ollama-embeddings.html[Ollama Embedding Client] section. +TIP: The `spring-ai-ollama` dependency provides access also to the `OllamaEmbeddingModel`. +For more information about the `OllamaEmbeddingModel` refer to the link:../embeddings/ollama-embeddings.html[Ollama Embedding Client] section. -Next, create an `OllamaChatClient` instance and use it to text generations requests: +Next, create an `OllamaChatModel` instance and use it to text generations requests: [source,java] ---- var ollamaApi = new OllamaApi(); -var chatClient = new OllamaChatClient(ollamaApi, +var chatModel = new OllamaChatModel(ollamaApi, OllamaOptions.create() .withModel(OllamaOptions.DEFAULT_MODEL) .withTemperature(0.9f)); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- @@ -274,7 +274,7 @@ image::ollama-chat-completion-api.jpg[OllamaApi Chat Completion API Diagram, 800 Here is a simple snippet showing how to use the API programmatically: -NOTE: The `OllamaApi` is low level api and is not recommended for direct use. Use the `OllamaChatClient` instead. +NOTE: The `OllamaApi` is low level api and is not recommended for direct use. Use the `OllamaChatModel` instead. [source,java] ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/openai-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/openai-chat.adoc index 440a4a6b6..5155c388e 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/openai-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/openai-chat.adoc @@ -51,7 +51,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man ==== Retry Properties -The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the OpenAI Chat client. +The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the OpenAI chat model. [cols="3,5,1"] |==== @@ -81,13 +81,13 @@ The prefix `spring.ai.openai` is used as the property prefix that lets you conne ==== Configuration Properties -The prefix `spring.ai.openai.chat` is the property prefix that lets you configure the chat client implementation for OpenAI. +The prefix `spring.ai.openai.chat` is the property prefix that lets you configure the chat model implementation for OpenAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.openai.chat.enabled | Enable OpenAI chat client. | true +| spring.ai.openai.chat.enabled | Enable OpenAI chat model. | true | spring.ai.openai.chat.base-url | Optional overrides the spring.ai.openai.base-url to provide chat specific url | - | spring.ai.openai.chat.api-key | Optional overrides the spring.ai.openai.api-key to provide chat specific api-key | - | spring.ai.openai.chat.options.model | This is the OpenAI Chat model to use | `gpt-3.5-turbo` (the `gpt-3.5-turbo`, `gpt-4`, and `gpt-4-32k` point to the latest model versions) @@ -107,7 +107,7 @@ The prefix `spring.ai.openai.chat` is the property prefix that lets you configur | spring.ai.openai.chat.options.functions | List of functions, identified by their names, to enable for function calling in a single prompt requests. Functions with those names must exist in the functionCallbacks registry. | - |==== -NOTE: You can override the common `spring.ai.openai.base-url` and `spring.ai.openai.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.openai.base-url` and `spring.ai.openai.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.openai.chat.base-url` and `spring.ai.openai.chat.api-key` properties if set take precedence over the common properties. This is useful if you want to use different OpenAI accounts for different models and different model endpoints. @@ -117,14 +117,14 @@ TIP: All properties prefixed with `spring.ai.openai.chat.options` can be overrid The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java[OpenAiChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `OpenAiChatClient(api, options)` constructor or the `spring.ai.openai.chat.options.*` properties. +On start-up, the default options can be configured with the `OpenAiChatModel(api, options)` constructor or the `spring.ai.openai.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", OpenAiChatOptions.builder() @@ -138,7 +138,7 @@ TIP: In addition to the model specific https://github.com/spring-projects/spring == Function Calling -You can register custom Java functions with the OpenAiChatClient and have the OpenAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the OpenAiChatModel and have the OpenAI model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This is a powerful technique to connect the LLM capabilities with external tools and APIs. Read more about xref:api/chat/functions/openai-chat-functions.adoc[OpenAI Function Calling]. @@ -152,7 +152,7 @@ The OpenAI link:https://platform.openai.com/docs/api-reference/chat/create#chat- Spring AI’s link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/messages/Message.java[Message] interface facilitates multimodal AI models by introducing the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/messages/Media.java[Media] type. This type encompasses data and details regarding media attachments in messages, utilizing Spring’s `org.springframework.util.MimeType` and a `java.lang.Object` for the raw media data. -Below is a code example excerpted from link:https://github.com/spring-projects/spring-ai/blob/b3cfa2b900ea785e055e4ff71086eeb52f6578a3/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java[OpenAiChatClientIT.java], illustrating the fusion of user text with an image using the the `GPT_4_VISION_PREVIEW` model. +Below is a code example excerpted from link:https://github.com/spring-projects/spring-ai/blob/b3cfa2b900ea785e055e4ff71086eeb52f6578a3/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java[OpenAiChatModelIT.java], illustrating the fusion of user text with an image using the the `GPT_4_VISION_PREVIEW` model. [source,java] ---- @@ -161,7 +161,7 @@ byte[] imageData = new ClassPathResource("/multimodal.test.png").getContentAsByt var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_VISION_PREVIEW.getValue()).build())); ---- @@ -173,7 +173,7 @@ var userMessage = new UserMessage("Explain what do you see on this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, "https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/_images/multimodal.test.png"))); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_O.getValue()).build())); ---- @@ -198,7 +198,7 @@ view of the fruit inside. https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-openai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the OpenAi chat model: [source,application.properties] ---- @@ -209,37 +209,37 @@ spring.ai.openai.chat.options.temperature=0.7 TIP: replace the `api-key` with your OpenAI credentials. -This will create a `OpenAiChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `OpenAiChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final OpenAiChatClient chatClient; + private final OpenAiChatModel chatModel; @Autowired - public ChatController(OpenAiChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(OpenAiChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatClient.java[OpenAiChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the OpenAI service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java[OpenAiChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the OpenAI service. Add the `spring-ai-openai` dependency to your project's Maven `pom.xml` file: @@ -262,7 +262,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `OpenAiChatClient` and use it for text generations: +Next, create a `OpenAiChatModel` and use it for text generations: [source,java] ---- @@ -272,14 +272,14 @@ var openAiChatOptions = OpenAiChatOptions.builder() .withTemperature(0.4) .withMaxTokens(200) .build(); -var chatClient = new OpenAiChatClient(openAiApi, openAiChatOptions) +var chatModel = new OpenAiChatModel(openAiApi, openAiChatOptions) -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux response = chatClient.stream( +Flux response = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-gemini-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-gemini-chat.adoc index ecf11add0..2f362a6a9 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-gemini-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-gemini-chat.adoc @@ -59,7 +59,7 @@ The prefix `spring.ai.vertex.ai.gemini` is used as the property prefix that lets | spring.ai.vertex.ai.gemini.transport | API transport. GRPC or REST. | GRPC |==== -The prefix `spring.ai.vertex.ai.gemini.chat` is the property prefix that lets you configure the chat client implementation for VertexAI Gemini Chat. +The prefix `spring.ai.vertex.ai.gemini.chat` is the property prefix that lets you configure the chat model implementation for VertexAI Gemini Chat. [cols="3,5,1"] |==== @@ -84,14 +84,14 @@ TIP: All properties prefixed with `spring.ai.vertex.ai.gemini.chat.options` can The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java[VertexAiGeminiChatOptions.java] provides model configurations, such as the temperature, the topK, etc. -On start-up, the default options can be configured with the `VertexAiGeminiChatClient(api, options)` constructor or the `spring.ai.vertex.ai.chat.options.*` properties. +On start-up, the default options can be configured with the `VertexAiGeminiChatModel(api, options)` constructor or the `spring.ai.vertex.ai.chat.options.*` properties. At runtime you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", VertexAiPaLm2ChatOptions.builder() @@ -109,7 +109,7 @@ WARNING: As of 30th of April 2023, the Vertex AI `Gemini Pro` model has signific Apparently the Gemini Pro can not handle anymore the function name correctly. The parallel function calling is gone as well. -You can register custom Java functions with the VertexAiGeminiChatClient and have the Gemini Pro model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. +You can register custom Java functions with the VertexAiGeminiChatModel and have the Gemini Pro model intelligently choose to output a JSON object containing arguments to call one or many of the registered functions. This is a powerful technique to connect the LLM capabilities with external tools and APIs. Read more about xref:api/chat/functions/vertexai-gemini-chat-functions.adoc[Vertex AI Gemini Function Calling]. @@ -122,7 +122,7 @@ Google's Gemini AI models support this capability by comprehending and integrati Spring AI's `Message` interface supports multimodal AI models by introducing the Media type. This type contains data and information about media attachments in messages, using Spring's `org.springframework.util.MimeType` and a `java.lang.Object` for the raw media data. -Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClientIT.java[VertexAiGeminiChatClientIT.java], demonstrating the combination of user text with an image. +Below is a simple code example extracted from https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java[VertexAiGeminiChatModelIT.java], demonstrating the combination of user text with an image. [source,java] @@ -132,14 +132,14 @@ byte[] data = new ClassPathResource("/vertex-test.png").getContentAsByteArray(); var userMessage = new UserMessage("Explain what do you see o this picture?", List.of(new Media(MimeTypeUtils.IMAGE_PNG, data))); -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage))); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage))); ---- == Sample Controller https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-vertex-ai-palm2-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi chat model: [source,application.properties] ---- @@ -151,37 +151,37 @@ spring.ai.vertex.ai.gemini.chat.options.temperature=0.5 TIP: replace the `api-key` with your VertexAI credentials. -This will create a `VertexAiGeminiChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `VertexAiGeminiChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final VertexAiGeminiChatClient chatClient; + private final VertexAiGeminiChatModel chatModel; @Autowired - public ChatController(VertexAiGeminiChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(VertexAiGeminiChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClient.java[VertexAiGeminiChatClient] implements the `ChatClient` and uses the `VertexAI` to connect to the Vertex AI Gemini service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java[VertexAiGeminiChatModel] implements the `ChatModel` and uses the `VertexAI` to connect to the Vertex AI Gemini service. Add the `spring-ai-vertex-ai-gemini` dependency to your project's Maven `pom.xml` file: @@ -204,19 +204,19 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `VertexAiGeminiChatClient` and use it for text generations: +Next, create a `VertexAiGeminiChatModel` and use it for text generations: [source,java] ---- VertexAI vertexApi = new VertexAI(projectId, location); -var chatClient = new VertexAiGeminiChatClient(vertexApi, +var chatModel = new VertexAiGeminiChatModel(vertexApi, VertexAiGeminiChatOptions.builder() .withModel(ChatModel.GEMINI_PRO_1_5_PRO) .withTemperature(0.4) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-palm2-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-palm2-chat.adoc index 045df41e2..4b928067e 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-palm2-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/vertexai-palm2-chat.adoc @@ -61,13 +61,13 @@ The prefix `spring.ai.vertex.ai` is used as the property prefix that lets you co | spring.ai.vertex.ai.api-key | The API Key | - |==== -The prefix `spring.ai.vertex.ai.chat` is the property prefix that lets you configure the chat client implementation for VertexAI Chat. +The prefix `spring.ai.vertex.ai.chat` is the property prefix that lets you configure the chat model implementation for VertexAI Chat. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.vertex.ai.chat.enabled | Enable Vertex AI PaLM API Chat client. | true +| spring.ai.vertex.ai.chat.enabled | Enable Vertex AI PaLM API chat model. | true | spring.ai.vertex.ai.chat.model | This is the https://cloud.google.com/vertex-ai/docs/generative-ai/model-reference/text-chat[Vertex Chat model] to use | chat-bison-001 | spring.ai.vertex.ai.chat.options.temperature | Controls the randomness of the output. Values can range over [0.0,1.0], inclusive. A value closer to 1.0 will produce responses that are more varied, while a value closer to 0.0 will typically result in less surprising responses from the generative. This value specifies default to be used by the backend while making the call to the generative. | 0.7 | spring.ai.vertex.ai.chat.options.topK | The maximum number of tokens to consider when sampling. The generative uses combined Top-k and nucleus sampling. Top-k sampling considers the set of topK most probable tokens. | 20 @@ -81,14 +81,14 @@ TIP: All properties prefixed with `spring.ai.vertex.ai.chat.options` can be over The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2ChatOptions.java[VertexAiPaLm2ChatOptions.java] provides model configurations, such as the temperature, the topK, etc. -On start-up, the default options can be configured with the `VertexAiPaLm2ChatClient(api, options)` constructor or the `spring.ai.vertex.ai.chat.options.*` properties. +On start-up, the default options can be configured with the `VertexAiPaLm2ChatModel(api, options)` constructor or the `spring.ai.vertex.ai.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", VertexAiPaLm2ChatOptions.builder() @@ -103,7 +103,7 @@ TIP: In addition to the model specific `VertexAiPaLm2ChatOptions` you can use a https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-vertex-ai-palm2-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi chat model: [source,application.properties] ---- @@ -114,37 +114,37 @@ spring.ai.vertex.ai.chat.options.temperature=0.5 TIP: replace the `api-key` with your VertexAI credentials. -This will create a `VertexAiPaLm2ChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `VertexAiPaLm2ChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final VertexAiPaLm2ChatClient chatClient; + private final VertexAiPaLm2ChatModel chatModel; @Autowired - public ChatController(VertexAiPaLm2ChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(VertexAiPaLm2ChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { Prompt prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/vertexai/paml2/VertexAiPaLm2ChatClient.java[VertexAiPaLm2ChatClient] implements the `ChatClient` and uses the <> to connect to the VertexAI service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/vertexai/paml2/VertexAiPaLm2ChatModel.java[VertexAiPaLm2ChatModel] implements the `ChatModel` and uses the <> to connect to the VertexAI service. Add the `spring-ai-vertex-ai-palm2` dependency to your project's Maven `pom.xml` file: @@ -167,18 +167,18 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `VertexAiPaLm2ChatClient` and use it for text generations: +Next, create a `VertexAiPaLm2ChatModel` and use it for text generations: [source,java] ---- VertexAiPaLm2Api vertexAiApi = new VertexAiPaLm2Api(< YOUR PALM_API_KEY>); -var chatClient = new VertexAiPaLm2ChatClient(vertexAiApi, +var chatModel = new VertexAiPaLm2ChatModel(vertexAiApi, VertexAiPaLm2ChatOptions.builder() .withTemperature(0.4) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/watsonx-ai-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/watsonx-ai-chat.adoc index 79ce3d8d9..4b085b72b 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/watsonx-ai-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/watsonx-ai-chat.adoc @@ -1,7 +1,7 @@ = watsonx.ai Chat With https://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/overview-wx.html?context=wx&audience=wdp[watsonx.ai] you can run various Large Language Models (LLMs) locally and generate text from them. -Spring AI supports the watsonx.ai text generation with `WatsonxAiChatClient`. +Spring AI supports the watsonx.ai text generation with `WatsonxAiChatModel`. == Prerequisites @@ -53,13 +53,13 @@ The prefix `spring.ai.watsonx.ai` is used as the property prefix that lets you c ==== Configuration Properties -The prefix `spring.ai.watsonx.ai.chat` is the property prefix that lets you configure the chat client implementation for Watsonx.AI. +The prefix `spring.ai.watsonx.ai.chat` is the property prefix that lets you configure the chat model implementation for Watsonx.AI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.watsonx.ai.chat.enabled | Enable Watsonx.AI chat client. | true +| spring.ai.watsonx.ai.chat.enabled | Enable Watsonx.AI chat model. | true | spring.ai.watsonx.ai.chat.options.temperature | The temperature of the model. Increasing the temperature will make the model answer more creatively. | 0.7 | spring.ai.watsonx.ai.chat.options.top-p | Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.2) will generate more focused and conservative text. | 1.0 | spring.ai.watsonx.ai.chat.options.top-k | Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. | 50 @@ -76,14 +76,14 @@ The prefix `spring.ai.watsonx.ai.chat` is the property prefix that lets you conf The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-watsonx-ai/src/main/java/org/springframework/ai/watsonx/WatsonxAiChatOptions.java[WatsonxAiChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `WatsonxAiChatClient(api, options)` constructor or the `spring.ai.watsonxai.chat.options.*` properties. +On start-up, the default options can be configured with the `WatsonxAiChatModel(api, options)` constructor or the `spring.ai.watsonxai.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", WatsonxAiChatOptions.builder() @@ -103,11 +103,11 @@ NOTE: For more information go to https://dataplatform.cloud.ibm.com/docs/content public class MyClass { private final static String MODEL = "google/flan-ul2"; - private final WatsonxAiChatClient chat; + private final WatsonxAiChatModel chatModel; @Autowired - MyClass(WatsonxAiChatClient chat) { - this.chat = chat; + MyClass(WatsonxAiChatModel chatModel) { + this.chatModel = chatModel; } public String generate(String userInput) { @@ -119,7 +119,7 @@ public class MyClass { Prompt prompt = new Prompt(new SystemMessage(userInput), options); - var results = chat.call(prompt); + var results = chatModel.call(prompt); var generatedText = results.getResult().getOutput().getContent(); @@ -135,7 +135,7 @@ public class MyClass { Prompt prompt = new Prompt(new SystemMessage(userInput), options); - var results = chat.stream(prompt).collectList().block(); // wait till the stream is resolved (completed) + var results = chatModel.stream(prompt).collectList().block(); // wait till the stream is resolved (completed) var generatedText = results.stream() .map(generation -> generation.getResult().getOutput().getContent()) diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/zhipuai-chat.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/zhipuai-chat.adoc index a88b2526e..fd4cf5a03 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/zhipuai-chat.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/zhipuai-chat.adoc @@ -52,7 +52,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man ==== Retry Properties -The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the ZhiPu AI Chat client. +The prefix `spring.ai.retry` is used as the property prefix that lets you configure the retry mechanism for the ZhiPu AI chat model. [cols="3,5,1"] |==== @@ -81,13 +81,13 @@ The prefix `spring.ai.zhiPu` is used as the property prefix that lets you connec ==== Configuration Properties -The prefix `spring.ai.zhipuai.chat` is the property prefix that lets you configure the chat client implementation for ZhiPuAI. +The prefix `spring.ai.zhipuai.chat` is the property prefix that lets you configure the chat model implementation for ZhiPuAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.zhipuai.chat.enabled | Enable ZhiPuAI chat client. | true +| spring.ai.zhipuai.chat.enabled | Enable ZhiPuAI chat model. | true | spring.ai.zhipuai.chat.base-url | Optional overrides the spring.ai.zhipuai.base-url to provide chat specific url | https://open.bigmodel.cn/api/paas | spring.ai.zhipuai.chat.api-key | Optional overrides the spring.ai.zhipuai.api-key to provide chat specific api-key | - | spring.ai.zhipuai.chat.options.model | This is the ZhiPuAI Chat model to use | `GLM-3-Turbo` (the `GLM-3-Turbo`, `GLM-4`, and `GLM-4V` point to the latest model versions) @@ -101,7 +101,7 @@ The prefix `spring.ai.zhipuai.chat` is the property prefix that lets you configu | spring.ai.zhipuai.chat.options.user | A unique identifier representing your end-user, which can help ZhiPuAI to monitor and detect abuse. | - |==== -NOTE: You can override the common `spring.ai.zhipuai.base-url` and `spring.ai.zhipuai.api-key` for the `ChatClient` implementations. +NOTE: You can override the common `spring.ai.zhipuai.base-url` and `spring.ai.zhipuai.api-key` for the `ChatModel` implementations. The `spring.ai.zhipuai.chat.base-url` and `spring.ai.zhipuai.chat.api-key` properties if set take precedence over the common properties. This is useful if you want to use different ZhiPuAI accounts for different models and different model endpoints. @@ -111,14 +111,14 @@ TIP: All properties prefixed with `spring.ai.zhipuai.chat.options` can be overri The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatOptions.java[ZhiPuAiChatOptions.java] provides model configurations, such as the model to use, the temperature, the frequency penalty, etc. -On start-up, the default options can be configured with the `ZhiPuAiChatClient(api, options)` constructor or the `spring.ai.zhipuai.chat.options.*` properties. +On start-up, the default options can be configured with the `ZhiPuAiChatModel(api, options)` constructor or the `spring.ai.zhipuai.chat.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `Prompt` call. For example to override the default model and temperature for a specific request: [source,java] ---- -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt( "Generate the names of 5 famous pirates.", ZhiPuAiChatOptions.builder() @@ -134,7 +134,7 @@ TIP: In addition to the model specific link:https://github.com/spring-projects/s https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-zhipuai-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the ZhiPuAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the ZhiPuAi chat model: [source,application.properties] ---- @@ -145,37 +145,37 @@ spring.ai.zhipuai.chat.options.temperature=0.7 TIP: replace the `api-key` with your ZhiPuAI credentials. -This will create a `ZhiPuAiChatClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `ZhiPuAiChatModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class ChatController { - private final ZhiPuAiChatClient chatClient; + private final ZhiPuAiChatModel chatModel; @Autowired - public ChatController(ZhiPuAiChatClient chatClient) { - this.chatClient = chatClient; + public ChatController(ZhiPuAiChatModel chatModel) { + this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - return Map.of("generation", chatClient.call(message)); + return Map.of("generation", chatModel.call(message)); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { var prompt = new Prompt(new UserMessage(message)); - return chatClient.stream(prompt); + return chatModel.stream(prompt); } } ---- == Manual Configuration -The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatClient.java[ZhiPuAiChatClient] implements the `ChatClient` and `StreamingChatClient` and uses the <> to connect to the ZhiPuAI service. +The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiChatModel.java[ZhiPuAiChatModel] implements the `ChatModel` and `StreamingChatModel` and uses the <> to connect to the ZhiPuAI service. Add the `spring-ai-zhipuai` dependency to your project's Maven `pom.xml` file: @@ -198,23 +198,23 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `ZhiPuAiChatClient` and use it for text generations: +Next, create a `ZhiPuAiChatModel` and use it for text generations: [source,java] ---- var zhiPuAiApi = new ZhiPuAiApi(System.getenv("ZHIPU_AI_API_KEY")); -var chatClient = new ZhiPuAiChatClient(zhiPuAiApi, ZhiPuAiChatOptions.builder() +var chatModel = new ZhiPuAiChatModel(zhiPuAiApi, ZhiPuAiChatOptions.builder() .withModel(ZhiPuAiApi.ChatModel.GLM_3_Turbo.getValue()) .withTemperature(0.4f) .withMaxTokens(200) .build()); -ChatResponse response = chatClient.call( +ChatResponse response = chatModel.call( new Prompt("Generate the names of 5 famous pirates.")); // Or with streaming responses -Flux streamResponse = chatClient.stream( +Flux streamResponse = chatModel.stream( new Prompt("Generate the names of 5 famous pirates.")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc index 42f7857a5..1dfc16309 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc @@ -1,27 +1,27 @@ -[[ChatClient]] -= Chat Completion API +[[ChatModel]] += Chat Model API -The Chat Completion API offers developers the ability to integrate AI-powered chat completion capabilities into their applications. It leverages pre-trained language models, such as GPT (Generative Pre-trained Transformer), to generate human-like responses to user inputs in natural language. +The Chat Model API offers developers the ability to integrate AI-powered chat completion capabilities into their applications. It leverages pre-trained language models, such as GPT (Generative Pre-trained Transformer), to generate human-like responses to user inputs in natural language. The API typically works by sending a prompt or partial conversation to the AI model, which then generates a completion or continuation of the conversation based on its training data and understanding of natural language patterns. The completed response is then returned to the application, which can present it to the user or use it for further processing. -The `Spring AI Chat Completion API` is designed to be a simple and portable interface for interacting with various xref:concepts.adoc#_models[AI Models], allowing developers to switch between different models with minimal code changes. +The `Spring AI Chat Model API` is designed to be a simple and portable interface for interacting with various xref:concepts.adoc#_models[AI Models], allowing developers to switch between different models with minimal code changes. This design aligns with Spring's philosophy of modularity and interchangeability. -Also with the help of companion classes like `Prompt` for input encapsulation and `ChatResponse` for output handling, the Chat Completion API unifies the communication with AI Models. +Also with the help of companion classes like `Prompt` for input encapsulation and `ChatResponse` for output handling, the Chat Model API unifies the communication with AI Models. It manages the complexity of request preparation and response parsing, offering a direct and simplified API interaction. == API Overview -This section provides a guide to the Spring AI Chat Completion API interface and associated classes. +This section provides a guide to the Spring AI Chat Model API interface and associated classes. -=== ChatClient +=== ChatModel -Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatClient.java[ChatClient] interface definition: +Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/ChatModel.java[ChatModel] interface definition: [source,java] ---- -public interface ChatClient extends ModelClient { +public interface ChatModel extends Model { default String call(String message) {// implementation omitted } @@ -35,19 +35,19 @@ public interface ChatClient extends ModelClient { The `call` method with a `String` parameter simplifies initial use, avoiding the complexities of the more sophisticated `Prompt` and `ChatResponse` classes. In real-world applications, it is more common to use the `call` method that takes a `Prompt` instance and returns an `ChatResponse`. -=== StreamingChatClient +=== StreamingChatModel -Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatClient.java[StreamingChatClient] interface definition: +Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/chat/StreamingChatModel.java[StreamingChatModel] interface definition: [source,java] ---- -public interface StreamingChatClient extends StreamingModelClient { +public interface StreamingChatModel extends StreamingModel { @Override Flux stream(Prompt prompt); } ---- -The `stream` method takes a `Prompt` request similar to `ChatClient` but it streams the responses using the reactive Flux API. +The `stream` method takes a `Prompt` request similar to `ChatModel` but it streams the responses using the reactive Flux API. === Prompt @@ -130,7 +130,7 @@ public interface ChatOptions extends ModelOptions { } ---- -Additionally, every model specific ChatClient/StreamingChatClient implementation can have its own options that can be passed to the AI model. For example, the OpenAI Chat Completion model has its own options like `presencePenalty`, `frequencyPenalty`, `bestOf` etc. +Additionally, every model specific ChatModel/StreamingChatModel implementation can have its own options that can be passed to the AI model. For example, the OpenAI Chat Completion model has its own options like `presencePenalty`, `frequencyPenalty`, `bestOf` etc. This is a powerful feature that allows developers to use model specific options when starting the application and then override them with at runtime using the Prompt request: @@ -184,7 +184,7 @@ public class Generation implements ModelResult { == Available Implementations -The `ChatClient` and `StreamingChatClient` implementations are provided for the following Model providers: +The `ChatModel` and `StreamingChatModel` implementations are provided for the following Model providers: image::spring-ai-chat-completions-clients.jpg[align="center", width="800px"] @@ -205,7 +205,7 @@ image::spring-ai-chat-completions-clients.jpg[align="center", width="800px"] == Chat Model API -The Spring AI Chat Completion API is build on top of the Spring AI `Generic Model API` providing Chat specific abstractions and implementations. Following class diagram illustrates the main classes and interfaces of the Spring AI Chat Completion API. +The Spring AI Chat Model API is build on top of the Spring AI `Generic Model API` providing Chat specific abstractions and implementations. Following class diagram illustrates the main classes and interfaces of the Spring AI Chat Model API. image::spring-ai-chat-api.jpg[align="center", width="900px"] diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings.adoc index 5bd3ce6c7..d6140e23d 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings.adoc @@ -1,23 +1,23 @@ -[[EmbeddingClient]] -= Embeddings API +[[EmbeddingModel]] += Embeddings Model API -The `EmbeddingClient` interface is designed for straightforward integration with embedding models in AI and machine learning. +The `EmbeddingModel` interface is designed for straightforward integration with embedding models in AI and machine learning. Its primary function is to convert text into numerical vectors, commonly referred to as embeddings. These embeddings are crucial for various tasks such as semantic analysis and text classification. -The design of the EmbeddingClient interface centers around two primary goals: +The design of the EmbeddingModel interface centers around two primary goals: * *Portability*: This interface ensures easy adaptability across various embedding models. It allows developers to switch between different embedding techniques or models with minimal code changes. This design aligns with Spring's philosophy of modularity and interchangeability. -* *Simplicity*: EmbeddingClient simplifies the process of converting text to embeddings. +* *Simplicity*: EmbeddingModel simplifies the process of converting text to embeddings. By providing straightforward methods like `embed(String text)` and `embed(Document document)`, it takes the complexity out of dealing with raw text data and embedding algorithms. This design choice makes it easier for developers, especially those new to AI, to utilize embeddings in their applications without delving deep into the underlying mechanics. == API Overview -The Embedding API is built on top of the generic https://github.com/spring-projects/spring-ai/tree/main/spring-ai-core/src/main/java/org/springframework/ai/model[Spring AI Model API], which is a part of the Spring AI library. -As such, the EmbeddingClient interface extends the `ModelClient` interface, which provides a standard set of methods for interacting with AI models. The `EmbeddingRequest` and `EmbeddingResponse` classes extend from the `ModelRequest` and `ModelResponse` are used to encapsulate the input and output of the embedding models, respectively. +The Embedding Model API is built on top of the generic https://github.com/spring-projects/spring-ai/tree/main/spring-ai-core/src/main/java/org/springframework/ai/model[Spring AI Model API], which is a part of the Spring AI library. +As such, the EmbeddingModel interface extends the `Model` interface, which provides a standard set of methods for interacting with AI models. The `EmbeddingRequest` and `EmbeddingResponse` classes extend from the `ModelRequest` and `ModelResponse` are used to encapsulate the input and output of the embedding models, respectively. The Embedding API in turn is used by higher-level components to implement Embedding Clients for specific embedding models, such as OpenAI, Titan, Azure OpenAI, Ollie, and others. @@ -25,13 +25,13 @@ Following diagram illustrates the Embedding API and its relationship with the Sp image:embeddings-api.jpg[title=Embeddings API,align=center,width=900] -=== EmbeddingClient +=== EmbeddingModel -This section provides a guide to the `EmbeddingClient` interface and associated classes. +This section provides a guide to the `EmbeddingModel` interface and associated classes. [source,java] ---- -public interface EmbeddingClient extends ModelClient { +public interface EmbeddingModel extends Model { @Override EmbeddingResponse call(EmbeddingRequest request); @@ -148,7 +148,7 @@ public class Embedding implements ModelResult> { == Available Implementations [[available-implementations]] -Internally the various `EmbeddingClient` implementations use different low-level libraries and APIs to perform the embedding tasks. The following are some of the available implementations of the `EmbeddingClient` implementations: +Internally the various `EmbeddingModel` implementations use different low-level libraries and APIs to perform the embedding tasks. The following are some of the available implementations of the `EmbeddingModel` implementations: * xref:api/embeddings/openai-embeddings.adoc[Spring AI OpenAI Embeddings] * xref:api/embeddings/azure-openai-embeddings.adoc[Spring AI Azure OpenAI Embeddings] diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/azure-openai-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/azure-openai-embeddings.adoc index 402e6f0c2..53ae973dc 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/azure-openai-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/azure-openai-embeddings.adoc @@ -66,13 +66,13 @@ The prefix `spring.ai.azure.openai` is the property prefix to configure the conn |==== -The prefix `spring.ai.azure.openai.embedding` is the property prefix that configures the `EmbeddingClient` implementation for Azure OpenAI +The prefix `spring.ai.azure.openai.embedding` is the property prefix that configures the `EmbeddingModel` implementation for Azure OpenAI [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.azure.openai.embedding.enabled | Enable Azure OpenAI embedding client. | true +| spring.ai.azure.openai.embedding.enabled | Enable Azure OpenAI embedding model. | true | spring.ai.azure.openai.embedding.metadata-mode | Document content extraction mode | EMBED | spring.ai.azure.openai.embedding.options.deployment-name | This is the value of the 'Deployment Name' as presented in the Azure AI Portal | text-embedding-ada-002 | spring.ai.azure.openai.embedding.options.user | An identifier for the caller or end user of the operation. This may be used for tracking or rate-limiting purposes. | - @@ -85,14 +85,14 @@ TIP: All properties prefixed with `spring.ai.azure.openai.embedding.options` can The `AzureOpenAiEmbeddingOptions` provides the configuration information for the embedding requests. The `AzureOpenAiEmbeddingOptions` offers a builder to create the options. -At start time use the `AzureOpenAiEmbeddingClient` constructor to set the default options used for all embedding requests. +At start time use the `AzureOpenAiEmbeddingModel` constructor to set the default options used for all embedding requests. At run-time you can override the default options, by passing a `AzureOpenAiEmbeddingOptions` instance with your to the `EmbeddingRequest` request. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), AzureOpenAiEmbeddingOptions.builder() .withModel("Different-Embedding-Model-Deployment-Name") @@ -102,8 +102,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Code -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,application.properties] ---- @@ -117,16 +117,16 @@ spring.ai.azure.openai.embedding.options.model=text-embedding-ada-002 @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -134,7 +134,7 @@ public class EmbeddingController { == Manual Configuration -If you prefer not to use the Spring Boot auto-configuration, you can manually configure the `AzureOpenAiEmbeddingClient` in your application. +If you prefer not to use the Spring Boot auto-configuration, you can manually configure the `AzureOpenAiEmbeddingModel` in your application. For this add the `spring-ai-azure-openai` dependency to your project's Maven `pom.xml` file: [source, xml] ---- @@ -155,9 +155,9 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-azure-openai` dependency also provide the access to the `AzureOpenAiEmbeddingClient`. For more information about the `AzureOpenAiChatClient` refer to the link:../embeddings/azure-openai-embeddings.html[Azure OpenAI Embeddings] section. +NOTE: The `spring-ai-azure-openai` dependency also provide the access to the `AzureOpenAiEmbeddingModel`. For more information about the `AzureOpenAiChatModel` refer to the link:../embeddings/azure-openai-embeddings.html[Azure OpenAI Embeddings] section. -Next, create an `AzureOpenAiEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `AzureOpenAiEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- @@ -166,13 +166,13 @@ var openAIClient = OpenAIClientBuilder() .endpoint(System.getenv("AZURE_OPENAI_ENDPOINT")) .buildClient(); -var embeddingClient = new AzureOpenAiEmbeddingClient(openAIClient) +var embeddingModel = new AzureOpenAiEmbeddingModel(openAIClient) .withDefaultOptions(AzureOpenAiEmbeddingOptions.builder() .withModel("text-embedding-ada-002") .withUser("user-6") .build()); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-cohere-embedding.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-cohere-embedding.adoc index 2d596bb4b..e4dcee9b6 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-cohere-embedding.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-cohere-embedding.adoc @@ -62,7 +62,7 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.cohere.embedding` (defined in `BedrockCohereEmbeddingProperties`) is the property prefix that configures the embedding client implementation for Cohere. +The prefix `spring.ai.bedrock.cohere.embedding` (defined in `BedrockCohereEmbeddingProperties`) is the property prefix that configures the embedding model implementation for Cohere. [cols="3,4,1"] |==== @@ -83,14 +83,14 @@ TIP: All properties prefixed with `spring.ai.bedrock.cohere.embedding.options` c The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingOptions.java[BedrockCohereEmbeddingOptions.java] provides model configurations, such as `input-type` or `truncate`. -On start-up, the default options can be configured with the `BedrockCohereEmbeddingClient(api, options)` constructor or the `spring.ai.bedrock.cohere.embedding.options.*` properties. +On start-up, the default options can be configured with the `BedrockCohereEmbeddingModel(api, options)` constructor or the `spring.ai.bedrock.cohere.embedding.options.*` properties. At run-time you can override the default options by adding new, request specific, options to the `EmbeddingRequest` call. For example to override the default temperature for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), BedrockCohereEmbeddingOptions.builder() .withInputType(InputType.SEARCH_DOCUMENT) @@ -115,24 +115,24 @@ spring.ai.bedrock.cohere.embedding.options.input-type=search-document TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. -This will create a `BedrockCohereEmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +This will create a `BedrockCohereEmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -140,7 +140,7 @@ public class EmbeddingController { == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java[BedrockCohereEmbeddingClient] implements the `EmbeddingClient` and uses the <> to connect to the Bedrock Cohere service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java[BedrockCohereEmbeddingModel] implements the `EmbeddingModel` and uses the <> to connect to the Bedrock Cohere service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -163,7 +163,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java[BedrockCohereEmbeddingClient] and use it for text embeddings: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java[BedrockCohereEmbeddingModel] and use it for text embeddings: [source,java] ---- @@ -172,9 +172,9 @@ var cohereEmbeddingApi =new CohereEmbeddingBedrockApi( EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); -var embeddingClient = new BedrockCohereEmbeddingClient(cohereEmbeddingApi); +var embeddingModel = new BedrockCohereEmbeddingModel(cohereEmbeddingApi); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-titan-embedding.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-titan-embedding.adoc index e1a5a6600..b93685458 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-titan-embedding.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/bedrock-titan-embedding.adoc @@ -69,7 +69,7 @@ The prefix `spring.ai.bedrock.aws` is the property prefix to configure the conne | spring.ai.bedrock.aws.secret-key | AWS secret key. | - |==== -The prefix `spring.ai.bedrock.titan.embedding` (defined in `BedrockTitanEmbeddingProperties`) is the property prefix that configures the embedding client implementation for Titan. +The prefix `spring.ai.bedrock.titan.embedding` (defined in `BedrockTitanEmbeddingProperties`) is the property prefix that configures the embedding model implementation for Titan. [cols="3,4,1"] |==== @@ -84,14 +84,14 @@ Model ID values can also be found in the https://docs.aws.amazon.com/bedrock/lat == Runtime Options [[embedding-options]] The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingOptions.java[BedrockTitanEmbeddingOptions.java] provides model configurations, such as `input-type`. -On start-up, the default options can be configured with the `BedrockTitanEmbeddingClient(api).withInputType(type)` method or the `spring.ai.bedrock.titan.embedding.input-type` properties. +On start-up, the default options can be configured with the `BedrockTitanEmbeddingModel(api).withInputType(type)` method or the `spring.ai.bedrock.titan.embedding.input-type` properties. At run-time you can override the default options by adding new, request specific, options to the `EmbeddingRequest` call. For example to override the default temperature for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), BedrockTitanEmbeddingOptions.builder() .withInputType(InputType.TEXT) @@ -116,23 +116,23 @@ spring.ai.bedrock.titan.embedding.enabled=true TIP: replace the `regions`, `access-key` and `secret-key` with your AWS credentials. This will create a `EmbeddingController` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the chat client for text generations. +Here is an example of a simple `@Controller` class that uses the chat model for text generations. [source,java] ---- @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -140,7 +140,7 @@ public class EmbeddingController { == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java[BedrockTitanEmbeddingClient] implements the `EmbeddingClient` and uses the <> to connect to the Bedrock Titan service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingModel.java[BedrockTitanEmbeddingModel] implements the `EmbeddingModel` and uses the <> to connect to the Bedrock Titan service. Add the `spring-ai-bedrock` dependency to your project's Maven `pom.xml` file: @@ -163,16 +163,16 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingClient.java[BedrockTitanEmbeddingClient] and use it for text embeddings: +Next, create an https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/BedrockTitanEmbeddingModel.java[BedrockTitanEmbeddingModel] and use it for text embeddings: [source,java] ---- var titanEmbeddingApi = new TitanEmbeddingBedrockApi( TitanEmbeddingModel.TITAN_EMBED_IMAGE_V1.id(), Region.US_EAST_1.id()); -var embeddingClient = new BedrockTitanEmbeddingClient(titanEmbeddingApi); +var embeddingModel = new BedrockTitanEmbeddingModel(titanEmbeddingApi); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World")); // NOTE titan does not support batch embedding. ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/minimax-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/minimax-embeddings.adoc index da452c69d..f554b4664 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/minimax-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/minimax-embeddings.adoc @@ -81,19 +81,19 @@ The prefix `spring.ai.minimax` is used as the property prefix that lets you conn ==== Configuration Properties -The prefix `spring.ai.minimax.embedding` is property prefix that configures the `EmbeddingClient` implementation for MiniMax. +The prefix `spring.ai.minimax.embedding` is property prefix that configures the `EmbeddingModel` implementation for MiniMax. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.minimax.embedding.enabled | Enable MiniMax embedding client. | true +| spring.ai.minimax.embedding.enabled | Enable MiniMax embedding model. | true | spring.ai.minimax.embedding.base-url | Optional overrides the spring.ai.minimax.base-url to provide embedding specific url | - | spring.ai.minimax.embedding.api-key | Optional overrides the spring.ai.minimax.api-key to provide embedding specific api-key | - | spring.ai.minimax.embedding.options.model | The model to use | embo-01 |==== -NOTE: You can override the common `spring.ai.minimax.base-url` and `spring.ai.minimax.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.minimax.base-url` and `spring.ai.minimax.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.minimax.embedding.base-url` and `spring.ai.minimax.embedding.api-key` properties if set take precedence over the common properties. Similarly, the `spring.ai.minimax.embedding.base-url` and `spring.ai.minimax.embedding.api-key` properties if set take precedence over the common properties. This is useful if you want to use different MiniMax accounts for different models and different model endpoints. @@ -106,14 +106,14 @@ The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mini The default options can be configured using the `spring.ai.minimax.embedding.options` properties as well. -At start-time use the `MiniMaxEmbeddingClient` constructor to set the default options used for all embedding requests. +At start-time use the `MiniMaxEmbeddingModel` constructor to set the default options used for all embedding requests. At run-time you can override the default options, using a `MiniMaxEmbeddingOptions` instance as part of your `EmbeddingRequest`. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), MiniMaxEmbeddingOptions.builder() .withModel("Different-Embedding-Model-Deployment-Name") @@ -122,8 +122,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingC` implementation. [source,application.properties] ---- @@ -136,16 +136,16 @@ spring.ai.minimax.embedding.options.model=embo-01 @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -174,21 +174,21 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-minimax` dependency provides access also to the `MiniMaxChatClient`. -For more information about the `MiniMaxChatClient` refer to the link:../chat/minimax-chat.html[MiniMax Chat Client] section. +NOTE: The `spring-ai-minimax` dependency provides access also to the `MiniMaxChatModel`. +For more information about the `MiniMaxChatModel refer to the link:../chat/minimax-chat.html[MiniMax Chat Client] section. -Next, create an `MiniMaxEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `MiniMaxEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var miniMaxApi = new MiniMaxApi(System.getenv("MINIMAX_API_KEY")); -var embeddingClient = new MiniMaxEmbeddingClient(miniMaxApi) +var embeddingModel = new MiniMaxEmbeddingModel(miniMaxApi) .withDefaultOptions(MiniMaxChatOptions.build() .withModel("embo-01") .build()); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/mistralai-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/mistralai-embeddings.adoc index 57d8c19db..77afada94 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/mistralai-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/mistralai-embeddings.adoc @@ -80,13 +80,13 @@ The prefix `spring.ai.mistralai` is used as the property prefix that lets you co ==== Configuration Properties -The prefix `spring.ai.mistralai.embedding` is property prefix that configures the `EmbeddingClient` implementation for MistralAI. +The prefix `spring.ai.mistralai.embedding` is property prefix that configures the `EmbeddingModel` implementation for MistralAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.mistralai.embedding.enabled | Enable OpenAI embedding client. | true +| spring.ai.mistralai.embedding.enabled | Enable OpenAI embedding model. | true | spring.ai.mistralai.embedding.base-url | Optional overrides the spring.ai.mistralai.base-url to provide embedding specific url | - | spring.ai.mistralai.embedding.api-key | Optional overrides the spring.ai.mistralai.api-key to provide embedding specific api-key | - | spring.ai.mistralai.embedding.metadata-mode | Document content extraction mode. | EMBED @@ -94,7 +94,7 @@ The prefix `spring.ai.mistralai.embedding` is property prefix that configures th | spring.ai.mistralai.embedding.options.encodingFormat | The format to return the embeddings in. Can be either float or base64. | - |==== -NOTE: You can override the common `spring.ai.mistralai.base-url` and `spring.ai.mistralai.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.mistralai.base-url` and `spring.ai.mistralai.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.mistralai.embedding.base-url` and `spring.ai.mistralai.embedding.api-key` properties if set take precedence over the common properties. Similarly, the `spring.ai.mistralai.embedding.base-url` and `spring.ai.mistralai.embedding.api-key` properties if set take precedence over the common properties. This is useful if you want to use different MistralAI accounts for different models and different model endpoints. @@ -107,14 +107,14 @@ The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mist The default options can be configured using the `spring.ai.mistralai.embedding.options` properties as well. -At start-time use the `MistralAiEmbeddingClient` constructor to set the default options used for all embedding requests. +At start-time use the `MistralAiEmbeddingModel` constructor to set the default options used for all embedding requests. At run-time you can override the default options, using a `MistralAiEmbeddingOptions` instance as part of your `EmbeddingRequest`. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), MistralAiEmbeddingOptions.builder() .withModel("Different-Embedding-Model-Deployment-Name") @@ -123,8 +123,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,application.properties] ---- @@ -137,16 +137,16 @@ spring.ai.mistralai.embedding.options.model=mistral-embed @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - var embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + var embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -175,22 +175,22 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-mistral-ai` dependency provides access also to the `MistralAiChatClient`. -For more information about the `MistralAiChatClient` refer to the link:../chat/mistralai-chat.html[MistralAI Chat Client] section. +NOTE: The `spring-ai-mistral-ai` dependency provides access also to the `MistralAiChatModel`. +For more information about the `MistralAiChatModel` refer to the link:../chat/mistralai-chat.html[MistralAI Chat Client] section. -Next, create an `MistralAiEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `MistralAiEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var mistralAiApi = new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY")); -var embeddingClient = new MistralAiEmbeddingClient(mistralAiApi, +var embeddingModel = new MistralAiEmbeddingModel(mistralAiApi, MistralAiEmbeddingOptions.builder() .withModel("mistral-embed") .withEncodingFormat("float") .build()); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/ollama-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/ollama-embeddings.adoc index 386051e71..095692862 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/ollama-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/ollama-embeddings.adoc @@ -1,7 +1,7 @@ = Ollama Embeddings With https://ollama.ai/[Ollama] you can run various Large Language Models (LLMs) locally and generate embeddings from them. -Spring AI supports the Ollama text embeddings with `OllamaEmbeddingClient`. +Spring AI supports the Ollama text embeddings with `OllamaEmbeddingModel`. An embedding is a vector (list) of floating point numbers. The distance between two vectors measures their relatedness. @@ -47,7 +47,7 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. The `spring.ai.ollama.embedding.options.*` properties are used to configure the default options used for all embedding requests. -(It is used as `OllamaEmbeddingClient#withDefaultOptions()` instance). +(It is used as `OllamaEmbeddingModel#withDefaultOptions()` instance). === Embedding Properties @@ -60,13 +60,13 @@ The prefix `spring.ai.ollama` is the property prefix to configure the connection | spring.ai.ollama.base-url | Base URL where Ollama API server is running. | `http://localhost:11434` |==== -The prefix `spring.ai.ollama.embedding.options` is the property prefix that configures the `EmbeddingClient` implementation for Ollama. +The prefix `spring.ai.ollama.embedding.options` is the property prefix that configures the `EmbeddingModel` implementation for Ollama. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.ollama.embedding.enabled | Enable Ollama embedding client. | true +| spring.ai.ollama.embedding.enabled | Enable Ollama embedding model. | true | spring.ai.ollama.embedding.options.model | The name of the https://github.com/ollama/ollama?tab=readme-ov-file#model-library[supported model] to use. | mistral |==== @@ -115,14 +115,14 @@ The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-olla The default options can be configured using the `spring.ai.ollama.embedding.options` properties as well. -At start-time use the `OllamaEmbeddingClient#withDefaultOptions()` to configure the default options used for all embedding requests. +At start-time use the `OllamaEmbeddingModel#withDefaultOptions()` to configure the default options used for all embedding requests. At run-time you can override the default options, using a `OllamaOptions` instance as part of your `EmbeddingRequest`. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), OllamaOptions.create() .withModel("Different-Embedding-Model-Deployment-Name")); @@ -130,24 +130,24 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,java] ---- @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -155,7 +155,7 @@ public class EmbeddingController { == Manual Configuration -If you are not using Spring Boot, you can manually configure the `OllamaEmbeddingClient`. +If you are not using Spring Boot, you can manually configure the `OllamaEmbeddingModel`. For this add the spring-ai-ollama dependency to your project’s Maven pom.xml file: [source,xml] @@ -177,21 +177,21 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-ollama` dependency provides access also to the `OllamaChatClient`. -For more information about the `OllamaChatClient` refer to the link:../chat/ollama-chat.html[Ollama Chat Client] section. +NOTE: The `spring-ai-ollama` dependency provides access also to the `OllamaChatModel`. +For more information about the `OllamaChatModel` refer to the link:../chat/ollama-chat.html[Ollama Chat Client] section. -Next, create an `OllamaEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `OllamaEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var ollamaApi = new OllamaApi(); -var embeddingClient = new OllamaEmbeddingClient(ollamaApi) +var embeddingModel = new OllamaEmbeddingModel(ollamaApi) .withDefaultOptions(OllamaOptions.create() .withModel(OllamaOptions.DEFAULT_MODEL) .toMap()); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/onnx.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/onnx.adoc index 565dafc22..286f2d8fa 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/onnx.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/onnx.adoc @@ -1,6 +1,6 @@ = Transformers (ONNX) Embeddings -The `TransformersEmbeddingClient` is an `EmbeddingClient` implementation that locally computes https://www.sbert.net/examples/applications/computing-embeddings/README.html#sentence-embeddings-with-transformers[sentence embeddings] using a selected https://www.sbert.net/[sentence transformer]. +The `TransformersEmbeddingModel` is an `EmbeddingModel` implementation that locally computes https://www.sbert.net/examples/applications/computing-embeddings/README.html#sentence-embeddings-with-transformers[sentence embeddings] using a selected https://www.sbert.net/[sentence transformer]. It uses https://www.sbert.net/docs/pretrained_models.html[pre-trained] transformer models, serialized into the https://onnx.ai/[Open Neural Network Exchange (ONNX)] format. @@ -25,7 +25,7 @@ source ./venv/bin/activate (venv) optimum-cli export onnx --generative sentence-transformers/all-MiniLM-L6-v2 onnx-output-folder ---- -The snippet exports the https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2[sentence-transformers/all-MiniLM-L6-v2] transformer into the `onnx-output-folder` folder. Later includes the `tokenizer.json` and `model.onnx` files used by the embedding client. +The snippet exports the https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2[sentence-transformers/all-MiniLM-L6-v2] transformer into the `onnx-output-folder` folder. Later includes the `tokenizer.json` and `model.onnx` files used by the embedding model. In place of the all-MiniLM-L6-v2 you can pick any huggingface transformer identifier or provide direct file path. @@ -43,9 +43,9 @@ Add the `spring-ai-transformers` project to your maven dependencies: TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -then create a new `TransformersEmbeddingClient` instance and use the `setTokenizerResource(tokenizerJsonUri)` and `setModelResource(modelOnnxUri)` methods to set the URIs of the exported `tokenizer.json` and `model.onnx` files. (`classpath:`, `file:` or `https:` URI schemas are supported). +then create a new `TransformersEmbeddingModel` instance and use the `setTokenizerResource(tokenizerJsonUri)` and `setModelResource(modelOnnxUri)` methods to set the URIs of the exported `tokenizer.json` and `model.onnx` files. (`classpath:`, `file:` or `https:` URI schemas are supported). -If the model is not explicitly set, `TransformersEmbeddingClient` defaults to https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2[sentence-transformers/all-MiniLM-L6-v2]: +If the model is not explicitly set, `TransformersEmbeddingModel` defaults to https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2[sentence-transformers/all-MiniLM-L6-v2]: [cols="2*"] |=== @@ -55,53 +55,53 @@ If the model is not explicitly set, `TransformersEmbeddingClient` defaults to ht | Size | 80MB |=== -The following snippet illustrates how to use the `TransformersEmbeddingClient` manually: +The following snippet illustrates how to use the `TransformersEmbeddingModel` manually: [source,java] ---- -TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(); +TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(); // (optional) defaults to classpath:/onnx/all-MiniLM-L6-v2/tokenizer.json -embeddingClient.setTokenizerResource("classpath:/onnx/all-MiniLM-L6-v2/tokenizer.json"); +embeddingModel.setTokenizerResource("classpath:/onnx/all-MiniLM-L6-v2/tokenizer.json"); // (optional) defaults to classpath:/onnx/all-MiniLM-L6-v2/model.onnx -embeddingClient.setModelResource("classpath:/onnx/all-MiniLM-L6-v2/model.onnx"); +embeddingModel.setModelResource("classpath:/onnx/all-MiniLM-L6-v2/model.onnx"); // (optional) defaults to ${java.io.tmpdir}/spring-ai-onnx-model // Only the http/https resources are cached by default. -embeddingClient.setResourceCacheDirectory("/tmp/onnx-zoo"); +embeddingModel.setResourceCacheDirectory("/tmp/onnx-zoo"); // (optional) Set the tokenizer padding if you see an errors like: // "ai.onnxruntime.OrtException: Supplied array is ragged, ..." -embeddingClient.setTokenizerOptions(Map.of("padding", "true")); +embeddingModel.setTokenizerOptions(Map.of("padding", "true")); -embeddingClient.afterPropertiesSet(); +embeddingModel.afterPropertiesSet(); -List> embeddings = embeddingClient.embed(List.of("Hello world", "World is big")); +List> embeddings = embeddingModel.embed(List.of("Hello world", "World is big")); ---- -NOTE: If you create an instance of `TransformersEmbeddingClient` manually, you must call the `afterPropertiesSet()` method after setting the properties and before using the client. +NOTE: If you create an instance of `TransformersEmbeddingModel` manually, you must call the `afterPropertiesSet()` method after setting the properties and before using the client. The first `embed()` call downloads the large ONNX model and caches it on the local file system. Therefore, the first call might take longer than usual. Use the `#setResourceCacheDirectory()` method to set the local folder where the ONNX models as stored. The default cache folder is `${java.io.tmpdir}/spring-ai-onnx-model`. -It is more convenient (and preferred) to create the TransformersEmbeddingClient as a `Bean`. +It is more convenient (and preferred) to create the TransformersEmbeddingModel as a `Bean`. Then you don't have to call the `afterPropertiesSet()` manually. [source,java] ---- @Bean -public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); +public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } ---- == Transformers Embedding Spring Boot Starter -You can bootstrap and autowire the `TransformersEmbeddingClient` with the following Spring Boot starter: +You can bootstrap and autowire the `TransformersEmbeddingModel` with the following Spring Boot starter: [source,xml] ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/openai-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/openai-embeddings.adoc index 75a0d45f3..b57ee6cda 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/openai-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/openai-embeddings.adoc @@ -81,13 +81,13 @@ The prefix `spring.ai.openai` is used as the property prefix that lets you conne ==== Configuration Properties -The prefix `spring.ai.openai.embedding` is property prefix that configures the `EmbeddingClient` implementation for OpenAI. +The prefix `spring.ai.openai.embedding` is property prefix that configures the `EmbeddingModel` implementation for OpenAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.openai.embedding.enabled | Enable OpenAI embedding client. | true +| spring.ai.openai.embedding.enabled | Enable OpenAI embedding model. | true | spring.ai.openai.embedding.base-url | Optional overrides the spring.ai.openai.base-url to provide embedding specific url | - | spring.ai.openai.embedding.api-key | Optional overrides the spring.ai.openai.api-key to provide embedding specific api-key | - | spring.ai.openai.embedding.metadata-mode | Document content extraction mode. | EMBED @@ -97,7 +97,7 @@ The prefix `spring.ai.openai.embedding` is property prefix that configures the ` | spring.ai.openai.embedding.options.dimensions | The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models. | - |==== -NOTE: You can override the common `spring.ai.openai.base-url` and `spring.ai.openai.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.openai.base-url` and `spring.ai.openai.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.openai.embedding.base-url` and `spring.ai.openai.embedding.api-key` properties if set take precedence over the common properties. Similarly, the `spring.ai.openai.embedding.base-url` and `spring.ai.openai.embedding.api-key` properties if set take precedence over the common properties. This is useful if you want to use different OpenAI accounts for different models and different model endpoints. @@ -110,14 +110,14 @@ The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-open The default options can be configured using the `spring.ai.openai.embedding.options` properties as well. -At start-time use the `OpenAiEmbeddingClient` constructor to set the default options used for all embedding requests. +At start-time use the `OpenAiEmbeddingModel` constructor to set the default options used for all embedding requests. At run-time you can override the default options, using a `OpenAiEmbeddingOptions` instance as part of your `EmbeddingRequest`. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), OpenAiEmbeddingOptions.builder() .withModel("Different-Embedding-Model-Deployment-Name") @@ -126,8 +126,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,application.properties] ---- @@ -140,16 +140,16 @@ spring.ai.openai.embedding.options.model=text-embedding-ada-002 @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -178,16 +178,16 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-openai` dependency provides access also to the `OpenAiChatClient`. -For more information about the `OpenAiChatClient` refer to the link:../chat/openai-chat.html[OpenAI Chat Client] section. +NOTE: The `spring-ai-openai` dependency provides access also to the `OpenAiChatModel`. +For more information about the `OpenAiChatModel` refer to the link:../chat/openai-chat.html[OpenAI Chat Client] section. -Next, create an `OpenAiEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `OpenAiEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var openAiApi = new OpenAiApi(System.getenv("OPENAI_API_KEY")); -var embeddingClient = new OpenAiEmbeddingClient( +var embeddingModel = new OpenAiEmbeddingModel( openAiApi, MetadataMode.EMBED, OpenAiEmbeddingOptions.builder() @@ -196,7 +196,7 @@ var embeddingClient = new OpenAiEmbeddingClient( .build(), RetryUtils.DEFAULT_RETRY_TEMPLATE); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/postgresml-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/postgresml-embeddings.adoc index a8a506a3f..8f4458961 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/postgresml-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/postgresml-embeddings.adoc @@ -40,16 +40,16 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Use the `spring.ai.postgresml.embedding.options.*` properties to configure your `PostgresMlEmbeddingClient`. links +Use the `spring.ai.postgresml.embedding.options.*` properties to configure your `PostgresMlEmbeddingModel`. links === Embedding Properties -The prefix `spring.ai.postgresml.embedding` is property prefix that configures the `EmbeddingClient` implementation for PostgresML embeddings. +The prefix `spring.ai.postgresml.embedding` is property prefix that configures the `EmbeddingModel` implementation for PostgresML embeddings. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.postgresml.embedding.enabled | Enable PostgresML embedding client. | true +| spring.ai.postgresml.embedding.enabled | Enable PostgresML embedding model. | true | spring.ai.postgresml.embedding.options.transformer | The Huggingface transformer model to use for the embedding. | distilbert-base-uncased | spring.ai.postgresml.embedding.options.kwargs | Additional transformer specific options. | empty map | spring.ai.postgresml.embedding.options.vectorType | PostgresML vector type to use for the embedding. Two options are supported: `PG_ARRAY` and `PG_VECTOR`. | PG_ARRAY @@ -61,10 +61,10 @@ TIP: All properties prefixed with `spring.ai.postgresml.embedding.options` can b == Runtime Options [[embedding-options]] -Use the https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java[PostgresMlEmbeddingOptions.java] to configure the `PostgresMlEmbeddingClient` with options, such as the model to use and etc. +Use the https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptions.java[PostgresMlEmbeddingOptions.java] to configure the `PostgresMlEmbeddingModel` with options, such as the model to use and etc. -On start you can pass a `PostgresMlEmbeddingOptions` to the `PostgresMlEmbeddingClient` constructor to configure the default options used for all embedding requests. +On start you can pass a `PostgresMlEmbeddingOptions` to the `PostgresMlEmbeddingModel` constructor to configure the default options used for all embedding requests. At run-time you can override the default options, using a `PostgresMlEmbeddingOptions` in your `EmbeddingRequest`. @@ -73,7 +73,7 @@ For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), PostgresMlEmbeddingOptions.builder() .withTransformer("intfloat/e5-small") @@ -84,8 +84,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,application.properties] ---- @@ -100,16 +100,16 @@ spring.ai.postgresml.embedding.options.kwargs.device=cpu @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -117,7 +117,7 @@ public class EmbeddingController { == Manual configuration -Instead of using the Spring Boot auto-configuration, you can create the `PostgresMlEmbeddingClient` manually. +Instead of using the Spring Boot auto-configuration, you can create the `PostgresMlEmbeddingModel` manually. For this add the `spring-ai-postgresml` dependency to your project's Maven `pom.xml` file: [source, xml] @@ -139,13 +139,13 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an `PostgresMlEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `PostgresMlEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var jdbcTemplate = new JdbcTemplate(dataSource); // your posgresml data source -PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.jdbcTemplate, +PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(this.jdbcTemplate, PostgresMlEmbeddingOptions.builder() .withTransformer("distilbert-base-uncased") // huggingface transformer model name. .withVectorType(VectorType.PG_VECTOR) //vector type in PostgreSQL. @@ -153,21 +153,21 @@ PostgresMlEmbeddingClient embeddingClient = new PostgresMlEmbeddingClient(this.j .withMetadataMode(MetadataMode.EMBED) // Document metadata mode. .build()); -embeddingClient.afterPropertiesSet(); // initialize the jdbc template and database. +embeddingModel.afterPropertiesSet(); // initialize the jdbc template and database. -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- NOTE: When created manually, you must call the `afterPropertiesSet()` after setting the properties and before using the client. -It is more convenient (and preferred) to create the PostgresMlEmbeddingClient as a `@Bean`. +It is more convenient (and preferred) to create the PostgresMlEmbeddingModel as a `@Bean`. Then you don’t have to call the `afterPropertiesSet()` manually: [source,java] ---- @Bean -public EmbeddingClient embeddingClient(JdbcTemplate jdbcTemplate) { - return new PostgresMlEmbeddingClient(jdbcTemplate, +public EmbeddingModel embeddingModel(JdbcTemplate jdbcTemplate) { + return new PostgresMlEmbeddingModel(jdbcTemplate, PostgresMlEmbeddingOptions.builder() .... .build()); diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/vertexai-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/vertexai-embeddings.adoc index d66b94071..34e8bcd7a 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/vertexai-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/vertexai-embeddings.adoc @@ -76,7 +76,7 @@ The prefix `spring.ai.vertex.ai.embedding` is the property prefix that lets you https://start.spring.io/[Create] a new Spring Boot project and add the `spring-ai-vertex-ai-palm2-spring-boot-starter` to your pom (or gradle) dependencies. -Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi Chat client: +Add a `application.properties` file, under the `src/main/resources` directory, to enable and configure the VertexAi chat model: [source,application.properties] ---- @@ -86,7 +86,7 @@ spring.ai.vertex.ai.embedding.model=embedding-gecko-001 TIP: replace the `api-key` with your VertexAI credentials. -This will create a `VertexAiPaLm2EmbeddingClient` implementation that you can inject into your class. +This will create a `VertexAiPaLm2EmbeddingModel` implementation that you can inject into your class. Here is an example of a simple `@Controller` class that uses the embedding client for text generations. [source,java] @@ -94,16 +94,16 @@ Here is an example of a simple `@Controller` class that uses the embedding clien @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -111,7 +111,7 @@ public class EmbeddingController { == Manual Configuration -The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingClient.java[VertexAiPaLm2EmbeddingClient] implements the `EmbeddingClient` and uses the <> to connect to the VertexAI service. +The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-palm2/src/main/java/org/springframework/ai/vertexai/palm2/VertexAiPaLm2EmbeddingModel.java[VertexAiPaLm2EmbeddingModel] implements the `EmbeddingModel` and uses the <> to connect to the VertexAI service. Add the `spring-ai-vertex-ai` dependency to your project's Maven `pom.xml` file: @@ -134,15 +134,15 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `VertexAiPaLm2EmbeddingClient` and use it for text generations: +Next, create a `VertexAiPaLm2EmbeddingModel` and use it for text generations: [source,java] ---- VertexAiPaLm2Api vertexAiApi = new VertexAiPaLm2Api(< YOUR PALM_API_KEY>); -var embeddingClient = new VertexAiPaLm2EmbeddingClient(vertexAiApi); +var embeddingModel = new VertexAiPaLm2EmbeddingModel(vertexAiApi); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/zhipuai-embeddings.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/zhipuai-embeddings.adoc index a189b448a..1ad2abdca 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/zhipuai-embeddings.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/zhipuai-embeddings.adoc @@ -81,19 +81,19 @@ The prefix `spring.ai.zhipuai` is used as the property prefix that lets you conn ==== Configuration Properties -The prefix `spring.ai.zhipuai.embedding` is property prefix that configures the `EmbeddingClient` implementation for ZhiPuAI. +The prefix `spring.ai.zhipuai.embedding` is property prefix that configures the `EmbeddingModel` implementation for ZhiPuAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.zhipuai.embedding.enabled | Enable ZhiPuAI embedding client. | true +| spring.ai.zhipuai.embedding.enabled | Enable ZhiPuAI embedding model. | true | spring.ai.zhipuai.embedding.base-url | Optional overrides the spring.ai.zhipuai.base-url to provide embedding specific url | - | spring.ai.zhipuai.embedding.api-key | Optional overrides the spring.ai.zhipuai.api-key to provide embedding specific api-key | - | spring.ai.zhipuai.embedding.options.model | The model to use | embedding-2 |==== -NOTE: You can override the common `spring.ai.zhipuai.base-url` and `spring.ai.zhipuai.api-key` for the `ChatClient` and `EmbeddingClient` implementations. +NOTE: You can override the common `spring.ai.zhipuai.base-url` and `spring.ai.zhipuai.api-key` for the `ChatModel` and `EmbeddingModel` implementations. The `spring.ai.zhipuai.embedding.base-url` and `spring.ai.zhipuai.embedding.api-key` properties if set take precedence over the common properties. Similarly, the `spring.ai.zhipuai.embedding.base-url` and `spring.ai.zhipuai.embedding.api-key` properties if set take precedence over the common properties. This is useful if you want to use different ZhiPuAI accounts for different models and different model endpoints. @@ -106,14 +106,14 @@ The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-zhip The default options can be configured using the `spring.ai.zhipuai.embedding.options` properties as well. -At start-time use the `ZhiPuAiEmbeddingClient` constructor to set the default options used for all embedding requests. +At start-time use the `ZhiPuAiEmbeddingModel` constructor to set the default options used for all embedding requests. At run-time you can override the default options, using a `ZhiPuAiEmbeddingOptions` instance as part of your `EmbeddingRequest`. For example to override the default model name for a specific request: [source,java] ---- -EmbeddingResponse embeddingResponse = embeddingClient.call( +EmbeddingResponse embeddingResponse = embeddingModel.call( new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"), ZhiPuAiEmbeddingOptions.builder() .withModel("Different-Embedding-Model-Deployment-Name") @@ -122,8 +122,8 @@ EmbeddingResponse embeddingResponse = embeddingClient.call( == Sample Controller -This will create a `EmbeddingClient` implementation that you can inject into your class. -Here is an example of a simple `@Controller` class that uses the `EmbeddingClient` implementation. +This will create a `EmbeddingModel` implementation that you can inject into your class. +Here is an example of a simple `@Controller` class that uses the `EmbeddingModel` implementation. [source,application.properties] ---- @@ -136,16 +136,16 @@ spring.ai.zhipuai.embedding.options.model=embedding-2 @RestController public class EmbeddingController { - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; @Autowired - public EmbeddingController(EmbeddingClient embeddingClient) { - this.embeddingClient = embeddingClient; + public EmbeddingController(EmbeddingModel embeddingModel) { + this.embeddingModel = embeddingModel; } @GetMapping("/ai/embedding") public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(message)); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message)); return Map.of("embedding", embeddingResponse); } } @@ -174,21 +174,21 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -NOTE: The `spring-ai-zhipuai` dependency provides access also to the `ZhiPuAiChatClient`. -For more information about the `ZhiPuAiChatClient` refer to the link:../chat/zhipuai-chat.html[ZhiPuAI Chat Client] section. +NOTE: The `spring-ai-zhipuai` dependency provides access also to the `ZhiPuAiChatModel`. +For more information about the `ZhiPuAiChatModel` refer to the link:../chat/zhipuai-chat.html[ZhiPuAI Chat Client] section. -Next, create an `ZhiPuAiEmbeddingClient` instance and use it to compute the similarity between two input texts: +Next, create an `ZhiPuAiEmbeddingModel` instance and use it to compute the similarity between two input texts: [source,java] ---- var zhiPuAiApi = new ZhiPuAiApi(System.getenv("ZHIPU_AI_API_KEY")); -var embeddingClient = new ZhiPuAiEmbeddingClient(zhiPuAiApi) +var embeddingModel = new ZhiPuAiEmbeddingModel(zhiPuAiApi) .withDefaultOptions(ZhiPuAiChatOptions.build() .withModel("embedding-2") .build()); -EmbeddingResponse embeddingResponse = embeddingClient +EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/generic-model.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/generic-model.adoc index 6b30f90bc..602bb4b95 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/generic-model.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/generic-model.adoc @@ -1,7 +1,7 @@ [[generic-model-api]] = Generic Model API -In order to provide a foundation for all AI Model clients, the Generic Model API was created. +In order to provide a foundation for all AI Models, the Generic Model API was created. This makes it easy to contribute new AI Model support to Spring AI by following a common pattern. The following sections walk through this API. @@ -9,15 +9,15 @@ The following sections walk through this API. image::spring-ai-generic-model-api.jpg[width=900, align="center"] -== ModelClient +== Model -The ModelClient interface provides a generic API for invoking AI models. It is designed to handle the interaction with various types of AI models by abstracting the process of sending requests and receiving responses. The interface uses Java generics to accommodate different types of requests and responses, enhancing flexibility and adaptability across different AI model implementations. +The Model interface provides a generic API for invoking AI models. It is designed to handle the interaction with various types of AI models by abstracting the process of sending requests and receiving responses. The interface uses Java generics to accommodate different types of requests and responses, enhancing flexibility and adaptability across different AI model implementations. The interface is defined below: [source,java] ---- -public interface ModelClient, TRes extends ModelResponse> { +public interface Model, TRes extends ModelResponse> { /** * Executes a method call to the AI model. @@ -29,13 +29,13 @@ public interface ModelClient, TRes extends ModelRes } ---- -== StreamingModelClient +== StreamingModel -The StreamingModelClient interface provides a generic API for invoking an AI model with streaming response. It abstracts the process of sending requests and receiving a streaming response. The interface uses Java generics to accommodate different types of requests and responses, enhancing flexibility and adaptability across different AI model implementations. +The StreamingModel interface provides a generic API for invoking an AI model with streaming response. It abstracts the process of sending requests and receiving a streaming response. The interface uses Java generics to accommodate different types of requests and responses, enhancing flexibility and adaptability across different AI model implementations. [source,java] ---- -public interface StreamingModelClient, TResChunk extends ModelResponse> { +public interface StreamingModel, TResChunk extends ModelResponse> { /** * Executes a method call to the AI model. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/openai-image.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/openai-image.adoc index ff544bd85..66766c960 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/openai-image.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/openai-image.adoc @@ -42,12 +42,12 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man === Image Generation Properties -The prefix `spring.ai.openai.image` is the property prefix that lets you configure the `ImageClient` implementation for OpenAI. +The prefix `spring.ai.openai.image` is the property prefix that lets you configure the `ImageModel` implementation for OpenAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.openai.image.enabled | Enable OpenAI image client. | true +| spring.ai.openai.image.enabled | Enable OpenAI image model. | true | spring.ai.openai.image.base-url | Optional overrides the spring.ai.openai.base-url to provide chat specific url | - | spring.ai.openai.image.api-key | Optional overrides the spring.ai.openai.api-key to provide chat specific api-key | - | spring.ai.openai.image.options.n | The number of images to generate. Must be between 1 and 10. For dall-e-3, only n=1 is supported. | - @@ -97,14 +97,14 @@ The prefix `spring.ai.retry` is used as the property prefix that lets you config The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiImageOptions.java[OpenAiImageOptions.java] provides model configurations, such as the model to use, the quality, the size, etc. -On start-up, the default options can be configured with the `OpenAiImageClient(OpenAiImageApi openAiImageApi)` constructor and the `withDefaultOptions(OpenAiImageOptions defaultOptions)` method. Alternatively, use the `spring.ai.openai.image.options.*` properties described previously. +On start-up, the default options can be configured with the `OpenAiImageModel(OpenAiImageApi openAiImageApi)` constructor and the `withDefaultOptions(OpenAiImageOptions defaultOptions)` method. Alternatively, use the `spring.ai.openai.image.options.*` properties described previously. At runtime you can override the default options by adding new, request specific, options to the `ImagePrompt` call. For example to override the OpenAI specific options such as quality and the number of images to create, use the following code example: [source,java] ---- -ImageResponse response = openaiImageClient.call( +ImageResponse response = openaiImageModel.call( new ImagePrompt("A light cream colored mini golden doodle", OpenAiImageOptions.builder() .withQuality("hd") diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/stabilityai-image.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/stabilityai-image.adoc index b526b5405..01f1347f7 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/stabilityai-image.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/stabilityai-image.adoc @@ -51,13 +51,13 @@ The prefix `spring.ai.stabilityai` is used as the property prefix that lets you | spring.ai.stabilityai.api-key | The API Key | - |==== -The prefix `spring.ai.stabilityai.image` is the property prefix that lets you configure the `ImageClient` implementation for Stability AI. +The prefix `spring.ai.stabilityai.image` is the property prefix that lets you configure the `ImageModel` implementation for Stability AI. [cols="2,5,1"] |==== | Property | Description | Default -| spring.ai.stabilityai.image.enabled | Enable Stability AI image client. | true +| spring.ai.stabilityai.image.enabled | Enable Stability AI image model. | true | spring.ai.stabilityai.image.base-url | Optional overrides the spring.ai.openai.base-url to provide a specific url | `https://api.stability.ai/v1` | spring.ai.stabilityai.image.api-key | Optional overrides the spring.ai.openai.api-key to provide a specific api-key | - | spring.ai.stabilityai.image.option.n | The number of images to be generated. Must be between 1 and 10. | 1 @@ -78,14 +78,14 @@ The prefix `spring.ai.stabilityai.image` is the property prefix that lets you co The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-stabilityai/src/main/java/org/springframework/ai/stabilityai/api/StabilityAiImageOptions.java[StabilityAiImageOptions.java] provides model configurations, such as the model to use, the style, the size, etc. -On start-up, the default options can be configured with the `StabilityAiImageClient(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options)` constructor. Alternatively, use the `spring.ai.openai.image.options.*` properties described previously. +On start-up, the default options can be configured with the `StabilityAiImageModel(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options)` constructor. Alternatively, use the `spring.ai.openai.image.options.*` properties described previously. At runtime, you can override the default options by adding new, request specific, options to the `ImagePrompt` call. For example to override the Stability AI specific options such as quality and the number of images to create, use the following code example: [source,java] ---- -ImageResponse response = openaiImageClient.call( +ImageResponse response = openaiImageModel.call( new ImagePrompt("A light cream colored mini golden doodle", StabilityAiImageOptions.builder() .withStylePreset("cinematic") diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/zhipuai-image.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/zhipuai-image.adoc index b6a02d3bd..aeedede6c 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/zhipuai-image.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/zhipuai-image.adoc @@ -48,12 +48,12 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man === Image Generation Properties -The prefix `spring.ai.zhipuai.image` is the property prefix that lets you configure the `ImageClient` implementation for ZhiPuAI. +The prefix `spring.ai.zhipuai.image` is the property prefix that lets you configure the `ImageModel` implementation for ZhiPuAI. [cols="3,5,1"] |==== | Property | Description | Default -| spring.ai.zhipuai.image.enabled | Enable ZhiPuAI image client. | true +| spring.ai.zhipuai.image.enabled | Enable ZhiPuAI image model. | true | spring.ai.zhipuai.image.base-url | Optional overrides the spring.ai.zhipuai.base-url to provide chat specific url | - | spring.ai.zhipuai.image.api-key | Optional overrides the spring.ai.zhipuai.api-key to provide chat specific api-key | - | spring.ai.zhipuai.image.options.model | The model to use for image generation. | cogview-3 @@ -96,14 +96,14 @@ The prefix `spring.ai.retry` is used as the property prefix that lets you config The https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiImageOptions.java[ZhiPuAiImageOptions.java] provides model configurations, such as the model to use, the quality, the size, etc. -On start-up, the default options can be configured with the `ZhiPuAiImageClient(ZhiPuAiImageApi zhiPuAiImageApi)` constructor and the `withDefaultOptions(ZhiPuAiImageOptions defaultOptions)` method. Alternatively, use the `spring.ai.zhipuai.image.options.*` properties described previously. +On start-up, the default options can be configured with the `ZhiPuAiImageModel(ZhiPuAiImageApi zhiPuAiImageApi)` constructor and the `withDefaultOptions(ZhiPuAiImageOptions defaultOptions)` method. Alternatively, use the `spring.ai.zhipuai.image.options.*` properties described previously. At runtime you can override the default options by adding new, request specific, options to the `ImagePrompt` call. For example to override the ZhiPuAI specific options such as quality and the number of images to create, use the following code example: [source,java] ---- -ImageResponse response = zhiPuAiImageClient.call( +ImageResponse response = zhiPuAiImageModel.call( new ImagePrompt("A light cream colored mini golden doodle", ZhiPuAiImageOptions.builder() .withQuality("hd") diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/imageclient.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/imageclient.adoc index 3d73ce061..314d5a5a7 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/imageclient.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/imageclient.adoc @@ -1,27 +1,27 @@ -[[ImageClient]] -= Image Generation API +[[ImageModel]] += Image Model API -The `Spring Image Generation API` is designed to be a simple and portable interface for interacting with various xref:concepts.adoc#_models[AI Models] specialized in image generation, allowing developers to switch between different image-related models with minimal code changes. +The `Spring Image Model API` is designed to be a simple and portable interface for interacting with various xref:concepts.adoc#_models[AI Models] specialized in image generation, allowing developers to switch between different image-related models with minimal code changes. This design aligns with Spring's philosophy of modularity and interchangeability, ensuring developers can quickly adapt their applications to different AI capabilities related to image processing. -Additionally, with the support of companion classes like `ImagePrompt` for input encapsulation and `ImageResponse` for output handling, the Image Generation API unifies the communication with AI Models dedicated to image generation. +Additionally, with the support of companion classes like `ImagePrompt` for input encapsulation and `ImageResponse` for output handling, the Image Model API unifies the communication with AI Models dedicated to image generation. It manages the complexity of request preparation and response parsing, offering a direct and simplified API interaction for image-generation functionalities. -The Spring Image Generation API is built on top of the Spring AI `Generic Model API`, providing image-specific abstractions and implementations. +The Spring Image Model API is built on top of the Spring AI `Generic Model API`, providing image-specific abstractions and implementations. == API Overview -This section provides a guide to the Spring Image Generation API interface and associated classes. +This section provides a guide to the Spring Image Model API interface and associated classes. -== Image Client +== Image Model -Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/image/ImageClient.java[ImageClient] interface definition: +Here is the link:https://github.com/spring-projects/spring-ai/blob/main/spring-ai-core/src/main/java/org/springframework/ai/image/ImageModel.java[ImageModel] interface definition: [source,java] ---- @FunctionalInterface -public interface ImageClient extends ModelClient { +public interface ImageModel extends Model { ImageResponse call(ImagePrompt request); @@ -68,7 +68,7 @@ public class ImageMessage { public Float getWeight() {...} // constructors and utility methods omitted - +} ---- ==== ImageOptions @@ -94,7 +94,7 @@ public interface ImageOptions extends ModelOptions { } ---- -Additionally, every model specific ImageClient implementation can have its own options that can be passed to the AI model. For example, the OpenAI Image Generation model has its own options like `quality`, `style`, etc. +Additionally, every model specific ImageModel implementation can have its own options that can be passed to the AI model. For example, the OpenAI Image Generation model has its own options like `quality`, `style`, etc. This is a powerful feature that allows developers to use model specific options when starting the application and then override them with at runtime using the `ImagePrompt`. @@ -157,7 +157,7 @@ public class ImageGeneration implements ModelResult { == Available Implementations -`ImageClient` implementations are provided for the following Model providers: +`ImageModel` implementations are provided for the following Model providers: * xref:api/image/openai-image.adoc[OpenAI Image Generation] * xref:api/image/stabilityai-image.adoc[StabilityAI Image Generation] diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/multimodality.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/multimodality.adoc index 320dd8910..2630a2cbb 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/multimodality.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/multimodality.adoc @@ -48,7 +48,7 @@ var userMessage = new UserMessage( "Explain what do you see in this picture?", // content List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); // media -ChatResponse response = chatClient.call(new Prompt(List.of(userMessage))); +ChatResponse response = chatModel.call(new Prompt(List.of(userMessage))); ---- and produce a response like: diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/prompt.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/prompt.adoc index 96fab52f4..c1ea0ef91 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/prompt.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/prompt.adoc @@ -11,7 +11,7 @@ Another analogy is a SQL statement that contain placeholders for certain express As Spring AI evolves, it will introduce higher levels of abstraction for interacting with AI models. The foundational classes described in this section can be likened to JDBC in terms of their role and functionality. -The `ChatClient` class, for instance, is analogous to the core JDBC library in the JDK. +The `ChatModel` class, for instance, is analogous to the core JDBC library in the JDK. Building upon this, Spring AI can provide helper classes similar to `JdbcTemplate`, Spring Data Repositories, and eventually, more advanced constructs like ChatEngines and Agents that consider past interactions with the model. The structure of prompts has evolved over time within the AI field. @@ -24,7 +24,7 @@ OpenAI have introduced even more structure to prompts by categorizing multiple m === Prompt -It is common to use the `call` method of `ChatClient` that takes a `Prompt` instance and returns an `ChatResponse`. +It is common to use the `call` method of `ChatModel` that takes a `Prompt` instance and returns an `ChatResponse`. The Prompt class functions as a container for an organized series of Message objects, with each one forming a segment of the overall prompt. Every Message embodies a unique role within the prompt, differing in its content and intent. @@ -152,7 +152,7 @@ The interfaces implemented by this class support different aspects of prompt cre `PromptTemplateMessageActions` is tailored for prompt creation through the generation and manipulation of Message objects. -`PromptTemplateActions` is designed to return the Prompt object, which can be passed to ChatClient for generating a response. +`PromptTemplateActions` is designed to return the Prompt object, which can be passed to ChatModel for generating a response. While these interfaces might not be used extensively in many projects, they show the different approaches to prompt creation. @@ -213,7 +213,7 @@ PromptTemplate promptTemplate = new PromptTemplate("Tell me a {adjective} joke a Prompt prompt = promptTemplate.create(Map.of("adjective", adjective, "topic", topic)); -return chatClient.call(prompt).getResult(); +return chatModel.call(prompt).getResult(); ``` Another example taken from the https://github.com/Azure-Samples/spring-ai-azure-workshop/blob/main/3-README-prompt-roles.md[AI Workshop on Roles] is shown below. @@ -237,13 +237,13 @@ Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); -List response = chatClient.call(prompt).getResults(); +List response = chatModel.call(prompt).getResults(); ``` This shows how you can build up the `Prompt` instance by using the `SystemPromptTemplate` to create a `Message` with the system role passing in placeholder values. The message with the role `user` is then combined with the message of the role `system` to form the prompt. -The prompt is then passed to the ChatClient to get a generative response. +The prompt is then passed to the ChatModel to get a generative response. === Using resources instead of raw Strings diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech.adoc index a581a57da..26f76603a 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech.adoc @@ -1,5 +1,5 @@ [[Speech]] -= Text-To-Speech (TTS) API += Speech Model API -Spring AI provides support for OpenAI's Speech API. -When additional providers for Speech are implemented, a common `SpeechClient` and `StreamingSpeechClient` interface will be extracted. \ No newline at end of file +Spring AI provides support for OpenAI's Text-To-Speech (TTS) API. +When additional providers for Speech are implemented, a common `SpeechModel` and `StreamingSpeechModel` interface will be extracted. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech/openai-speech.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech/openai-speech.adoc index 94a5f4c7c..6ba1841ac 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech/openai-speech.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech/openai-speech.adoc @@ -68,7 +68,7 @@ OpenAiAudioSpeechOptions speechOptions = OpenAiAudioSpeechOptions.builder() .build(); SpeechPrompt speechPrompt = new SpeechPrompt("Hello, this is a text-to-speech example.", speechOptions); -SpeechResponse response = openAiAudioSpeechClient.call(speechPrompt); +SpeechResponse response = openAiAudioSpeechModel.call(speechPrompt); ---- == Manual Configuration @@ -94,13 +94,13 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create an `OpenAiAudioSpeechClient`: +Next, create an `OpenAiAudioSpeechModel`: [source,java] ---- var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY")); -var openAiAudioSpeechClient = new OpenAiAudioSpeechClient(openAiAudioApi); +var openAiAudioSpeechModel = new OpenAiAudioSpeechModel(openAiAudioApi); var speechOptions = OpenAiAudioSpeechOptions.builder() .withResponseFormat(OpenAiAudioApi.SpeechRequest.AudioResponseFormat.MP3) @@ -109,7 +109,7 @@ var speechOptions = OpenAiAudioSpeechOptions.builder() .build(); var speechPrompt = new SpeechPrompt("Hello, this is a text-to-speech example.", speechOptions); -SpeechResponse response = openAiAudioSpeechClient.call(speechPrompt); +SpeechResponse response = openAiAudioSpeechModel.call(speechPrompt); // Accessing metadata (rate limit info) OpenAiAudioSpeechResponseMetadata metadata = response.getMetadata(); @@ -125,7 +125,7 @@ The Speech API provides support for real-time audio streaming using chunk transf ---- var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY")); -var openAiAudioSpeechClient = new OpenAiAudioSpeechClient(openAiAudioApi); +var openAiAudioSpeechModel = new OpenAiAudioSpeechModel(openAiAudioApi); OpenAiAudioSpeechOptions speechOptions = OpenAiAudioSpeechOptions.builder() .withVoice(OpenAiAudioApi.SpeechRequest.Voice.ALLOY) @@ -136,9 +136,9 @@ OpenAiAudioSpeechOptions speechOptions = OpenAiAudioSpeechOptions.builder() SpeechPrompt speechPrompt = new SpeechPrompt("Today is a wonderful day to build something people love!", speechOptions); -Flux responseStream = openAiAudioSpeechClient.stream(speechPrompt); +Flux responseStream = openAiAudioSpeechModel.stream(speechPrompt); ---- == Example Code -* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechClientIT.java[OpenAiSpeechClientIT.java] test provides some general examples of how to use the library. +* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/speech/OpenAiSpeechModelIT.java[OpenAiSpeechModelIT.java] test provides some general examples of how to use the library. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/structured-output-converter.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/structured-output-converter.adoc index 1ac816123..47b63233e 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/structured-output-converter.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/structured-output-converter.adoc @@ -123,7 +123,7 @@ String template = """ {format} """; -Generation generation = chatClient.call( +Generation generation = chatModel.call( new Prompt(new PromptTemplate(template, Map.of("actor", actor, "format", format)).createMessage())).getResult(); ActorsFilms actorsFilms = beanOutputConverter.convert(generation.getOutput().getContent()); @@ -147,7 +147,7 @@ String template = """ Prompt prompt = new Prompt(new PromptTemplate(template, Map.of("format", format)).createMessage()); -Generation generation = chatClient.call(prompt).getResult(); +Generation generation = chatModel.call(prompt).getResult(); List actorsFilms = outputConverter.convert(generation.getOutput().getContent()); ---- @@ -168,7 +168,7 @@ String template = """ PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); -Generation generation = chatClient.call(prompt).getResult(); +Generation generation = chatModel.call(prompt).getResult(); Map result = mapOutputConverter.convert(generation.getOutput().getContent()); ---- @@ -189,7 +189,7 @@ String template = """ PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("subject", "ice cream flavors", "format", format)); Prompt prompt = new Prompt(promptTemplate.createMessage()); -Generation generation = this.chatClient.call(prompt).getResult(); +Generation generation = this.chatModel.call(prompt).getResult(); List list = listOutputConverter.convert(generation.getOutput().getContent()); ---- @@ -201,16 +201,16 @@ The following AI Models have been tested to support List, Map and Bean structure [cols="2,5"] |==== | Model | Integration Tests / Samples -| xref:api/chat/openai-chat.adoc[OpenAI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientIT.java[OpenAiChatClientIT] -| xref:api/chat/anthropic-chat.adoc[Anthropic Claude 3] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatClientIT.java[AnthropicChatClientIT.java] -| xref:api/chat/azure-openai-chat.adoc[Azure OpenAI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatClientIT.java[AzureOpenAiChatClientIT.java] -| xref:api/chat/mistralai-chat.adoc[Mistral AI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatClientIT.java[MistralAiChatClientIT.java] -| xref:api/chat/ollama-chat.adoc[Ollama] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatClientIT.java[OllamaChatClientIT.java] -| xref:api/chat/vertexai-gemini-chat.adoc[Vertex AI Gemini] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatClientIT.java[VertexAiGeminiChatClientIT.java] -| xref:api/chat/bedrock/bedrock-anthropic.adoc[Bedrock Anthropic 2] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java[BedrockAnthropicChatClientIT.java] -| xref:api/chat/bedrock/bedrock-anthropic3.adoc[Bedrock Anthropic 3] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatClientIT.java[BedrockAnthropic3ChatClientIT.java] -| xref:api/chat/bedrock/bedrock-cohere.adoc[Bedrock Cohere] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java[BedrockCohereChatClientIT.java] -| xref:api/chat/bedrock/bedrock-llama.adoc[Bedrock Llama] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatClientIT.java[BedrockLlamaChatClientIT.java.java] +| xref:api/chat/openai-chat.adoc[OpenAI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatModelIT.java[OpenAiChatModelIT] +| xref:api/chat/anthropic-chat.adoc[Anthropic Claude 3] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-anthropic/src/test/java/org/springframework/ai/anthropic/AnthropicChatModelIT.java[AnthropicChatModelIT.java] +| xref:api/chat/azure-openai-chat.adoc[Azure OpenAI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-azure-openai/src/test/java/org/springframework/ai/azure/openai/AzureOpenAiChatModelIT.java[AzureOpenAiChatModelIT.java] +| xref:api/chat/mistralai-chat.adoc[Mistral AI] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatModelIT.java[MistralAiChatModelIT.java] +| xref:api/chat/ollama-chat.adoc[Ollama] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaChatModelIT.java[OllamaChatModelIT.java] +| xref:api/chat/vertexai-gemini-chat.adoc[Vertex AI Gemini] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java[VertexAiGeminiChatModelIT.java] +| xref:api/chat/bedrock/bedrock-anthropic.adoc[Bedrock Anthropic 2] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatModelIT.java[BedrockAnthropicChatModelIT.java] +| xref:api/chat/bedrock/bedrock-anthropic3.adoc[Bedrock Anthropic 3] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic3/BedrockAnthropic3ChatModelIT.java[BedrockAnthropic3ChatModelIT.java] +| xref:api/chat/bedrock/bedrock-cohere.adoc[Bedrock Cohere] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatModelIT.java[BedrockCohereChatModelIT.java] +| xref:api/chat/bedrock/bedrock-llama.adoc[Bedrock Llama] | link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama/BedrockLlamaChatModelIT.java[BedrockLlamaChatModelIT.java.java] |==== == Build-in JSON mode diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions.adoc index 703f19908..45156a9fe 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions.adoc @@ -1,5 +1,5 @@ [[Transcription]] -= Transcription API += Transcription Model API -Spring AI provides support for OpenAI's Transcription API. -When additional providers for Transcription are implemented, a common `AudioTranscriptionClient` interface will be extracted. \ No newline at end of file +Spring AI provides support for OpenAI's Transcription Model API. +When additional providers for Transcription are implemented, a common `AudioTranscriptionModel` interface will be extracted. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions/openai-transcriptions.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions/openai-transcriptions.adoc index 5592aa266..5f352f4f9 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions/openai-transcriptions.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions/openai-transcriptions.adoc @@ -37,7 +37,7 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man === Transcription Properties -The prefix `spring.ai.openai.audio.transcription` is used as the property prefix that lets you configure the retry mechanism for the OpenAI Image client. +The prefix `spring.ai.openai.audio.transcription` is used as the property prefix that lets you configure the retry mechanism for the OpenAI image model. [cols="3,5,2"] |==== @@ -69,7 +69,7 @@ OpenAiAudioTranscriptionOptions transcriptionOptions = OpenAiAudioTranscriptionO .withResponseFormat(responseFormat) .build(); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); -AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest); +AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest); ---- == Manual Configuration @@ -95,13 +95,13 @@ dependencies { TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Management] section to add the Spring AI BOM to your build file. -Next, create a `OpenAiAudioTranscriptionClient` +Next, create a `OpenAiAudioTranscriptionModel` [source,java] ---- var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY")); -var openAiAudioTranscriptionClient = new OpenAiAudioTranscriptionClient(openAiAudioApi); +var openAiAudioTranscriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi); var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder() .withResponseFormat(TranscriptResponseFormat.TEXT) @@ -111,8 +111,8 @@ var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder() var audioFile = new FileSystemResource("/path/to/your/resource/speech/jfk.flac"); AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions); -AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest); +AudioTranscriptionResponse response = openAiTranscriptionModel.call(transcriptionRequest); ---- == Example Code -* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionClientIT.java[OpenAiTranscriptionClientIT.java] test provides some general examples how to use the library. \ No newline at end of file +* The link:https://github.com/spring-projects/spring-ai/blob/main/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/audio/transcription/OpenAiTranscriptionModelIT.java[OpenAiTranscriptionModelIT.java] test provides some general examples how to use the library. \ No newline at end of file diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs.adoc index e7725d6e6..93539a19d 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs.adoc @@ -72,7 +72,7 @@ It also contains metadata in the form of key-value pairs, including details such Upon insertion into the vector database, the text content is transformed into a numerical array, or a `List`, known as vector embeddings, using an embedding model. Embedding models, such as https://en.wikipedia.org/wiki/Word2vec[Word2Vec], https://en.wikipedia.org/wiki/GloVe_(machine_learning)[GLoVE], and https://en.wikipedia.org/wiki/BERT_(language_model)[BERT], or OpenAI's `text-embedding-ada-002`, are used to convert words, sentences, or paragraphs into these vector embeddings. -The vector database's role is to store and facilitate similarity searches for these embeddings. It does not generate the embeddings itself. For creating vector embeddings, the `EmbeddingClient` should be utilized. +The vector database's role is to store and facilitate similarity searches for these embeddings. It does not generate the embeddings itself. For creating vector embeddings, the `EmbeddingModel` should be utilized. The `similaritySearch` methods in the interface allow for retrieving documents similar to a given query string. These methods can be fine-tuned by using the following parameters: @@ -113,9 +113,9 @@ Information on each of the `VectorStore` implementations can be found in the sub To compute the embeddings for a vector database, you need to pick an embedding model that matches the higher-level AI model being used. -For example, with OpenAI's ChatGPT, we use the `OpenAiEmbeddingClient` and a model named `text-embedding-ada-002`. +For example, with OpenAI's ChatGPT, we use the `OpenAiEmbeddingModel` and a model named `text-embedding-ada-002`. -The Spring Boot starter's auto-configuration for OpenAI makes an implementation of `EmbeddingClient` available in the Spring application context for dependency injection. +The Spring Boot starter's auto-configuration for OpenAI makes an implementation of `EmbeddingModel` available in the Spring application context for dependency injection. The general usage of loading data into a vector store is something you would do in a batch-like job, by first loading data into Spring AI's `Document` class and then calling the `save` method. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/apache-cassandra.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/apache-cassandra.adoc index b1c9d9f0d..71776e4cf 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/apache-cassandra.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/apache-cassandra.adoc @@ -37,7 +37,7 @@ It stands out from other HNSW Vector Similarity Search implementations by being == Prerequisites -1. A `EmbeddingClient` instance to compute the document embeddings. This is usually configured as a Spring Bean. Several options are available: +1. A `Embedding` instance to compute the document embeddings. This is usually configured as a Spring Bean. Several options are available: - `Transformers Embedding` - computes the embedding in your local environment. The default is via ONNX and the all-MiniLM-L6-v2 Sentence Transformers. This just works. - If you want to use OpenAI's Embeddings` - uses the OpenAI embedding endpoint. You need to create an account at link:https://platform.openai.com/signup[OpenAI Signup] and generate the api-key token at link:https://platform.openai.com/account/api-keys[API Keys]. @@ -82,11 +82,11 @@ Create a CassandraVectorStore instance connected to your Apache Cassandra databa [source,java] ---- @Bean -public VectorStore vectorStore(EmbeddingClient embeddingClient) { +public VectorStore vectorStore(EmbeddingModel embeddingModel) { CassandraVectorStoreConfig config = CassandraVectorStoreConfig.builder().build(); - return new CassandraVectorStore(config, embeddingClient); + return new CassandraVectorStore(config, embeddingModel); } ---- @@ -189,7 +189,7 @@ Then configure the store like: [source,java] ---- @Bean -public CassandraVectorStore store(EmbeddingClient embeddingClient) { +public CassandraVectorStore store(EmbeddingModel embeddingModel) { List partitionColumns = List.of(new SchemaColumn("wiki", DataTypes.TEXT), new SchemaColumn("language", DataTypes.TEXT), new SchemaColumn("title", DataTypes.TEXT)); @@ -226,13 +226,13 @@ public CassandraVectorStore store(EmbeddingClient embeddingClient) { }) .build(); - return new CassandraVectorStore(conf, embeddingClient()); + return new CassandraVectorStore(conf, embeddingModel()); } @Bean -public EmbeddingClient embeddingClient() { +public EmbeddingModel embeddingModel() { // default is ONNX all-MiniLM-L6-v2 which is what we want - return new TransformersEmbeddingClient(); + return new TransformersEmbeddingModel(); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure.adoc index b9f303c07..e935e4e64 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/azure.adoc @@ -97,13 +97,13 @@ public SearchIndexClient searchIndexClient() { } ---- -To create a vector store, you can use the following code by injecting the `SearchIndexClient` bean created in the above sample along with an `EmbeddingClient` provided by the Spring AI library that implements the desired Embeddings interface. +To create a vector store, you can use the following code by injecting the `SearchIndexClient` bean created in the above sample along with an `EmbeddingModel` provided by the Spring AI library that implements the desired Embeddings interface. [source,java] ---- @Bean -public VectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingClient embeddingClient) { - return new AzureVectorStore(searchIndexClient, embeddingClient, +public VectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingModel embeddingModel) { + return new AzureVectorStore(searchIndexClient, embeddingModel, // Define the metadata fields to be used // in the similarity search filters. List.of(MetadataField.text("country"), diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/chroma.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/chroma.adoc index cde40fc10..19d63685a 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/chroma.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/chroma.adoc @@ -8,8 +8,8 @@ link:https://docs.trychroma.com/[Chroma] is the open-source embedding database. 1. Access to ChromeDB. The <> appendix shows how to set up a DB locally with a Docker container. -2. `EmbeddingClient` instance to compute the document embeddings. Several options are available: -- If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] to generate the embeddings stored by the `ChromaVectorStore`. +2. `EmbeddingModel` instance to compute the document embeddings. Several options are available: +- If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] to generate the embeddings stored by the `ChromaVectorStore`. On startup, the `ChromaVectorStore` creates the required collection if one is not provisioned already. @@ -39,16 +39,16 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man TIP: Refer to the xref:getting-started.adoc#repositories[Repositories] section to add Milestone and/or Snapshot Repositories to your build file. -Additionally, you will need a configured `EmbeddingClient` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] section for more information. +Additionally, you will need a configured `EmbeddingModel` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] section for more information. Here is an example of the needed bean: [source,java] ---- @Bean -public EmbeddingClient embeddingClient() { - // Can be any other EmbeddingClient implementation. - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("SPRING_AI_OPENAI_API_KEY"))); +public EmbeddingModel embeddingModel() { + // Can be any other EmbeddingModel implementation. + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("SPRING_AI_OPENAI_API_KEY"))); } ---- @@ -181,7 +181,7 @@ Add these dependencies to your project: ---- -* OpenAI: Required for calculating embeddings. You can use any other embedding client implementation. +* OpenAI: Required for calculating embeddings. You can use any other embedding model implementation. [source,xml] ---- @@ -218,8 +218,8 @@ Integrate with OpenAI's embeddings by adding the Spring Boot OpenAI starter to y [source,java] ---- @Bean -public VectorStore chromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi) { - return new ChromaVectorStore(embeddingClient, chromaApi, "TestCollection"); +public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { + return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection"); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/elasticsearch.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/elasticsearch.adoc index eaff6cf4b..3c0f4da8d 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/elasticsearch.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/elasticsearch.adoc @@ -41,7 +41,7 @@ TIP: Refer to the xref:getting-started.adoc#repositories[Repositories] section t Please have a look at the list of <> for the vector store to learn about the default values and configuration options. -Additionally, you will need a configured `EmbeddingClient` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] section for more information. +Additionally, you will need a configured `EmbeddingModel` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] section for more information. Now you can auto-wire the `ElasticsearchVectorStore` as a vector store in your application. @@ -217,14 +217,14 @@ and then create the `ElasticsearchVectorStore` bean: [source,java] ---- @Bean -public ElasticsearchVectorStore vectorStore(EmbeddingClient embeddingClient, RestClient restClient) { - return new ElasticsearchVectorStore( restClient, embeddingClient); +public ElasticsearchVectorStore vectorStore(EmbeddingModel embeddingModel, RestClient restClient) { + return new ElasticsearchVectorStore( restClient, embeddingModel); } -// This can be any EmbeddingClient implementation. +// This can be any EmbeddingModel implementation. @Bean -public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); +public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/gemfire.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/gemfire.adoc index c09a45ef7..1ccb7add3 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/gemfire.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/gemfire.adoc @@ -65,8 +65,8 @@ public GemFireVectorStoreConfig gemFireVectorStoreConfig() { [source,java] ---- @Bean -public VectorStore vectorStore(GemFireVectorStoreConfig config, EmbeddingClient embeddingClient) { - return new GemFireVectorStore(config, embeddingClient); +public VectorStore vectorStore(GemFireVectorStoreConfig config, EmbeddingModel embeddingModel) { + return new GemFireVectorStore(config, embeddingModel); } ---- - Create a Vector Index which will configure GemFire region. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/hana.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/hana.adoc index 182356e7c..2538c5d90 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/hana.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/hana.adoc @@ -3,7 +3,7 @@ == Prerequisites * You need a SAP HANA Cloud vector engine account - Refer xref:api/vectordbs/hanadb-provision-a-trial-account.adoc[SAP HANA Cloud vector engine - provision a trial account] guide to create a trial account. -* If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] to generate the embeddings stored by the vector store. +* If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] to generate the embeddings stored by the vector store. == Auto-configuration @@ -34,7 +34,7 @@ Please have a look at the list of xref:#_hanacloudvectorstore_properties[configu TIP: Refer to the xref:getting-started.adoc#repositories[Repositories] section to add Milestone and/or Snapshot Repositories to your build file. -Additionally, you will need a configured `EmbeddingClient` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] section for more information. +Additionally, you will need a configured `EmbeddingModel` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] section for more information. == HanaCloudVectorStore properties @@ -226,7 +226,7 @@ public class CricketWorldCupRepository implements HanaVectorRepository", embeddingClient); +public QdrantVectorStore vectorStore(EmbeddingModel embeddingModel, QdrantClient qdrantClient) { + return new QdrantVectorStore(qdrantClient, "", embeddingModel); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/redis.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/redis.adoc index 436fd59ce..2c19ee544 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/redis.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/redis.adoc @@ -16,8 +16,8 @@ link:https://redis.io/docs/interact/search-and-query/[Redis Search and Query] ex - https://app.redislabs.com/#/[Redis Cloud] (recommended) - link:https://hub.docker.com/r/redis/redis-stack[Docker] image _redis/redis-stack:latest_ -2. `EmbeddingClient` instance to compute the document embeddings. Several options are available: -- If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] to generate the embeddings stored by the `RedisVectorStore`. +2. `EmbeddingModel` instance to compute the document embeddings. Several options are available: +- If required, an API key for the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] to generate the embeddings stored by the `RedisVectorStore`. == Auto-configuration @@ -45,16 +45,16 @@ TIP: Refer to the xref:getting-started.adoc#dependency-management[Dependency Man TIP: Refer to the xref:getting-started.adoc#repositories[Repositories] section to add Milestone and/or Snapshot Repositories to your build file. -Additionally, you will need a configured `EmbeddingClient` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingClient] section for more information. +Additionally, you will need a configured `EmbeddingModel` bean. Refer to the xref:api/embeddings.adoc#available-implementations[EmbeddingModel] section for more information. Here is an example of the needed bean: [source,java] ---- @Bean -public EmbeddingClient embeddingClient() { - // Can be any other EmbeddingClient implementation. - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("SPRING_AI_OPENAI_API_KEY"))); +public EmbeddingModel embeddingModel() { + // Can be any other EmbeddingModel implementation. + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("SPRING_AI_OPENAI_API_KEY"))); } ---- @@ -179,7 +179,7 @@ Then, create a `RedisVectorStore` bean in your Spring configuration: [source,java] ---- @Bean -public VectorStore vectorStore(EmbeddingClient embeddingClient) { +public VectorStore vectorStore(EmbeddingModel embeddingModel) { RedisVectorStoreConfig config = RedisVectorStoreConfig.builder() .withURI("redis://localhost:6379") // Define the metadata fields to be used @@ -189,7 +189,7 @@ public VectorStore vectorStore(EmbeddingClient embeddingClient) { MetadataField.numeric("year")) .build(); - return new RedisVectorStore(config, embeddingClient); + return new RedisVectorStore(config, embeddingModel); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/weaviate.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/weaviate.adoc index 060bb322e..6c8280796 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/weaviate.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/weaviate.adoc @@ -10,7 +10,7 @@ It provides tools to store document embeddings, content, and metadata and to sea == Prerequisites -1. `EmbeddingClient` instance to compute the document embeddings. Several options are available: +1. `EmbeddingModel` instance to compute the document embeddings. Several options are available: - `Transformers Embedding` - computes the embedding in your local environment. Follow the ONNX Transformers Embedding instructions. - `OpenAI Embedding` - uses the OpenAI embedding endpoint. You need to create an account at link:https://platform.openai.com/signup[OpenAI Signup] and generate the api-key token at link:https://platform.openai.com/account/api-keys[API Keys]. @@ -40,10 +40,10 @@ dependencies { } ---- -The Vector Store, also requires an `EmbeddingClient` instance to calculate embeddings for the documents. -You can pick one of the available xref:api/embeddings.adoc#available-implementations[EmbeddingClient Implementations]. +The Vector Store, also requires an `EmbeddingModel` instance to calculate embeddings for the documents. +You can pick one of the available xref:api/embeddings.adoc#available-implementations[EmbeddingModel Implementations]. -For example to use the xref:api/embeddings/openai-embeddings.adoc[OpenAI EmbeddingClient] add the following dependency to your project: +For example to use the xref:api/embeddings/openai-embeddings.adoc[OpenAI EmbeddingModel] add the following dependency to your project: [source,xml] ---- @@ -230,13 +230,13 @@ This provides you with an implementation of the Embeddings client: [source,java] ---- @Bean -public WeaviateVectorStore vectorStore(EmbeddingClient embeddingClient, WeaviateClient weaviateClient) { +public WeaviateVectorStore vectorStore(EmbeddingModel embeddingModel, WeaviateClient weaviateClient) { WeaviateVectorStoreConfig.Builder configBuilder = WeaviateVectorStore.WeaviateVectorStoreConfig.builder() .withObjectClass() .withConsistencyLevel(); - return new WeaviateVectorStore(configBuilder.build(), embeddingClient, weaviateClient); + return new WeaviateVectorStore(configBuilder.build(), embeddingModel, weaviateClient); } ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/contribution-guidelines.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/contribution-guidelines.adoc index b56717152..aca1a3c7b 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/contribution-guidelines.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/contribution-guidelines.adoc @@ -16,7 +16,7 @@ To contribute a new model, adhere to the following steps: you'll need to develop a low-level client API class. This often involves utilizing the `RestClient` class from the Spring Framework, similar to the `OpenAiApi` class. -. *Create a ModelClient implementation* +. *Create a Model implementation* Ensure your client conforms to the link:https://docs.spring.io/spring-ai/reference/api/generic-model.html[Generic Model API]. Use existing request and response classes if your model's inputs and outputs are supported. If not, create new classes for the Generic Model API and establish a new Java package. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc index 5072f31be..7195e6209 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc @@ -57,9 +57,9 @@ to === January 24, 2024 Update * Moving the `prompt` and `messages` and `metadata` packages to subpackages of `org.sf.ai.chat` -* New functionality is *text to image* clients. Classes are `OpenAiImageClient` and `StabilityAiImageClient`. See the integration tests for usage, docs are coming soon. +* New functionality is *text to image* clients. Classes are `OpenAiImageModel` and `StabilityAiImageModel`. See the integration tests for usage, docs are coming soon. * A new package `model` that contains interfaces and base classes to support creating AI Model Clients for any input/output data type combination. At the moment the chat and image model packages implement this. We will be updating the embedding package to this new model soon. -* A new "portable options" design pattern. We wanted to provide as much portability in the `ChatClient` as possible across different chat based AI Models. There is a common set of generation options and then those that are specific to a model provider. A sort of "duck typing" approach is used. `ModelOptions` in the model package is a marker interface indicating implementations of this class will provide the options for a model. See `ImageOptions`, a subinterface that defines portable options across all text->image `ImageClient` implementations. Then `StabilityAiImageOptions` and `OpenAiImageOptions` provide the options specific to each model provider. All options classes are created via a fluent API builder all can be passed into the portable `ImageClient` API. These option data types are using in autoconfiguration/configuration properties for the `ImageClient` implementations. +* A new "portable options" design pattern. We wanted to provide as much portability in the `ModelCall` as possible across different chat based AI Models. There is a common set of generation options and then those that are specific to a model provider. A sort of "duck typing" approach is used. `ModelOptions` in the model package is a marker interface indicating implementations of this class will provide the options for a model. See `ImageOptions`, a subinterface that defines portable options across all text->image `ImageModel` implementations. Then `StabilityAiImageOptions` and `OpenAiImageOptions` provide the options specific to each model provider. All options classes are created via a fluent API builder all can be passed into the portable `ImageModel` API. These option data types are using in autoconfiguration/configuration properties for the `ImageModel` implementations. === January 13, 2024 Update @@ -79,7 +79,7 @@ Merge SimplePersistentVectorStore and InMemoryVectorStore into SimpleVectorStore Refactor the Ollama client and related classes and package names -* Replace the org.springframework.ai.ollama.client.OllamaClient by org.springframework.ai.ollama.OllamaChatClient. +* Replace the org.springframework.ai.ollama.client.OllamaClient by org.springframework.ai.ollama.OllamaModelCall. * The OllamaChatClient method signatures have changed. * Rename the org.springframework.ai.autoconfigure.ollama.OllamaProperties into org.springframework.ai.autoconfigure.ollama.OllamaChatProperties and change the suffix to: `spring.ai.ollama.chat`. Some of the properties have changed as well. diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfiguration.java index e94598a8d..6179cb793 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.anthropic; import java.util.List; -import org.springframework.ai.anthropic.AnthropicChatClient; +import org.springframework.ai.anthropic.AnthropicChatModel; import org.springframework.ai.anthropic.api.AnthropicApi; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.model.function.FunctionCallback; @@ -57,7 +57,7 @@ public class AnthropicAutoConfiguration { @Bean @ConditionalOnMissingBean - public AnthropicChatClient anthropicChatClient(AnthropicApi anthropicApi, AnthropicChatProperties chatProperties, + public AnthropicChatModel anthropicChatModel(AnthropicApi anthropicApi, AnthropicChatProperties chatProperties, RetryTemplate retryTemplate, FunctionCallbackContext functionCallbackContext, List toolFunctionCallbacks) { @@ -65,7 +65,7 @@ public class AnthropicAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new AnthropicChatClient(anthropicApi, chatProperties.getOptions(), retryTemplate, + return new AnthropicChatModel(anthropicApi, chatProperties.getOptions(), retryTemplate, functionCallbackContext); } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicChatProperties.java index d9cdc0565..b83ba4540 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/anthropic/AnthropicChatProperties.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.anthropic; -import org.springframework.ai.anthropic.AnthropicChatClient; +import org.springframework.ai.anthropic.AnthropicChatModel; import org.springframework.ai.anthropic.AnthropicChatOptions; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; @@ -32,7 +32,7 @@ public class AnthropicChatProperties { public static final String CONFIG_PREFIX = "spring.ai.anthropic.chat"; /** - * Enable Anthropic chat client. + * Enable Anthropic chat model. */ private boolean enabled = true; @@ -43,9 +43,9 @@ public class AnthropicChatProperties { */ @NestedConfigurationProperty private AnthropicChatOptions options = AnthropicChatOptions.builder() - .withModel(AnthropicChatClient.DEFAULT_MODEL_NAME) - .withMaxTokens(AnthropicChatClient.DEFAULT_MAX_TOKENS) - .withTemperature(AnthropicChatClient.DEFAULT_TEMPERATURE) + .withModel(AnthropicChatModel.DEFAULT_MODEL_NAME) + .withMaxTokens(AnthropicChatModel.DEFAULT_MAX_TOKENS) + .withTemperature(AnthropicChatModel.DEFAULT_TEMPERATURE) .build(); public AnthropicChatOptions getOptions() { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiAutoConfiguration.java index a9b13e304..b4fb7ed4f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiAutoConfiguration.java @@ -22,8 +22,8 @@ import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.ClientOptions; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; -import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; +import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingModel; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -37,7 +37,7 @@ import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; @AutoConfiguration -@ConditionalOnClass({ OpenAIClientBuilder.class, AzureOpenAiChatClient.class }) +@ConditionalOnClass({ OpenAIClientBuilder.class, AzureOpenAiChatModel.class }) @EnableConfigurationProperties({ AzureOpenAiChatProperties.class, AzureOpenAiEmbeddingProperties.class, AzureOpenAiConnectionProperties.class }) public class AzureOpenAiAutoConfiguration { @@ -58,7 +58,7 @@ public class AzureOpenAiAutoConfiguration { @Bean @ConditionalOnProperty(prefix = AzureOpenAiChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public AzureOpenAiChatClient azureOpenAiChatClient(OpenAIClient openAIClient, + public AzureOpenAiChatModel azureOpenAiChatModel(OpenAIClient openAIClient, AzureOpenAiChatProperties chatProperties, List toolFunctionCallbacks, FunctionCallbackContext functionCallbackContext) { @@ -66,18 +66,18 @@ public class AzureOpenAiAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - AzureOpenAiChatClient azureOpenAiChatClient = new AzureOpenAiChatClient(openAIClient, - chatProperties.getOptions(), functionCallbackContext); + AzureOpenAiChatModel azureOpenAiChatModel = new AzureOpenAiChatModel(openAIClient, chatProperties.getOptions(), + functionCallbackContext); - return azureOpenAiChatClient; + return azureOpenAiChatModel; } @Bean @ConditionalOnProperty(prefix = AzureOpenAiEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public AzureOpenAiEmbeddingClient azureOpenAiEmbeddingClient(OpenAIClient openAIClient, + public AzureOpenAiEmbeddingModel azureOpenAiEmbeddingModel(OpenAIClient openAIClient, AzureOpenAiEmbeddingProperties embeddingProperties) { - return new AzureOpenAiEmbeddingClient(openAIClient, embeddingProperties.getMetadataMode(), + return new AzureOpenAiEmbeddingModel(openAIClient, embeddingProperties.getMetadataMode(), embeddingProperties.getOptions()); } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiChatProperties.java index 5ce9c2669..7e974c1a9 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiChatProperties.java @@ -29,7 +29,7 @@ public class AzureOpenAiChatProperties { private static final Double DEFAULT_TEMPERATURE = 0.7; /** - * Enable Azure OpenAI chat client. + * Enable Azure OpenAI chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiEmbeddingProperties.java index e320eec2f..d7eb357ba 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/azure/openai/AzureOpenAiEmbeddingProperties.java @@ -27,7 +27,7 @@ public class AzureOpenAiEmbeddingProperties { public static final String CONFIG_PREFIX = "spring.ai.azure.openai.embedding"; /** - * Enable Azure OpenAI embedding client. + * Enable Azure OpenAI embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java index 7b3d4d2d5..3e3032454 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.bedrock.anthropic; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatClient; +import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatModel; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,9 +59,9 @@ public class BedrockAnthropicChatAutoConfiguration { @Bean @ConditionalOnBean(AnthropicChatBedrockApi.class) - public BedrockAnthropicChatClient anthropicChatClient(AnthropicChatBedrockApi anthropicApi, + public BedrockAnthropicChatModel anthropicChatModel(AnthropicChatBedrockApi anthropicApi, BedrockAnthropicChatProperties properties) { - return new BedrockAnthropicChatClient(anthropicApi, properties.getOptions()); + return new BedrockAnthropicChatModel(anthropicApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java index ed1800b5c..e9b263677 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java @@ -35,7 +35,7 @@ public class BedrockAnthropicChatProperties { public static final String CONFIG_PREFIX = "spring.ai.bedrock.anthropic.chat"; /** - * Enable Bedrock Anthropic chat client. Disabled by default. + * Enable Bedrock Anthropic chat model. Disabled by default. */ private boolean enabled = false; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfiguration.java index 60e5cdce6..3e53f026b 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.bedrock.anthropic3; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.anthropic3.BedrockAnthropic3ChatClient; +import org.springframework.ai.bedrock.anthropic3.BedrockAnthropic3ChatModel; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,9 +59,9 @@ public class BedrockAnthropic3ChatAutoConfiguration { @Bean @ConditionalOnBean(Anthropic3ChatBedrockApi.class) - public BedrockAnthropic3ChatClient anthropic3ChatClient(Anthropic3ChatBedrockApi anthropicApi, + public BedrockAnthropic3ChatModel anthropic3ChatModel(Anthropic3ChatBedrockApi anthropicApi, BedrockAnthropic3ChatProperties properties) { - return new BedrockAnthropic3ChatClient(anthropicApi, properties.getOptions()); + return new BedrockAnthropic3ChatModel(anthropicApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatProperties.java index 54d516239..71086b0d6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatProperties.java @@ -34,7 +34,7 @@ public class BedrockAnthropic3ChatProperties { public static final String CONFIG_PREFIX = "spring.ai.bedrock.anthropic3.chat"; /** - * Enable Bedrock Anthropic chat client. Disabled by default. + * Enable Bedrock Anthropic chat model. Disabled by default. */ private boolean enabled = false; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java index 66b6d5e5e..896078e5b 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.bedrock.cohere; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.cohere.BedrockCohereChatClient; +import org.springframework.ai.bedrock.cohere.BedrockCohereChatModel; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -57,10 +57,10 @@ public class BedrockCohereChatAutoConfiguration { @Bean @ConditionalOnBean(CohereChatBedrockApi.class) - public BedrockCohereChatClient cohereChatClient(CohereChatBedrockApi cohereChatApi, + public BedrockCohereChatModel cohereChatModel(CohereChatBedrockApi cohereChatApi, BedrockCohereChatProperties properties) { - return new BedrockCohereChatClient(cohereChatApi, properties.getOptions()); + return new BedrockCohereChatModel(cohereChatApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java index 76e3ea603..82b6292de 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java @@ -21,7 +21,7 @@ import software.amazon.awssdk.regions.providers.AwsRegionProvider; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingClient; +import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingModel; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,10 +59,10 @@ public class BedrockCohereEmbeddingAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnBean(CohereEmbeddingBedrockApi.class) - public BedrockCohereEmbeddingClient cohereEmbeddingClient(CohereEmbeddingBedrockApi cohereEmbeddingApi, + public BedrockCohereEmbeddingModel cohereEmbeddingModel(CohereEmbeddingBedrockApi cohereEmbeddingApi, BedrockCohereEmbeddingProperties properties) { - return new BedrockCohereEmbeddingClient(cohereEmbeddingApi, properties.getOptions()); + return new BedrockCohereEmbeddingModel(cohereEmbeddingApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatAutoConfiguration.java index e8266a0e4..8ad3c0bb1 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatAutoConfiguration.java @@ -19,7 +19,7 @@ package org.springframework.ai.autoconfigure.bedrock.jurrasic2; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.jurassic2.BedrockAi21Jurassic2ChatClient; +import org.springframework.ai.bedrock.jurassic2.BedrockAi21Jurassic2ChatModel; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,10 +59,10 @@ public class BedrockAi21Jurassic2ChatAutoConfiguration { @Bean @ConditionalOnBean(Ai21Jurassic2ChatBedrockApi.class) - public BedrockAi21Jurassic2ChatClient jurassic2ChatClient(Ai21Jurassic2ChatBedrockApi ai21Jurassic2ChatBedrockApi, + public BedrockAi21Jurassic2ChatModel jurassic2ChatModel(Ai21Jurassic2ChatBedrockApi ai21Jurassic2ChatBedrockApi, BedrockAi21Jurassic2ChatProperties properties) { - return BedrockAi21Jurassic2ChatClient.builder(ai21Jurassic2ChatBedrockApi) + return BedrockAi21Jurassic2ChatModel.builder(ai21Jurassic2ChatBedrockApi) .withOptions(properties.getOptions()) .build(); } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatProperties.java index 217c7c7eb..eccd7e0c9 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/jurrasic2/BedrockAi21Jurassic2ChatProperties.java @@ -33,7 +33,7 @@ public class BedrockAi21Jurassic2ChatProperties { public static final String CONFIG_PREFIX = "spring.ai.bedrock.jurassic2.chat"; /** - * Enable Bedrock Ai21Jurassic2 chat client. Disabled by default. + * Enable Bedrock Ai21Jurassic2 chat model. Disabled by default. */ private boolean enabled = false; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfiguration.java index 9293acc84..6e105b8f2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfiguration.java @@ -16,12 +16,12 @@ package org.springframework.ai.autoconfigure.bedrock.llama; import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.ai.bedrock.llama.BedrockLlamaChatModel; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.regions.providers.AwsRegionProvider; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.llama.BedrockLlamaChatClient; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,9 +59,9 @@ public class BedrockLlamaChatAutoConfiguration { @Bean @ConditionalOnBean(LlamaChatBedrockApi.class) - public BedrockLlamaChatClient llamaChatClient(LlamaChatBedrockApi llamaApi, BedrockLlamaChatProperties properties) { + public BedrockLlamaChatModel llamaChatModel(LlamaChatBedrockApi llamaApi, BedrockLlamaChatProperties properties) { - return new BedrockLlamaChatClient(llamaApi, properties.getOptions()); + return new BedrockLlamaChatModel(llamaApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatProperties.java index f93b65aca..048b7dde2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatProperties.java @@ -32,7 +32,7 @@ public class BedrockLlamaChatProperties { public static final String CONFIG_PREFIX = "spring.ai.bedrock.llama.chat"; /** - * Enable Bedrock Llama chat client. Disabled by default. + * Enable Bedrock Llama chat model. Disabled by default. */ private boolean enabled = false; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfiguration.java index 67995b9e3..0115967fe 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.bedrock.titan; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.titan.BedrockTitanChatClient; +import org.springframework.ai.bedrock.titan.BedrockTitanChatModel; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -57,10 +57,10 @@ public class BedrockTitanChatAutoConfiguration { @Bean @ConditionalOnBean(TitanChatBedrockApi.class) - public BedrockTitanChatClient titanChatClient(TitanChatBedrockApi titanChatApi, + public BedrockTitanChatModel titanChatModel(TitanChatBedrockApi titanChatApi, BedrockTitanChatProperties properties) { - return new BedrockTitanChatClient(titanChatApi, properties.getOptions()); + return new BedrockTitanChatModel(titanChatApi, properties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfiguration.java index 5ea79d451..b019dc1c6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfiguration.java @@ -21,7 +21,7 @@ import software.amazon.awssdk.regions.providers.AwsRegionProvider; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -59,10 +59,10 @@ public class BedrockTitanEmbeddingAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnBean(TitanEmbeddingBedrockApi.class) - public BedrockTitanEmbeddingClient titanEmbeddingClient(TitanEmbeddingBedrockApi titanEmbeddingApi, + public BedrockTitanEmbeddingModel titanEmbeddingModel(TitanEmbeddingBedrockApi titanEmbeddingApi, BedrockTitanEmbeddingProperties properties) { - return new BedrockTitanEmbeddingClient(titanEmbeddingApi).withInputType(properties.getInputType()); + return new BedrockTitanEmbeddingModel(titanEmbeddingApi).withInputType(properties.getInputType()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingProperties.java index 3e80cfed8..9d9b1bd6e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingProperties.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.bedrock.titan; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient.InputType; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel.InputType; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingModel; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatAutoConfiguration.java index 42c3b1e73..ef28fe2b3 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.huggingface; -import org.springframework.ai.huggingface.HuggingfaceChatClient; +import org.springframework.ai.huggingface.HuggingfaceChatModel; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -24,7 +24,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; @AutoConfiguration -@ConditionalOnClass(HuggingfaceChatClient.class) +@ConditionalOnClass(HuggingfaceChatModel.class) @EnableConfigurationProperties(HuggingfaceChatProperties.class) public class HuggingfaceChatAutoConfiguration { @@ -32,8 +32,8 @@ public class HuggingfaceChatAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = HuggingfaceChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public HuggingfaceChatClient huggingfaceChatClient(HuggingfaceChatProperties huggingfaceChatProperties) { - return new HuggingfaceChatClient(huggingfaceChatProperties.getApiKey(), huggingfaceChatProperties.getUrl()); + public HuggingfaceChatModel huggingfaceChatModel(HuggingfaceChatProperties huggingfaceChatProperties) { + return new HuggingfaceChatModel(huggingfaceChatProperties.getApiKey(), huggingfaceChatProperties.getUrl()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatProperties.java index 4495a5123..d31bef3fb 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/huggingface/HuggingfaceChatProperties.java @@ -27,7 +27,7 @@ public class HuggingfaceChatProperties { private String url; /** - * Enable Huggingface chat client. + * Enable Huggingface chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfiguration.java index f3c805db2..80cde6dfe 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfiguration.java @@ -16,8 +16,8 @@ package org.springframework.ai.autoconfigure.minimax; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; -import org.springframework.ai.minimax.MiniMaxChatClient; -import org.springframework.ai.minimax.MiniMaxEmbeddingClient; +import org.springframework.ai.minimax.MiniMaxChatModel; +import org.springframework.ai.minimax.MiniMaxEmbeddingModel; import org.springframework.ai.minimax.api.MiniMaxApi; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; @@ -51,7 +51,7 @@ public class MiniMaxAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = MiniMaxChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public MiniMaxChatClient miniMaxChatClient(MiniMaxConnectionProperties commonProperties, + public MiniMaxChatModel miniMaxChatModel(MiniMaxConnectionProperties commonProperties, MiniMaxChatProperties chatProperties, RestClient.Builder restClientBuilder, List toolFunctionCallbacks, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -63,21 +63,21 @@ public class MiniMaxAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new MiniMaxChatClient(miniMaxApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); + return new MiniMaxChatModel(miniMaxApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); } @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = MiniMaxEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public MiniMaxEmbeddingClient miniMaxEmbeddingClient(MiniMaxConnectionProperties commonProperties, + public MiniMaxEmbeddingModel miniMaxEmbeddingModel(MiniMaxConnectionProperties commonProperties, MiniMaxEmbeddingProperties embeddingProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { var miniMaxApi = miniMaxApi(embeddingProperties.getBaseUrl(), commonProperties.getBaseUrl(), embeddingProperties.getApiKey(), commonProperties.getApiKey(), restClientBuilder, responseErrorHandler); - return new MiniMaxEmbeddingClient(miniMaxApi, embeddingProperties.getMetadataMode(), + return new MiniMaxEmbeddingModel(miniMaxApi, embeddingProperties.getMetadataMode(), embeddingProperties.getOptions(), retryTemplate); } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxChatProperties.java index c7f3716f3..e32748b30 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxChatProperties.java @@ -33,7 +33,7 @@ public class MiniMaxChatProperties extends MiniMaxParentProperties { private static final Double DEFAULT_TEMPERATURE = 0.7; /** - * Enable MiniMax chat client. + * Enable MiniMax chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxEmbeddingProperties.java index 21fbb752e..bfdb49174 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxEmbeddingProperties.java @@ -32,7 +32,7 @@ public class MiniMaxEmbeddingProperties extends MiniMaxParentProperties { public static final String DEFAULT_EMBEDDING_MODEL = MiniMaxApi.EmbeddingModel.Embo_01.value; /** - * Enable MiniMax embedding client. + * Enable MiniMax embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfiguration.java index 1328f3488..abc3104b2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfiguration.java @@ -18,8 +18,8 @@ package org.springframework.ai.autoconfigure.mistralai; import java.util.List; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; -import org.springframework.ai.mistralai.MistralAiChatClient; -import org.springframework.ai.mistralai.MistralAiEmbeddingClient; +import org.springframework.ai.mistralai.MistralAiChatModel; +import org.springframework.ai.mistralai.MistralAiEmbeddingModel; import org.springframework.ai.mistralai.api.MistralAiApi; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; @@ -53,7 +53,7 @@ public class MistralAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = MistralAiEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public MistralAiEmbeddingClient mistralAiEmbeddingClient(MistralAiCommonProperties commonProperties, + public MistralAiEmbeddingModel mistralAiEmbeddingModel(MistralAiCommonProperties commonProperties, MistralAiEmbeddingProperties embeddingProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -61,7 +61,7 @@ public class MistralAiAutoConfiguration { embeddingProperties.getBaseUrl(), commonProperties.getBaseUrl(), restClientBuilder, responseErrorHandler); - return new MistralAiEmbeddingClient(mistralAiApi, embeddingProperties.getMetadataMode(), + return new MistralAiEmbeddingModel(mistralAiApi, embeddingProperties.getMetadataMode(), embeddingProperties.getOptions(), retryTemplate); } @@ -69,7 +69,7 @@ public class MistralAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = MistralAiChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public MistralAiChatClient mistralAiChatClient(MistralAiCommonProperties commonProperties, + public MistralAiChatModel mistralAiChatModel(MistralAiCommonProperties commonProperties, MistralAiChatProperties chatProperties, RestClient.Builder restClientBuilder, List toolFunctionCallbacks, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -81,7 +81,7 @@ public class MistralAiAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new MistralAiChatClient(mistralAiApi, chatProperties.getOptions(), functionCallbackContext, + return new MistralAiChatModel(mistralAiApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiChatProperties.java index 4f9e00401..79b05a81f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiChatProperties.java @@ -43,7 +43,7 @@ public class MistralAiChatProperties extends MistralAiParentProperties { } /** - * Enable OpenAI chat client. + * Enable OpenAI chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiEmbeddingProperties.java index dbb5d8f3c..450ac479a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/mistralai/MistralAiEmbeddingProperties.java @@ -35,7 +35,7 @@ public class MistralAiEmbeddingProperties extends MistralAiParentProperties { public static final String DEFAULT_ENCODING_FORMAT = "float"; /** - * Enable MistralAI embedding client. + * Enable MistralAI embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaAutoConfiguration.java index 8b788e73b..0839b271e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaAutoConfiguration.java @@ -15,8 +15,8 @@ */ package org.springframework.ai.autoconfigure.ollama; -import org.springframework.ai.ollama.OllamaChatClient; -import org.springframework.ai.ollama.OllamaEmbeddingClient; +import org.springframework.ai.ollama.OllamaChatModel; +import org.springframework.ai.ollama.OllamaEmbeddingModel; import org.springframework.ai.ollama.api.OllamaApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -56,17 +56,17 @@ public class OllamaAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = OllamaChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public OllamaChatClient ollamaChatClient(OllamaApi ollamaApi, OllamaChatProperties properties) { - return new OllamaChatClient(ollamaApi, properties.getOptions()); + public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties properties) { + return new OllamaChatModel(ollamaApi, properties.getOptions()); } @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = OllamaEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public OllamaEmbeddingClient ollamaEmbeddingClient(OllamaApi ollamaApi, OllamaEmbeddingProperties properties) { + public OllamaEmbeddingModel ollamaEmbeddingModel(OllamaApi ollamaApi, OllamaEmbeddingProperties properties) { - return new OllamaEmbeddingClient(ollamaApi, properties.getOptions()); + return new OllamaEmbeddingModel(ollamaApi, properties.getOptions()); } private static class PropertiesOllamaConnectionDetails implements OllamaConnectionDetails { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaChatProperties.java index f3bc8ad78..2439c83e8 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaChatProperties.java @@ -31,7 +31,7 @@ public class OllamaChatProperties { public static final String CONFIG_PREFIX = "spring.ai.ollama.chat"; /** - * Enable Ollama chat client. + * Enable Ollama chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingProperties.java index 69f809ea1..a2368cd2e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingProperties.java @@ -31,7 +31,7 @@ public class OllamaEmbeddingProperties { public static final String CONFIG_PREFIX = "spring.ai.ollama.embedding"; /** - * Enable Ollama embedding client. + * Enable Ollama embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.java index 848456468..3a601abb2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.java @@ -20,11 +20,8 @@ import java.util.List; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; -import org.springframework.ai.openai.OpenAiImageClient; -import org.springframework.ai.openai.OpenAiAudioSpeechClient; +import org.springframework.ai.openai.*; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.openai.api.OpenAiAudioApi; import org.springframework.ai.openai.api.OpenAiImageApi; @@ -57,7 +54,7 @@ public class OpenAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = OpenAiChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public OpenAiChatClient openAiChatClient(OpenAiConnectionProperties commonProperties, + public OpenAiChatModel openAiChatModel(OpenAiConnectionProperties commonProperties, OpenAiChatProperties chatProperties, RestClient.Builder restClientBuilder, List toolFunctionCallbacks, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -69,21 +66,21 @@ public class OpenAiAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new OpenAiChatClient(openAiApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); + return new OpenAiChatModel(openAiApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); } @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = OpenAiEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public OpenAiEmbeddingClient openAiEmbeddingClient(OpenAiConnectionProperties commonProperties, + public OpenAiEmbeddingModel openAiEmbeddingModel(OpenAiConnectionProperties commonProperties, OpenAiEmbeddingProperties embeddingProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { var openAiApi = openAiApi(embeddingProperties.getBaseUrl(), commonProperties.getBaseUrl(), embeddingProperties.getApiKey(), commonProperties.getApiKey(), restClientBuilder, responseErrorHandler); - return new OpenAiEmbeddingClient(openAiApi, embeddingProperties.getMetadataMode(), + return new OpenAiEmbeddingModel(openAiApi, embeddingProperties.getMetadataMode(), embeddingProperties.getOptions(), retryTemplate); } @@ -103,7 +100,7 @@ public class OpenAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = OpenAiImageProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public OpenAiImageClient openAiImageClient(OpenAiConnectionProperties commonProperties, + public OpenAiImageModel openAiImageModel(OpenAiConnectionProperties commonProperties, OpenAiImageProperties imageProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -118,12 +115,12 @@ public class OpenAiAutoConfiguration { var openAiImageApi = new OpenAiImageApi(baseUrl, apiKey, restClientBuilder, responseErrorHandler); - return new OpenAiImageClient(openAiImageApi, imageProperties.getOptions(), retryTemplate); + return new OpenAiImageModel(openAiImageApi, imageProperties.getOptions(), retryTemplate); } @Bean @ConditionalOnMissingBean - public OpenAiAudioTranscriptionClient openAiAudioTranscriptionClient(OpenAiConnectionProperties commonProperties, + public OpenAiAudioTranscriptionModel openAiAudioTranscriptionModel(OpenAiConnectionProperties commonProperties, OpenAiAudioTranscriptionProperties transcriptionProperties, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -138,15 +135,15 @@ public class OpenAiAutoConfiguration { var openAiAudioApi = new OpenAiAudioApi(baseUrl, apiKey, RestClient.builder(), responseErrorHandler); - OpenAiAudioTranscriptionClient openAiChatClient = new OpenAiAudioTranscriptionClient(openAiAudioApi, + OpenAiAudioTranscriptionModel openAiChatModel = new OpenAiAudioTranscriptionModel(openAiAudioApi, transcriptionProperties.getOptions(), retryTemplate); - return openAiChatClient; + return openAiChatModel; } @Bean @ConditionalOnMissingBean - public OpenAiAudioSpeechClient openAiAudioSpeechClient(OpenAiConnectionProperties commonProperties, + public OpenAiAudioSpeechModel openAiAudioSpeechModel(OpenAiConnectionProperties commonProperties, OpenAiAudioSpeechProperties speechProperties, ResponseErrorHandler responseErrorHandler) { String apiKey = StringUtils.hasText(speechProperties.getApiKey()) ? speechProperties.getApiKey() @@ -160,10 +157,10 @@ public class OpenAiAutoConfiguration { var openAiAudioApi = new OpenAiAudioApi(baseUrl, apiKey, RestClient.builder(), responseErrorHandler); - OpenAiAudioSpeechClient openAiSpeechClient = new OpenAiAudioSpeechClient(openAiAudioApi, + OpenAiAudioSpeechModel openAiSpeechModel = new OpenAiAudioSpeechModel(openAiAudioApi, speechProperties.getOptions()); - return openAiSpeechClient; + return openAiSpeechModel; } @Bean diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiChatProperties.java index 5e9940b42..41524ed39 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiChatProperties.java @@ -29,7 +29,7 @@ public class OpenAiChatProperties extends OpenAiParentProperties { private static final Double DEFAULT_TEMPERATURE = 0.7; /** - * Enable OpenAI chat client. + * Enable OpenAI chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiEmbeddingProperties.java index fa796d92f..5901d4013 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiEmbeddingProperties.java @@ -28,7 +28,7 @@ public class OpenAiEmbeddingProperties extends OpenAiParentProperties { public static final String DEFAULT_EMBEDDING_MODEL = "text-embedding-ada-002"; /** - * Enable OpenAI embedding client. + * Enable OpenAI embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiImageProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiImageProperties.java index aa16503fa..06fb24bf6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiImageProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/openai/OpenAiImageProperties.java @@ -34,7 +34,7 @@ public class OpenAiImageProperties extends OpenAiParentProperties { public static final String DEFAULT_IMAGE_MODEL = OpenAiImageApi.ImageModel.DALL_E_3.getValue(); /** - * Enable OpenAI Image client. + * Enable OpenAI image model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfiguration.java index 78ac62dc4..ca30501b5 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.postgresml; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -26,13 +26,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.jdbc.core.JdbcTemplate; /** - * Auto-configuration class for PostgresMlEmbeddingClient. + * Auto-configuration class for PostgresMlEmbeddingModel. * * @author Utkarsh Srivastava * @author Christian Tzolov */ @AutoConfiguration(after = JdbcTemplateAutoConfiguration.class) -@ConditionalOnClass(PostgresMlEmbeddingClient.class) +@ConditionalOnClass(PostgresMlEmbeddingModel.class) @EnableConfigurationProperties(PostgresMlEmbeddingProperties.class) public class PostgresMlAutoConfiguration { @@ -40,10 +40,10 @@ public class PostgresMlAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = PostgresMlEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public PostgresMlEmbeddingClient postgresMlEmbeddingClient(JdbcTemplate jdbcTemplate, + public PostgresMlEmbeddingModel postgresMlEmbeddingModel(JdbcTemplate jdbcTemplate, PostgresMlEmbeddingProperties embeddingProperties) { - return new PostgresMlEmbeddingClient(jdbcTemplate, embeddingProperties.getOptions()); + return new PostgresMlEmbeddingModel(jdbcTemplate, embeddingProperties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingProperties.java index c0b13b540..53dba7f93 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingProperties.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.postgresml; import java.util.Map; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel; import org.springframework.ai.postgresml.PostgresMlEmbeddingOptions; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; @@ -36,14 +36,14 @@ public class PostgresMlEmbeddingProperties { public static final String CONFIG_PREFIX = "spring.ai.postgresml.embedding"; /** - * Enable Postgres ML embedding client. + * Enable Postgres ML embedding model. */ private boolean enabled = true; @NestedConfigurationProperty private PostgresMlEmbeddingOptions options = PostgresMlEmbeddingOptions.builder() - .withTransformer(PostgresMlEmbeddingClient.DEFAULT_TRANSFORMER_MODEL) - .withVectorType(PostgresMlEmbeddingClient.VectorType.PG_ARRAY) + .withTransformer(PostgresMlEmbeddingModel.DEFAULT_TRANSFORMER_MODEL) + .withVectorType(PostgresMlEmbeddingModel.VectorType.PG_ARRAY) .withKwargs(Map.of()) .withMetadataMode(MetadataMode.EMBED) .build(); diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageAutoConfiguration.java index fa1660983..5983499f2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.stabilityai; -import org.springframework.ai.stabilityai.StabilityAiImageClient; +import org.springframework.ai.stabilityai.StabilityAiImageModel; import org.springframework.ai.stabilityai.api.StabilityAiApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -58,9 +58,9 @@ public class StabilityAiImageAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = StabilityAiImageProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public StabilityAiImageClient stabilityAiImageClient(StabilityAiApi stabilityAiApi, + public StabilityAiImageModel stabilityAiImageModel(StabilityAiApi stabilityAiApi, StabilityAiImageProperties stabilityAiImageProperties) { - return new StabilityAiImageClient(stabilityAiApi, stabilityAiImageProperties.getOptions()); + return new StabilityAiImageModel(stabilityAiApi, stabilityAiImageProperties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageProperties.java index 4b81fe9e7..d307750df 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImageProperties.java @@ -30,7 +30,7 @@ public class StabilityAiImageProperties extends StabilityAiParentProperties { public static final String CONFIG_PREFIX = "spring.ai.stabilityai.image"; /** - * Enable Stability Image client. + * Enable Stability image model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.java similarity index 60% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfiguration.java rename to spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.java index adbacb01d..71ec54d5f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.transformers; import ai.djl.huggingface.tokenizers.HuggingFaceTokenizer; import ai.onnxruntime.OrtSession; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -30,29 +30,29 @@ import org.springframework.context.annotation.Bean; * @author Christian Tzolov */ @AutoConfiguration -@EnableConfigurationProperties({ TransformersEmbeddingClientProperties.class }) -@ConditionalOnClass({ OrtSession.class, HuggingFaceTokenizer.class, TransformersEmbeddingClient.class }) -public class TransformersEmbeddingClientAutoConfiguration { +@EnableConfigurationProperties({ TransformersEmbeddingModelProperties.class }) +@ConditionalOnClass({ OrtSession.class, HuggingFaceTokenizer.class, TransformersEmbeddingModel.class }) +public class TransformersEmbeddingModelAutoConfiguration { @Bean @ConditionalOnMissingBean - @ConditionalOnProperty(prefix = TransformersEmbeddingClientProperties.CONFIG_PREFIX, name = "enabled", + @ConditionalOnProperty(prefix = TransformersEmbeddingModelProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public TransformersEmbeddingClient embeddingClient(TransformersEmbeddingClientProperties properties) { + public TransformersEmbeddingModel embeddingModel(TransformersEmbeddingModelProperties properties) { - TransformersEmbeddingClient embeddingClient = new TransformersEmbeddingClient(properties.getMetadataMode()); + TransformersEmbeddingModel embeddingModel = new TransformersEmbeddingModel(properties.getMetadataMode()); - embeddingClient.setDisableCaching(!properties.getCache().isEnabled()); - embeddingClient.setResourceCacheDirectory(properties.getCache().getDirectory()); + embeddingModel.setDisableCaching(!properties.getCache().isEnabled()); + embeddingModel.setResourceCacheDirectory(properties.getCache().getDirectory()); - embeddingClient.setTokenizerResource(properties.getTokenizer().getUri()); - embeddingClient.setTokenizerOptions(properties.getTokenizer().getOptions()); + embeddingModel.setTokenizerResource(properties.getTokenizer().getUri()); + embeddingModel.setTokenizerOptions(properties.getTokenizer().getOptions()); - embeddingClient.setModelResource(properties.getOnnx().getModelUri()); + embeddingModel.setModelResource(properties.getOnnx().getModelUri()); - embeddingClient.setGpuDeviceId(properties.getOnnx().getGpuDeviceId()); + embeddingModel.setGpuDeviceId(properties.getOnnx().getGpuDeviceId()); - return embeddingClient; + return embeddingModel; } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelProperties.java similarity index 90% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientProperties.java rename to spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelProperties.java index 230f86b5a..0c0344eaf 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelProperties.java @@ -24,17 +24,17 @@ import ai.djl.huggingface.tokenizers.HuggingFaceTokenizer; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; -import static org.springframework.ai.autoconfigure.transformers.TransformersEmbeddingClientProperties.CONFIG_PREFIX; +import static org.springframework.ai.autoconfigure.transformers.TransformersEmbeddingModelProperties.CONFIG_PREFIX; /** * @author Christian Tzolov */ @ConfigurationProperties(CONFIG_PREFIX) -public class TransformersEmbeddingClientProperties { +public class TransformersEmbeddingModelProperties { public static final String CONFIG_PREFIX = "spring.ai.embedding.transformer"; @@ -65,7 +65,7 @@ public class TransformersEmbeddingClientProperties { * URI of a pre-trained HuggingFaceTokenizer created by the ONNX engine (e.g. * tokenizer.json). */ - private String uri = TransformersEmbeddingClient.DEFAULT_ONNX_TOKENIZER_URI; + private String uri = TransformersEmbeddingModel.DEFAULT_ONNX_TOKENIZER_URI; /** * HuggingFaceTokenizer options such as 'addSpecialTokens', 'modelMaxLength', @@ -145,12 +145,12 @@ public class TransformersEmbeddingClientProperties { * https://sbert.net/docs/pretrained_models.html. Defaults to * sentence-transformers/all-MiniLM-L6-v2. */ - private String modelUri = TransformersEmbeddingClient.DEFAULT_ONNX_MODEL_URI; + private String modelUri = TransformersEmbeddingModel.DEFAULT_ONNX_MODEL_URI; /** * Defaults to: 'last_hidden_state'. */ - private String modelOutputName = TransformersEmbeddingClient.DEFAULT_MODEL_OUTPUT_NAME; + private String modelOutputName = TransformersEmbeddingModel.DEFAULT_MODEL_OUTPUT_NAME; /** * Run on a GPU or with another provider (optional). @@ -196,9 +196,9 @@ public class TransformersEmbeddingClientProperties { /** * Specifies what parts of the {@link Document}'s content and metadata will be used * for computing the embeddings. Applicable for the - * {@link TransformersEmbeddingClient#embed(Document)} method only. Has no effect on - * the {@link TransformersEmbeddingClient#embed(String)} or - * {@link TransformersEmbeddingClient#embed(List)}. Defaults to + * {@link TransformersEmbeddingModel#embed(Document)} method only. Has no effect on + * the {@link TransformersEmbeddingModel#embed(String)} or + * {@link TransformersEmbeddingModel#embed(List)}. Defaults to * {@link MetadataMode#NONE}. */ private MetadataMode metadataMode = MetadataMode.NONE; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java index b36626fc7..d18527235 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java @@ -19,7 +19,7 @@ import com.azure.core.credential.AzureKeyCredential; import com.azure.search.documents.indexes.SearchIndexClient; import com.azure.search.documents.indexes.SearchIndexClientBuilder; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.azure.AzureVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -32,7 +32,7 @@ import org.springframework.context.annotation.Bean; * @author Christian Tzolov */ @AutoConfiguration -@ConditionalOnClass({ EmbeddingClient.class, SearchIndexClient.class, AzureVectorStore.class }) +@ConditionalOnClass({ EmbeddingModel.class, SearchIndexClient.class, AzureVectorStore.class }) @EnableConfigurationProperties({ AzureVectorStoreProperties.class }) @ConditionalOnProperty(prefix = "spring.ai.vectorstore.azure", value = { "url", "api-key", "index-name" }) public class AzureVectorStoreAutoConfiguration { @@ -47,10 +47,10 @@ public class AzureVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public AzureVectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingClient embeddingClient, + public AzureVectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingModel embeddingModel, AzureVectorStoreProperties properties) { - var vectorStore = new AzureVectorStore(searchIndexClient, embeddingClient); + var vectorStore = new AzureVectorStore(searchIndexClient, embeddingModel); vectorStore.setIndexName(properties.getIndexName()); diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfiguration.java index f9e760169..eb053338f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfiguration.java @@ -20,7 +20,7 @@ import java.time.Duration; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.config.DefaultDriverOption; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.CassandraVectorStore; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -42,7 +42,7 @@ public class CassandraVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public CassandraVectorStore vectorStore(EmbeddingClient embeddingClient, CassandraVectorStoreProperties properties, + public CassandraVectorStore vectorStore(EmbeddingModel embeddingModel, CassandraVectorStoreProperties properties, CqlSession cqlSession) { var builder = CassandraVectorStoreConfig.builder().withCqlSession(cqlSession); @@ -61,7 +61,7 @@ public class CassandraVectorStoreAutoConfiguration { builder = builder.returnEmbeddings(); } - return new CassandraVectorStore(builder.build(), embeddingClient); + return new CassandraVectorStore(builder.build(), embeddingModel); } @Bean diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfiguration.java index 74a2d3200..cd3cf9313 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfiguration.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.vectorstore.chroma; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.chroma.ChromaApi; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.ChromaVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -33,7 +33,7 @@ import org.springframework.web.client.RestTemplate; * @author Eddú Meléndez */ @AutoConfiguration -@ConditionalOnClass({ EmbeddingClient.class, RestTemplate.class, ChromaVectorStore.class, ObjectMapper.class }) +@ConditionalOnClass({ EmbeddingModel.class, RestTemplate.class, ChromaVectorStore.class, ObjectMapper.class }) @EnableConfigurationProperties({ ChromaApiProperties.class, ChromaVectorStoreProperties.class }) public class ChromaVectorStoreAutoConfiguration { @@ -70,9 +70,9 @@ public class ChromaVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public ChromaVectorStore vectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi, + public ChromaVectorStore vectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi, ChromaVectorStoreProperties storeProperties) { - return new ChromaVectorStore(embeddingClient, chromaApi, storeProperties.getCollectionName()); + return new ChromaVectorStore(embeddingModel, chromaApi, storeProperties.getCollectionName()); } private static class PropertiesChromaConnectionDetails implements ChromaConnectionDetails { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreAutoConfiguration.java index df614dbdb..460ec67f5 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.vectorstore.elasticsearch; import org.elasticsearch.client.RestClient; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.ElasticsearchVectorStore; import org.springframework.ai.vectorstore.ElasticsearchVectorStoreOptions; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -35,14 +35,14 @@ import org.springframework.util.StringUtils; */ @AutoConfiguration(after = ElasticsearchRestClientAutoConfiguration.class) -@ConditionalOnClass({ ElasticsearchVectorStore.class, EmbeddingClient.class, RestClient.class }) +@ConditionalOnClass({ ElasticsearchVectorStore.class, EmbeddingModel.class, RestClient.class }) @EnableConfigurationProperties(ElasticsearchVectorStoreProperties.class) class ElasticsearchVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean ElasticsearchVectorStore vectorStore(ElasticsearchVectorStoreProperties properties, RestClient restClient, - EmbeddingClient embeddingClient) { + EmbeddingModel embeddingModel) { ElasticsearchVectorStoreOptions elasticsearchVectorStoreOptions = new ElasticsearchVectorStoreOptions(); if (StringUtils.hasText(properties.getIndexName())) { @@ -58,7 +58,7 @@ class ElasticsearchVectorStoreAutoConfiguration { elasticsearchVectorStoreOptions.setSimilarity(properties.getSimilarity()); } - return new ElasticsearchVectorStore(elasticsearchVectorStoreOptions, restClient, embeddingClient); + return new ElasticsearchVectorStore(elasticsearchVectorStoreOptions, restClient, embeddingModel); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/hanadb/HanaCloudVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/hanadb/HanaCloudVectorStoreAutoConfiguration.java index edb69a13f..10076958a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/hanadb/HanaCloudVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/hanadb/HanaCloudVectorStoreAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.vectorstore.hanadb; import javax.sql.DataSource; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.HanaCloudVectorStore; import org.springframework.ai.vectorstore.HanaCloudVectorStoreConfig; import org.springframework.ai.vectorstore.HanaVectorEntity; @@ -41,9 +41,9 @@ public class HanaCloudVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean public HanaCloudVectorStore vectorStore(HanaVectorRepository repository, - EmbeddingClient embeddingClient, HanaCloudVectorStoreProperties properties) { + EmbeddingModel embeddingModel, HanaCloudVectorStoreProperties properties) { - return new HanaCloudVectorStore(repository, embeddingClient, + return new HanaCloudVectorStore(repository, embeddingModel, HanaCloudVectorStoreConfig.builder() .tableName(properties.getTableName()) .topK(properties.getTopK()) diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java index c1b2ab70a..db325d31a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java @@ -22,7 +22,7 @@ import io.milvus.param.ConnectParam; import io.milvus.param.IndexType; import io.milvus.param.MetricType; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.MilvusVectorStore; import org.springframework.ai.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -37,7 +37,7 @@ import org.springframework.util.StringUtils; * @author Eddú Meléndez */ @AutoConfiguration -@ConditionalOnClass({ MilvusVectorStore.class, EmbeddingClient.class }) +@ConditionalOnClass({ MilvusVectorStore.class, EmbeddingModel.class }) @EnableConfigurationProperties({ MilvusServiceClientProperties.class, MilvusVectorStoreProperties.class }) public class MilvusVectorStoreAutoConfiguration { @@ -50,7 +50,7 @@ public class MilvusVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public MilvusVectorStore vectorStore(MilvusServiceClient milvusClient, EmbeddingClient embeddingClient, + public MilvusVectorStore vectorStore(MilvusServiceClient milvusClient, EmbeddingModel embeddingModel, MilvusVectorStoreProperties properties) { MilvusVectorStoreConfig config = MilvusVectorStoreConfig.builder() @@ -62,7 +62,7 @@ public class MilvusVectorStoreAutoConfiguration { .withEmbeddingDimension(properties.getEmbeddingDimension()) .build(); - return new MilvusVectorStore(milvusClient, embeddingClient, config); + return new MilvusVectorStore(milvusClient, embeddingModel, config); } @Bean diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreAutoConfiguration.java index 2088a6fca..8baabd87f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.vectorstore.mongo; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.MongoDBAtlasVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -32,13 +32,13 @@ import org.springframework.util.StringUtils; * @since 1.0.0 */ @AutoConfiguration(after = MongoDataAutoConfiguration.class) -@ConditionalOnClass({ MongoDBAtlasVectorStore.class, EmbeddingClient.class, MongoTemplate.class }) +@ConditionalOnClass({ MongoDBAtlasVectorStore.class, EmbeddingModel.class, MongoTemplate.class }) @EnableConfigurationProperties(MongoDBAtlasVectorStoreProperties.class) public class MongoDBAtlasVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - MongoDBAtlasVectorStore vectorStore(MongoTemplate mongoTemplate, EmbeddingClient embeddingClient, + MongoDBAtlasVectorStore vectorStore(MongoTemplate mongoTemplate, EmbeddingModel embeddingModel, MongoDBAtlasVectorStoreProperties properties) { var builder = MongoDBAtlasVectorStore.MongoDBVectorStoreConfig.builder(); @@ -54,7 +54,7 @@ public class MongoDBAtlasVectorStoreAutoConfiguration { } MongoDBAtlasVectorStore.MongoDBVectorStoreConfig config = builder.build(); - return new MongoDBAtlasVectorStore(mongoTemplate, embeddingClient, config); + return new MongoDBAtlasVectorStore(mongoTemplate, embeddingModel, config); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfiguration.java index 28be1a7d1..e5abcf5fb 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.vectorstore.neo4j; import org.neo4j.driver.Driver; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.Neo4jVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -30,13 +30,13 @@ import org.springframework.context.annotation.Bean; * @author Jingzhou Ou */ @AutoConfiguration(after = Neo4jAutoConfiguration.class) -@ConditionalOnClass({ Neo4jVectorStore.class, EmbeddingClient.class, Driver.class }) +@ConditionalOnClass({ Neo4jVectorStore.class, EmbeddingModel.class, Driver.class }) @EnableConfigurationProperties({ Neo4jVectorStoreProperties.class }) public class Neo4jVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public Neo4jVectorStore vectorStore(Driver driver, EmbeddingClient embeddingClient, + public Neo4jVectorStore vectorStore(Driver driver, EmbeddingModel embeddingModel, Neo4jVectorStoreProperties properties) { Neo4jVectorStore.Neo4jVectorStoreConfig config = Neo4jVectorStore.Neo4jVectorStoreConfig.builder() .withDatabaseName(properties.getDatabaseName()) @@ -49,7 +49,7 @@ public class Neo4jVectorStoreAutoConfiguration { .withConstraintName(properties.getConstraintName()) .build(); - return new Neo4jVectorStore(driver, embeddingClient, config); + return new Neo4jVectorStore(driver, embeddingModel, config); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfiguration.java index 0ad62f417..58ff912cf 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.vectorstore.pgvector; import javax.sql.DataSource; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.PgVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -37,11 +37,11 @@ public class PgVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public PgVectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, + public PgVectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel, PgVectorStoreProperties properties) { - return new PgVectorStore(jdbcTemplate, embeddingClient, properties.getDimensions(), - properties.getDistanceType(), properties.isRemoveExistingVectorStoreTable(), properties.getIndexType()); + return new PgVectorStore(jdbcTemplate, embeddingModel, properties.getDimensions(), properties.getDistanceType(), + properties.isRemoveExistingVectorStoreTable(), properties.getIndexType()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java index 871b7dc55..2da22bb6f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.vectorstore.pinecone; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.PineconeVectorStore; import org.springframework.ai.vectorstore.PineconeVectorStore.PineconeVectorStoreConfig; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -28,13 +28,13 @@ import org.springframework.context.annotation.Bean; * @author Christian Tzolov */ @AutoConfiguration -@ConditionalOnClass({ PineconeVectorStore.class, EmbeddingClient.class }) +@ConditionalOnClass({ PineconeVectorStore.class, EmbeddingModel.class }) @EnableConfigurationProperties(PineconeVectorStoreProperties.class) public class PineconeVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public PineconeVectorStore vectorStore(EmbeddingClient embeddingClient, PineconeVectorStoreProperties properties) { + public PineconeVectorStore vectorStore(EmbeddingModel embeddingModel, PineconeVectorStoreProperties properties) { var config = PineconeVectorStoreConfig.builder() .withApiKey(properties.getApiKey()) @@ -45,7 +45,7 @@ public class PineconeVectorStoreAutoConfiguration { .withServerSideTimeout(properties.getServerSideTimeout()) .build(); - return new PineconeVectorStore(config, embeddingClient); + return new PineconeVectorStore(config, embeddingModel); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java index c0dd23640..5de119d99 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.vectorstore.qdrant; import io.qdrant.client.QdrantClient; import io.qdrant.client.QdrantGrpcClient; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.qdrant.QdrantVectorStore; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -31,7 +31,7 @@ import org.springframework.context.annotation.Bean; * @since 0.8.1 */ @AutoConfiguration -@ConditionalOnClass({ QdrantVectorStore.class, EmbeddingClient.class }) +@ConditionalOnClass({ QdrantVectorStore.class, EmbeddingModel.class }) @EnableConfigurationProperties(QdrantVectorStoreProperties.class) public class QdrantVectorStoreAutoConfiguration { @@ -56,9 +56,9 @@ public class QdrantVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public QdrantVectorStore vectorStore(EmbeddingClient embeddingClient, QdrantVectorStoreProperties properties, + public QdrantVectorStore vectorStore(EmbeddingModel embeddingModel, QdrantVectorStoreProperties properties, QdrantClient qdrantClient) { - return new QdrantVectorStore(qdrantClient, properties.getCollectionName(), embeddingClient); + return new QdrantVectorStore(qdrantClient, properties.getCollectionName(), embeddingModel); } static class PropertiesQdrantConnectionDetails implements QdrantConnectionDetails { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java index e17d76e7d..22df3a02d 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.vectorstore.redis; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.RedisVectorStore; import org.springframework.ai.vectorstore.RedisVectorStore.RedisVectorStoreConfig; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -29,7 +29,7 @@ import org.springframework.context.annotation.Bean; * @author Eddú Meléndez */ @AutoConfiguration -@ConditionalOnClass({ RedisVectorStore.class, EmbeddingClient.class }) +@ConditionalOnClass({ RedisVectorStore.class, EmbeddingModel.class }) @EnableConfigurationProperties(RedisVectorStoreProperties.class) public class RedisVectorStoreAutoConfiguration { @@ -41,7 +41,7 @@ public class RedisVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public RedisVectorStore vectorStore(EmbeddingClient embeddingClient, RedisVectorStoreProperties properties, + public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorStoreProperties properties, RedisConnectionDetails redisConnectionDetails) { var config = RedisVectorStoreConfig.builder() @@ -50,7 +50,7 @@ public class RedisVectorStoreAutoConfiguration { .withPrefix(properties.getPrefix()) .build(); - return new RedisVectorStore(config, embeddingClient); + return new RedisVectorStore(config, embeddingModel); } private static class PropertiesRedisConnectionDetails implements RedisConnectionDetails { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java index 431b70723..a358ce3dd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java @@ -19,7 +19,7 @@ import io.weaviate.client.Config; import io.weaviate.client.WeaviateAuthClient; import io.weaviate.client.WeaviateClient; import io.weaviate.client.v1.auth.exception.AuthException; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.WeaviateVectorStore; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField; @@ -34,7 +34,7 @@ import org.springframework.context.annotation.Bean; * @author Eddú Meléndez */ @AutoConfiguration -@ConditionalOnClass({ EmbeddingClient.class, WeaviateVectorStore.class }) +@ConditionalOnClass({ EmbeddingModel.class, WeaviateVectorStore.class }) @EnableConfigurationProperties({ WeaviateVectorStoreProperties.class }) public class WeaviateVectorStoreAutoConfiguration { @@ -60,7 +60,7 @@ public class WeaviateVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - public WeaviateVectorStore vectorStore(EmbeddingClient embeddingClient, WeaviateClient weaviateClient, + public WeaviateVectorStore vectorStore(EmbeddingModel embeddingModel, WeaviateClient weaviateClient, WeaviateVectorStoreProperties properties) { WeaviateVectorStoreConfig.Builder configBuilder = WeaviateVectorStore.WeaviateVectorStoreConfig.builder() @@ -72,7 +72,7 @@ public class WeaviateVectorStoreAutoConfiguration { .toList()) .withConsistencyLevel(properties.getConsistencyLevel()); - return new WeaviateVectorStore(configBuilder.build(), embeddingClient, weaviateClient); + return new WeaviateVectorStore(configBuilder.build(), embeddingModel, weaviateClient); } static class PropertiesWeaviateConnectionDetails implements WeaviateConnectionDetails { diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfiguration.java index 12dfb8134..813103603 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfiguration.java @@ -24,7 +24,7 @@ import com.google.cloud.vertexai.VertexAI; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; import org.springframework.ai.model.function.FunctionCallbackWrapper.Builder.SchemaType; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -40,7 +40,7 @@ import org.springframework.util.StringUtils; * @author Christian Tzolov * @since 0.8.0 */ -@ConditionalOnClass({ VertexAI.class, VertexAiGeminiChatClient.class }) +@ConditionalOnClass({ VertexAI.class, VertexAiGeminiChatModel.class }) @EnableConfigurationProperties({ VertexAiGeminiChatProperties.class, VertexAiGeminiConnectionProperties.class }) public class VertexAiGeminiAutoConfiguration { @@ -74,7 +74,7 @@ public class VertexAiGeminiAutoConfiguration { @Bean @ConditionalOnMissingBean - public VertexAiGeminiChatClient vertexAiGeminiChat(VertexAI vertexAi, VertexAiGeminiChatProperties chatProperties, + public VertexAiGeminiChatModel vertexAiGeminiChat(VertexAI vertexAi, VertexAiGeminiChatProperties chatProperties, List toolFunctionCallbacks, ApplicationContext context) { FunctionCallbackContext functionCallbackContext = springAiFunctionManager(context); @@ -83,7 +83,7 @@ public class VertexAiGeminiAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new VertexAiGeminiChatClient(vertexAi, chatProperties.getOptions(), functionCallbackContext); + return new VertexAiGeminiChatModel(vertexAi, chatProperties.getOptions(), functionCallbackContext); } /** diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiChatProperties.java index 866f4f352..141e4ce98 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiChatProperties.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.vertexai.gemini; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -30,7 +30,7 @@ public class VertexAiGeminiChatProperties { public static final String CONFIG_PREFIX = "spring.ai.vertex.ai.gemini.chat"; - public static final String DEFAULT_MODEL = VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_VISION.getValue(); + public static final String DEFAULT_MODEL = VertexAiGeminiChatModel.ChatModel.GEMINI_PRO_VISION.getValue(); /** * Vertex AI Gemini API generative options. diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2AutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2AutoConfiguration.java index c1ac9fa75..96708399f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2AutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2AutoConfiguration.java @@ -15,8 +15,8 @@ */ package org.springframework.ai.autoconfigure.vertexai.palm2; -import org.springframework.ai.vertexai.palm2.VertexAiPaLm2ChatClient; -import org.springframework.ai.vertexai.palm2.VertexAiPaLm2EmbeddingClient; +import org.springframework.ai.vertexai.palm2.VertexAiPaLm2ChatModel; +import org.springframework.ai.vertexai.palm2.VertexAiPaLm2EmbeddingModel; import org.springframework.ai.vertexai.palm2.api.VertexAiPaLm2Api; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,17 +47,17 @@ public class VertexAiPalm2AutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = VertexAiPlam2ChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public VertexAiPaLm2ChatClient vertexAiChatClient(VertexAiPaLm2Api vertexAiApi, + public VertexAiPaLm2ChatModel vertexAiChatModel(VertexAiPaLm2Api vertexAiApi, VertexAiPlam2ChatProperties chatProperties) { - return new VertexAiPaLm2ChatClient(vertexAiApi, chatProperties.getOptions()); + return new VertexAiPaLm2ChatModel(vertexAiApi, chatProperties.getOptions()); } @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = VertexAiPalm2EmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public VertexAiPaLm2EmbeddingClient vertexAiEmbeddingClient(VertexAiPaLm2Api vertexAiApi) { - return new VertexAiPaLm2EmbeddingClient(vertexAiApi); + public VertexAiPaLm2EmbeddingModel vertexAiEmbeddingModel(VertexAiPaLm2Api vertexAiApi) { + return new VertexAiPaLm2EmbeddingModel(vertexAiApi); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2EmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2EmbeddingProperties.java index 2e01dbeab..0dc079b03 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2EmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPalm2EmbeddingProperties.java @@ -24,7 +24,7 @@ public class VertexAiPalm2EmbeddingProperties { public static final String CONFIG_PREFIX = "spring.ai.vertex.ai.embedding"; /** - * Enable Vertex AI PaLM API embedding client. + * Enable Vertex AI PaLM API embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPlam2ChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPlam2ChatProperties.java index 881f8e8dc..d966f9d7e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPlam2ChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPlam2ChatProperties.java @@ -25,7 +25,7 @@ public class VertexAiPlam2ChatProperties { public static final String CONFIG_PREFIX = "spring.ai.vertex.ai.chat"; /** - * Enable Vertex AI PaLM API chat client. + * Enable Vertex AI PaLM API chat model */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiAutoConfiguration.java index ce651ee17..fd62de3ce 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiAutoConfiguration.java @@ -15,7 +15,7 @@ */ package org.springframework.ai.autoconfigure.watsonxai; -import org.springframework.ai.watsonx.WatsonxAiChatClient; +import org.springframework.ai.watsonx.WatsonxAiChatModel; import org.springframework.ai.watsonx.api.WatsonxAiApi; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -50,8 +50,8 @@ public class WatsonxAiAutoConfiguration { @Bean @ConditionalOnMissingBean - public WatsonxAiChatClient watsonxChatClient(WatsonxAiApi watsonxApi, WatsonxAiChatProperties chatProperties) { - return new WatsonxAiChatClient(watsonxApi, chatProperties.getOptions()); + public WatsonxAiChatModel watsonxChatModel(WatsonxAiApi watsonxApi, WatsonxAiChatProperties chatProperties) { + return new WatsonxAiChatModel(watsonxApi, chatProperties.getOptions()); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiChatProperties.java index 3da222e93..c0db014dd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/watsonxai/WatsonxAiChatProperties.java @@ -33,7 +33,7 @@ public class WatsonxAiChatProperties { public static final String CONFIG_PREFIX = "spring.ai.watsonx.ai.chat"; /** - * Enable Watsonx.AI chat client. + * Enable Watsonx.AI chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfiguration.java index e2c8b1126..894b533b0 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfiguration.java @@ -18,9 +18,9 @@ package org.springframework.ai.autoconfigure.zhipuai; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackContext; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; -import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingClient; -import org.springframework.ai.zhipuai.ZhiPuAiImageClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; +import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingModel; +import org.springframework.ai.zhipuai.ZhiPuAiImageModel; import org.springframework.ai.zhipuai.api.ZhiPuAiApi; import org.springframework.ai.zhipuai.api.ZhiPuAiImageApi; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -53,7 +53,7 @@ public class ZhiPuAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = ZhiPuAiChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public ZhiPuAiChatClient zhiPuAiChatClient(ZhiPuAiConnectionProperties commonProperties, + public ZhiPuAiChatModel zhiPuAiChatModel(ZhiPuAiConnectionProperties commonProperties, ZhiPuAiChatProperties chatProperties, RestClient.Builder restClientBuilder, List toolFunctionCallbacks, FunctionCallbackContext functionCallbackContext, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -65,21 +65,21 @@ public class ZhiPuAiAutoConfiguration { chatProperties.getOptions().getFunctionCallbacks().addAll(toolFunctionCallbacks); } - return new ZhiPuAiChatClient(zhiPuAiApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); + return new ZhiPuAiChatModel(zhiPuAiApi, chatProperties.getOptions(), functionCallbackContext, retryTemplate); } @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix = ZhiPuAiEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public ZhiPuAiEmbeddingClient zhiPuAiEmbeddingClient(ZhiPuAiConnectionProperties commonProperties, + public ZhiPuAiEmbeddingModel zhiPuAiEmbeddingModel(ZhiPuAiConnectionProperties commonProperties, ZhiPuAiEmbeddingProperties embeddingProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { var zhiPuAiApi = zhiPuAiApi(embeddingProperties.getBaseUrl(), commonProperties.getBaseUrl(), embeddingProperties.getApiKey(), commonProperties.getApiKey(), restClientBuilder, responseErrorHandler); - return new ZhiPuAiEmbeddingClient(zhiPuAiApi, embeddingProperties.getMetadataMode(), + return new ZhiPuAiEmbeddingModel(zhiPuAiApi, embeddingProperties.getMetadataMode(), embeddingProperties.getOptions(), retryTemplate); } @@ -99,7 +99,7 @@ public class ZhiPuAiAutoConfiguration { @ConditionalOnMissingBean @ConditionalOnProperty(prefix = ZhiPuAiImageProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true) - public ZhiPuAiImageClient zhiPuAiImageClient(ZhiPuAiConnectionProperties commonProperties, + public ZhiPuAiImageModel zhiPuAiImageModel(ZhiPuAiConnectionProperties commonProperties, ZhiPuAiImageProperties imageProperties, RestClient.Builder restClientBuilder, RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) { @@ -114,7 +114,7 @@ public class ZhiPuAiAutoConfiguration { var zhiPuAiImageApi = new ZhiPuAiImageApi(baseUrl, apiKey, restClientBuilder, responseErrorHandler); - return new ZhiPuAiImageClient(zhiPuAiImageApi, imageProperties.getOptions(), retryTemplate); + return new ZhiPuAiImageModel(zhiPuAiImageApi, imageProperties.getOptions(), retryTemplate); } @Bean diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiChatProperties.java index 1ec554b44..8b54e7e81 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiChatProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiChatProperties.java @@ -33,7 +33,7 @@ public class ZhiPuAiChatProperties extends ZhiPuAiParentProperties { private static final Double DEFAULT_TEMPERATURE = 0.7; /** - * Enable ZhiPuAI chat client. + * Enable ZhiPuAI chat model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiEmbeddingProperties.java index 78357ceff..4e1c6ef80 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiEmbeddingProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiEmbeddingProperties.java @@ -32,7 +32,7 @@ public class ZhiPuAiEmbeddingProperties extends ZhiPuAiParentProperties { public static final String DEFAULT_EMBEDDING_MODEL = ZhiPuAiApi.EmbeddingModel.Embedding_2.value; /** - * Enable ZhiPuAI embedding client. + * Enable ZhiPuAI embedding model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiImageProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiImageProperties.java index 19ce4f7bb..7463d4573 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiImageProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiImageProperties.java @@ -28,7 +28,7 @@ public class ZhiPuAiImageProperties extends ZhiPuAiParentProperties { public static final String CONFIG_PREFIX = "spring.ai.zhipuai.image"; /** - * Enable ZhiPuAI Image client. + * Enable ZhiPuAI image model. */ private boolean enabled = true; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 4cbab5ad6..3ce1ae92c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,7 +1,7 @@ org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration org.springframework.ai.autoconfigure.azure.openai.AzureOpenAiAutoConfiguration org.springframework.ai.autoconfigure.stabilityai.StabilityAiImageAutoConfiguration -org.springframework.ai.autoconfigure.transformers.TransformersEmbeddingClientAutoConfiguration +org.springframework.ai.autoconfigure.transformers.TransformersEmbeddingModelAutoConfiguration org.springframework.ai.autoconfigure.huggingface.HuggingfaceChatAutoConfiguration org.springframework.ai.autoconfigure.vertexai.palm2.VertexAiPalm2AutoConfiguration org.springframework.ai.autoconfigure.vertexai.gemini.VertexAiGeminiAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfigurationIT.java index 69e33a304..587bcb715 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicAutoConfigurationIT.java @@ -22,9 +22,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.anthropic.AnthropicChatModel; import reactor.core.publisher.Flux; -import org.springframework.ai.anthropic.AnthropicChatClient; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -50,8 +50,8 @@ public class AnthropicAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - AnthropicChatClient chatClient = context.getBean(AnthropicChatClient.class); - String response = chatClient.call("Hello"); + AnthropicChatModel chatModel = context.getBean(AnthropicChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -60,8 +60,8 @@ public class AnthropicAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - AnthropicChatClient chatClient = context.getBean(AnthropicChatClient.class); - Flux responseFlux = chatClient.stream(new Prompt(new UserMessage("Hello"))); + AnthropicChatModel chatModel = context.getBean(AnthropicChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList() .block() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicPropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicPropertiesTests.java index 0c2c6aae3..086e7e5b5 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicPropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/AnthropicPropertiesTests.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.anthropic; import org.junit.jupiter.api.Test; -import org.springframework.ai.anthropic.AnthropicChatClient; +import org.springframework.ai.anthropic.AnthropicChatModel; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -102,7 +102,7 @@ public class AnthropicPropertiesTests { RestClientAutoConfiguration.class, AnthropicAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(AnthropicChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(AnthropicChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AnthropicChatModel.class)).isNotEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -111,7 +111,7 @@ public class AnthropicPropertiesTests { RestClientAutoConfiguration.class, AnthropicAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(AnthropicChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(AnthropicChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AnthropicChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -120,7 +120,7 @@ public class AnthropicPropertiesTests { RestClientAutoConfiguration.class, AnthropicAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(AnthropicChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(AnthropicChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(AnthropicChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithFunctionBeanIT.java index d170add72..6e7366e2e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithFunctionBeanIT.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.anthropic.AnthropicChatClient; +import org.springframework.ai.anthropic.AnthropicChatModel; import org.springframework.ai.anthropic.AnthropicChatOptions; import org.springframework.ai.anthropic.api.AnthropicApi; import org.springframework.ai.autoconfigure.anthropic.AnthropicAutoConfiguration; @@ -61,19 +61,19 @@ class FunctionCallWithFunctionBeanIT { "spring.ai.anthropic.chat.options.model=" + AnthropicApi.ChatModel.CLAUDE_3_OPUS.getValue()) .run(context -> { - AnthropicChatClient chatClient = context.getBean(AnthropicChatClient.class); + AnthropicChatModel chatModel = context.getBean(AnthropicChatModel.class); var userMessage = new UserMessage( "What's the weather like in San Francisco, in Paris, France and in Tokyo, Japan? Return the temperature in Celsius."); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), AnthropicChatOptions.builder().withFunction("weatherFunction").build())); logger.info("Response: {}", response); assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); - response = chatClient.call(new Prompt(List.of(userMessage), + response = chatModel.call(new Prompt(List.of(userMessage), AnthropicChatOptions.builder().withFunction("weatherFunction3").build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java index a9592cae7..31e67231f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/anthropic/tool/FunctionCallWithPromptFunctionIT.java @@ -22,7 +22,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.anthropic.AnthropicChatClient; +import org.springframework.ai.anthropic.AnthropicChatModel; import org.springframework.ai.anthropic.AnthropicChatOptions; import org.springframework.ai.anthropic.api.AnthropicApi; import org.springframework.ai.autoconfigure.anthropic.AnthropicAutoConfiguration; @@ -54,7 +54,7 @@ public class FunctionCallWithPromptFunctionIT { "spring.ai.anthropic.chat.options.model=" + AnthropicApi.ChatModel.CLAUDE_3_OPUS.getValue()) .run(context -> { - AnthropicChatClient chatClient = context.getBean(AnthropicChatClient.class); + AnthropicChatModel chatModel = context.getBean(AnthropicChatModel.class); UserMessage userMessage = new UserMessage( "What's the weather like in San Francisco, in Paris and in Tokyo? Return the temperature in Celsius."); @@ -66,7 +66,7 @@ public class FunctionCallWithPromptFunctionIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/AzureOpenAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/AzureOpenAiAutoConfigurationIT.java index ce7075250..2b3c3be0e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/AzureOpenAiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/AzureOpenAiAutoConfigurationIT.java @@ -21,12 +21,12 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.chat.messages.AssistantMessage; import reactor.core.publisher.Flux; import org.springframework.ai.autoconfigure.azure.openai.AzureOpenAiAutoConfiguration; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; -import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingClient; +import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.embedding.EmbeddingResponse; @@ -77,8 +77,8 @@ public class AzureOpenAiAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - AzureOpenAiChatClient chatClient = context.getBean(AzureOpenAiChatClient.class); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage, systemMessage))); + AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -87,9 +87,9 @@ public class AzureOpenAiAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - AzureOpenAiChatClient chatClient = context.getBean(AzureOpenAiChatClient.class); + AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class); - Flux response = chatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = chatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(1); @@ -108,9 +108,9 @@ public class AzureOpenAiAutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - AzureOpenAiEmbeddingClient embeddingClient = context.getBean(AzureOpenAiEmbeddingClient.class); + AzureOpenAiEmbeddingModel embeddingModel = context.getBean(AzureOpenAiEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -118,7 +118,7 @@ public class AzureOpenAiAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); }); } @@ -127,17 +127,17 @@ public class AzureOpenAiAutoConfigurationIT { // Disable the chat auto-configuration. contextRunner.withPropertyValues("spring.ai.azure.openai.chat.enabled=false").run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isEmpty(); }); // The chat auto-configuration is enabled by default. contextRunner.run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty(); }); // Explicitly enable the chat auto-configuration. contextRunner.withPropertyValues("spring.ai.azure.openai.chat.enabled=true").run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty(); }); } @@ -146,17 +146,17 @@ public class AzureOpenAiAutoConfigurationIT { // Disable the embedding auto-configuration. contextRunner.withPropertyValues("spring.ai.azure.openai.embedding.enabled=false").run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isEmpty(); }); // The embedding auto-configuration is enabled by default. contextRunner.run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty(); }); // Explicitly enable the embedding auto-configuration. contextRunner.withPropertyValues("spring.ai.azure.openai.embedding.enabled=true").run(context -> { - assertThat(context.getBeansOfType(AzureOpenAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionBeanIT.java index e8a7e2126..30ec5df8b 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionBeanIT.java @@ -24,9 +24,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.autoconfigure.azure.openai.AzureOpenAiAutoConfiguration; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.AzureOpenAiChatOptions; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; @@ -57,19 +57,19 @@ class FunctionCallWithFunctionBeanIT { contextRunner.withPropertyValues("spring.ai.azure.openai.chat.options..deployment-name=gpt-4-0125-preview") .run(context -> { - ChatClient chatClient = context.getBean(AzureOpenAiChatClient.class); + ChatModel chatModel = context.getBean(AzureOpenAiChatModel.class); UserMessage userMessage = new UserMessage( "What's the weather like in San Francisco, Paris and in Tokyo? Use Multi-turn function calling."); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), AzureOpenAiChatOptions.builder().withFunction("weatherFunction").build())); logger.info("Response: {}", response); assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); - response = chatClient.call(new Prompt(List.of(userMessage), + response = chatModel.call(new Prompt(List.of(userMessage), AzureOpenAiChatOptions.builder().withFunction("weatherFunction3").build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionWrapperIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionWrapperIT.java index 934b84cf1..06fb413ca 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionWrapperIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithFunctionWrapperIT.java @@ -23,7 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.autoconfigure.azure.openai.AzureOpenAiAutoConfiguration; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.AzureOpenAiChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; @@ -56,12 +56,12 @@ public class FunctionCallWithFunctionWrapperIT { contextRunner.withPropertyValues("spring.ai.azure.openai.chat.options.deployment-name=gpt-4-0125-preview") .run(context -> { - AzureOpenAiChatClient chatClient = context.getBean(AzureOpenAiChatClient.class); + AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class); UserMessage userMessage = new UserMessage( "What's the weather like in San Francisco, Paris and in Tokyo?"); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), AzureOpenAiChatOptions.builder().withFunction("WeatherInfo").build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java index 9bef922d2..048d4fa6c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/azure/tool/FunctionCallWithPromptFunctionIT.java @@ -23,7 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.autoconfigure.azure.openai.AzureOpenAiAutoConfiguration; -import org.springframework.ai.azure.openai.AzureOpenAiChatClient; +import org.springframework.ai.azure.openai.AzureOpenAiChatModel; import org.springframework.ai.azure.openai.AzureOpenAiChatOptions; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; @@ -52,7 +52,7 @@ public class FunctionCallWithPromptFunctionIT { contextRunner.withPropertyValues("spring.ai.azure.openai.chat.options.deployment-name=gpt-4-0125-preview") .run(context -> { - AzureOpenAiChatClient chatClient = context.getBean(AzureOpenAiChatClient.class); + AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class); UserMessage userMessage = new UserMessage( "What's the weather like in San Francisco, in Paris and in Tokyo? Use Multi-turn function calling."); @@ -64,7 +64,7 @@ public class FunctionCallWithPromptFunctionIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java index f8aca8b9a..014ba672b 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java @@ -21,12 +21,12 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatModel; import org.springframework.ai.chat.messages.AssistantMessage; import reactor.core.publisher.Flux; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatClient; import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -69,8 +69,8 @@ public class BedrockAnthropicChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockAnthropicChatClient anthropicChatClient = context.getBean(BedrockAnthropicChatClient.class); - ChatResponse response = anthropicChatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockAnthropicChatModel anthropicChatModel = context.getBean(BedrockAnthropicChatModel.class); + ChatResponse response = anthropicChatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -79,9 +79,9 @@ public class BedrockAnthropicChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - BedrockAnthropicChatClient anthropicChatClient = context.getBean(BedrockAnthropicChatClient.class); + BedrockAnthropicChatModel anthropicChatModel = context.getBean(BedrockAnthropicChatModel.class); - Flux response = anthropicChatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = anthropicChatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(2); @@ -130,7 +130,7 @@ public class BedrockAnthropicChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -138,7 +138,7 @@ public class BedrockAnthropicChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -146,7 +146,7 @@ public class BedrockAnthropicChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfigurationIT.java index 467fedc7e..8cf6d91b0 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic3/BedrockAnthropic3ChatAutoConfigurationIT.java @@ -21,12 +21,12 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.bedrock.anthropic3.BedrockAnthropic3ChatModel; import org.springframework.ai.chat.messages.AssistantMessage; import reactor.core.publisher.Flux; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.anthropic3.BedrockAnthropic3ChatClient; import org.springframework.ai.bedrock.anthropic3.api.Anthropic3ChatBedrockApi.AnthropicChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; @@ -69,8 +69,8 @@ public class BedrockAnthropic3ChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockAnthropic3ChatClient anthropicChatClient = context.getBean(BedrockAnthropic3ChatClient.class); - ChatResponse response = anthropicChatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockAnthropic3ChatModel anthropicChatModel = context.getBean(BedrockAnthropic3ChatModel.class); + ChatResponse response = anthropicChatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -79,9 +79,9 @@ public class BedrockAnthropic3ChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - BedrockAnthropic3ChatClient anthropicChatClient = context.getBean(BedrockAnthropic3ChatClient.class); + BedrockAnthropic3ChatModel anthropicChatModel = context.getBean(BedrockAnthropic3ChatModel.class); - Flux response = anthropicChatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = anthropicChatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(2); @@ -130,7 +130,7 @@ public class BedrockAnthropic3ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropic3ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropic3ChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropic3ChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropic3ChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -138,7 +138,7 @@ public class BedrockAnthropic3ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropic3ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropic3ChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropic3ChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropic3ChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -146,7 +146,7 @@ public class BedrockAnthropic3ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAnthropic3ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAnthropic3ChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAnthropic3ChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropic3ChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java index e515f6afd..815030555 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java @@ -21,13 +21,13 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.bedrock.cohere.BedrockCohereChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.AssistantMessage; import reactor.core.publisher.Flux; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.cohere.BedrockCohereChatClient; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatModel; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.ReturnLikelihoods; import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.Truncate; @@ -72,8 +72,8 @@ public class BedrockCohereChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockCohereChatClient cohereChatClient = context.getBean(BedrockCohereChatClient.class); - ChatResponse response = cohereChatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockCohereChatModel cohereChatModel = context.getBean(BedrockCohereChatModel.class); + ChatResponse response = cohereChatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -82,9 +82,9 @@ public class BedrockCohereChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - BedrockCohereChatClient cohereChatClient = context.getBean(BedrockCohereChatClient.class); + BedrockCohereChatModel cohereChatModel = context.getBean(BedrockCohereChatModel.class); - Flux response = cohereChatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = cohereChatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(2); @@ -146,7 +146,7 @@ public class BedrockCohereChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -154,7 +154,7 @@ public class BedrockCohereChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -162,7 +162,7 @@ public class BedrockCohereChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java index 49498f7c5..14d388955 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.bedrock.cohere; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingClient; +import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingModel; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingModel; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest.InputType; @@ -52,12 +52,12 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { @Test public void singleEmbedding() { contextRunner.run(context -> { - BedrockCohereEmbeddingClient embeddingClient = context.getBean(BedrockCohereEmbeddingClient.class); - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + BedrockCohereEmbeddingModel embeddingModel = context.getBean(BedrockCohereEmbeddingModel.class); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); }); } @@ -65,10 +65,10 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { public void batchEmbedding() { contextRunner.run(context -> { - BedrockCohereEmbeddingClient embeddingClient = context.getBean(BedrockCohereEmbeddingClient.class); + BedrockCohereEmbeddingModel embeddingModel = context.getBean(BedrockCohereEmbeddingModel.class); - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -76,7 +76,7 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); }); } @@ -116,7 +116,7 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingModel.class)).isEmpty(); }); // Explicitly enable the embedding auto-configuration. @@ -124,7 +124,7 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingModel.class)).isNotEmpty(); }); // Explicitly disable the embedding auto-configuration. @@ -132,7 +132,7 @@ public class BedrockCohereEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/jurassic2/BedrockAi21Jurassic2ChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/jurassic2/BedrockAi21Jurassic2ChatAutoConfigurationIT.java index 057e46483..a2cbf3f0d 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/jurassic2/BedrockAi21Jurassic2ChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/jurassic2/BedrockAi21Jurassic2ChatAutoConfigurationIT.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; import org.springframework.ai.autoconfigure.bedrock.jurrasic2.BedrockAi21Jurassic2ChatAutoConfiguration; import org.springframework.ai.autoconfigure.bedrock.jurrasic2.BedrockAi21Jurassic2ChatProperties; -import org.springframework.ai.bedrock.jurassic2.BedrockAi21Jurassic2ChatClient; +import org.springframework.ai.bedrock.jurassic2.BedrockAi21Jurassic2ChatModel; import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.Message; @@ -69,9 +69,8 @@ public class BedrockAi21Jurassic2ChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockAi21Jurassic2ChatClient ai21Jurassic2ChatClient = context - .getBean(BedrockAi21Jurassic2ChatClient.class); - ChatResponse response = ai21Jurassic2ChatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockAi21Jurassic2ChatModel ai21Jurassic2ChatModel = context.getBean(BedrockAi21Jurassic2ChatModel.class); + ChatResponse response = ai21Jurassic2ChatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -111,7 +110,7 @@ public class BedrockAi21Jurassic2ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAi21Jurassic2ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -119,7 +118,7 @@ public class BedrockAi21Jurassic2ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAi21Jurassic2ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -127,7 +126,7 @@ public class BedrockAi21Jurassic2ChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockAi21Jurassic2ChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAi21Jurassic2ChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfigurationIT.java index 6ca69b655..5e9241181 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama/BedrockLlamaChatAutoConfigurationIT.java @@ -21,13 +21,13 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.bedrock.llama.BedrockLlamaChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.AssistantMessage; import reactor.core.publisher.Flux; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.llama.BedrockLlamaChatClient; import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatModel; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.prompt.Prompt; @@ -71,8 +71,8 @@ public class BedrockLlamaChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockLlamaChatClient llamaChatClient = context.getBean(BedrockLlamaChatClient.class); - ChatResponse response = llamaChatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockLlamaChatModel llamaChatModel = context.getBean(BedrockLlamaChatModel.class); + ChatResponse response = llamaChatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -81,9 +81,9 @@ public class BedrockLlamaChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - BedrockLlamaChatClient llamaChatClient = context.getBean(BedrockLlamaChatClient.class); + BedrockLlamaChatModel llamaChatModel = context.getBean(BedrockLlamaChatModel.class); - Flux response = llamaChatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = llamaChatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(2); @@ -133,7 +133,7 @@ public class BedrockLlamaChatAutoConfigurationIT { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(BedrockLlamaChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockLlamaChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockLlamaChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockLlamaChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -141,7 +141,7 @@ public class BedrockLlamaChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockLlamaChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockLlamaChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockLlamaChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockLlamaChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -149,7 +149,7 @@ public class BedrockLlamaChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockLlamaChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockLlamaChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockLlamaChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockLlamaChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfigurationIT.java index 93c654178..0783d8149 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanChatAutoConfigurationIT.java @@ -27,7 +27,7 @@ import reactor.core.publisher.Flux; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.titan.BedrockTitanChatClient; +import org.springframework.ai.bedrock.titan.BedrockTitanChatModel; import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatModel; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.prompt.Prompt; @@ -70,8 +70,8 @@ public class BedrockTitanChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - BedrockTitanChatClient chatClient = context.getBean(BedrockTitanChatClient.class); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage, systemMessage))); + BedrockTitanChatModel chatModel = context.getBean(BedrockTitanChatModel.class); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -80,9 +80,9 @@ public class BedrockTitanChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - BedrockTitanChatClient chatClient = context.getBean(BedrockTitanChatClient.class); + BedrockTitanChatModel chatModel = context.getBean(BedrockTitanChatModel.class); - Flux response = chatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = chatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(1); @@ -137,7 +137,7 @@ public class BedrockTitanChatAutoConfigurationIT { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(BedrockTitanChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockTitanChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockTitanChatModel.class)).isEmpty(); }); // Explicitly enable the chat auto-configuration. @@ -145,7 +145,7 @@ public class BedrockTitanChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockTitanChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockTitanChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockTitanChatModel.class)).isNotEmpty(); }); // Explicitly disable the chat auto-configuration. @@ -153,7 +153,7 @@ public class BedrockTitanChatAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockTitanChatAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanChatProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockTitanChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockTitanChatModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfigurationIT.java index 637598fcd..5a5a2ad4c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/titan/BedrockTitanEmbeddingAutoConfigurationIT.java @@ -23,8 +23,8 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import software.amazon.awssdk.regions.Region; import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient; -import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingClient.InputType; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel; +import org.springframework.ai.bedrock.titan.BedrockTitanEmbeddingModel.InputType; import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingModel; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -52,31 +52,31 @@ public class BedrockTitanEmbeddingAutoConfigurationIT { @Test public void singleTextEmbedding() { contextRunner.withPropertyValues("spring.ai.bedrock.titan.embedding.inputType=TEXT").run(context -> { - BedrockTitanEmbeddingClient embeddingClient = context.getBean(BedrockTitanEmbeddingClient.class); - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + BedrockTitanEmbeddingModel embeddingModel = context.getBean(BedrockTitanEmbeddingModel.class); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); }); } @Test public void singleImageEmbedding() { contextRunner.withPropertyValues("spring.ai.bedrock.titan.embedding.inputType=IMAGE").run(context -> { - BedrockTitanEmbeddingClient embeddingClient = context.getBean(BedrockTitanEmbeddingClient.class); - assertThat(embeddingClient).isNotNull(); + BedrockTitanEmbeddingModel embeddingModel = context.getBean(BedrockTitanEmbeddingModel.class); + assertThat(embeddingModel).isNotNull(); byte[] image = new DefaultResourceLoader().getResource("classpath:/spring_framework.png") .getContentAsByteArray(); var base64Image = Base64.getEncoder().encodeToString(image); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of(base64Image)); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of(base64Image)); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); }); } @@ -111,7 +111,7 @@ public class BedrockTitanEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockTitanEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanEmbeddingProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockTitanEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockTitanEmbeddingModel.class)).isEmpty(); }); // Explicitly enable the embedding auto-configuration. @@ -119,7 +119,7 @@ public class BedrockTitanEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockTitanEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(BedrockTitanEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockTitanEmbeddingModel.class)).isNotEmpty(); }); // Explicitly disable the embedding auto-configuration. @@ -127,7 +127,7 @@ public class BedrockTitanEmbeddingAutoConfigurationIT { .withConfiguration(AutoConfigurations.of(BedrockTitanEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(BedrockTitanEmbeddingProperties.class)).isEmpty(); - assertThat(context.getBeansOfType(BedrockTitanEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockTitanEmbeddingModel.class)).isEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackInPromptIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackInPromptIT.java index 7026812a6..e59895a89 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackInPromptIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackInPromptIT.java @@ -25,7 +25,7 @@ import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.minimax.MiniMaxChatClient; +import org.springframework.ai.minimax.MiniMaxChatModel; import org.springframework.ai.minimax.MiniMaxChatOptions; import org.springframework.ai.model.function.FunctionCallbackWrapper; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -55,7 +55,7 @@ public class FunctionCallbackInPromptIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -67,7 +67,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); @@ -80,7 +80,7 @@ public class FunctionCallbackInPromptIT { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -92,7 +92,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), promptOptions)); + Flux response = chatModel.stream(new Prompt(List.of(userMessage), promptOptions)); String content = response.collectList() .block() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWithPlainFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWithPlainFunctionBeanIT.java index 1c1492e65..b16d358cd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWithPlainFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWithPlainFunctionBeanIT.java @@ -25,7 +25,7 @@ import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.minimax.MiniMaxChatClient; +import org.springframework.ai.minimax.MiniMaxChatModel; import org.springframework.ai.minimax.MiniMaxChatOptions; import org.springframework.ai.model.function.FunctionCallingOptions; import org.springframework.ai.model.function.FunctionCallingOptionsBuilder.PortableFunctionCallingOptions; @@ -61,12 +61,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("weatherFunction").build())); logger.info("Response: {}", response); @@ -74,7 +74,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); // Test weatherFunctionTwo - response = chatClient.call(new Prompt(List.of(userMessage), + response = chatModel.call(new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("weatherFunctionTwo").build())); logger.info("Response: {}", response); @@ -88,7 +88,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallWithPortableFunctionCallingOptions() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -97,7 +97,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { .withFunction("weatherFunction") .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), functionOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), functionOptions)); logger.info("Response: {}", response); }); @@ -107,12 +107,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), + Flux response = chatModel.stream(new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("weatherFunction").build())); String content = response.collectList() @@ -130,7 +130,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(content).containsAnyOf("15.0", "15"); // Test weatherFunctionTwo - response = chatClient.stream(new Prompt(List.of(userMessage), + response = chatModel.stream(new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("weatherFunctionTwo").build())); content = response.collectList() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWrapperIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWrapperIT.java index 75530376f..47ddb1500 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWrapperIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/FunctionCallbackWrapperIT.java @@ -25,7 +25,7 @@ import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.minimax.MiniMaxChatClient; +import org.springframework.ai.minimax.MiniMaxChatModel; import org.springframework.ai.minimax.MiniMaxChatOptions; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackWrapper; @@ -59,11 +59,11 @@ public class FunctionCallbackWrapperIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call( + ChatResponse response = chatModel.call( new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("WeatherInfo").build())); logger.info("Response: {}", response); @@ -77,11 +77,11 @@ public class FunctionCallbackWrapperIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.minimax.chat.options.model=abab6-chat").run(context -> { - MiniMaxChatClient chatClient = context.getBean(MiniMaxChatClient.class); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream( + Flux response = chatModel.stream( new Prompt(List.of(userMessage), MiniMaxChatOptions.builder().withFunction("WeatherInfo").build())); String content = response.collectList() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfigurationIT.java index d400b2c47..ac5e6ac05 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfigurationIT.java @@ -24,8 +24,8 @@ import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.minimax.MiniMaxChatClient; -import org.springframework.ai.minimax.MiniMaxEmbeddingClient; +import org.springframework.ai.minimax.MiniMaxChatModel; +import org.springframework.ai.minimax.MiniMaxEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -52,8 +52,8 @@ public class MiniMaxAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - MiniMaxChatClient client = context.getBean(MiniMaxChatClient.class); - String response = client.call("Hello"); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -62,8 +62,8 @@ public class MiniMaxAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - MiniMaxChatClient client = context.getBean(MiniMaxChatClient.class); - Flux responseFlux = client.stream(new Prompt(new UserMessage("Hello"))); + MiniMaxChatModel chatModel = context.getBean(MiniMaxChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList().block().stream().map(chatResponse -> { return chatResponse.getResults().get(0).getOutput().getContent(); }).collect(Collectors.joining()); @@ -76,9 +76,9 @@ public class MiniMaxAutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - MiniMaxEmbeddingClient embeddingClient = context.getBean(MiniMaxEmbeddingClient.class); + MiniMaxEmbeddingModel embeddingModel = context.getBean(MiniMaxEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -86,7 +86,7 @@ public class MiniMaxAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxPropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxPropertiesTests.java index b2d834b49..07b2d4e6a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxPropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/minimax/MiniMaxPropertiesTests.java @@ -19,8 +19,8 @@ import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; -import org.springframework.ai.minimax.MiniMaxChatClient; -import org.springframework.ai.minimax.MiniMaxEmbeddingClient; +import org.springframework.ai.minimax.MiniMaxChatModel; +import org.springframework.ai.minimax.MiniMaxEmbeddingModel; import org.springframework.ai.minimax.api.MiniMaxApi; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -270,7 +270,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(MiniMaxEmbeddingModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -279,7 +279,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(MiniMaxEmbeddingModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -289,7 +289,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(MiniMaxEmbeddingModel.class)).isNotEmpty(); }); } @@ -302,7 +302,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(MiniMaxChatModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -311,7 +311,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(MiniMaxChatModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -321,7 +321,7 @@ public class MiniMaxPropertiesTests { RestClientAutoConfiguration.class, MiniMaxAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(MiniMaxChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(MiniMaxChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(MiniMaxChatModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfigurationIT.java index 25816e8c0..a629fe52e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/MistralAiAutoConfigurationIT.java @@ -22,6 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.mistralai.MistralAiChatModel; import reactor.core.publisher.Flux; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; @@ -29,8 +30,7 @@ import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.mistralai.MistralAiChatClient; -import org.springframework.ai.mistralai.MistralAiEmbeddingClient; +import org.springframework.ai.mistralai.MistralAiEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -54,8 +54,8 @@ public class MistralAiAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - MistralAiChatClient client = context.getBean(MistralAiChatClient.class); - String response = client.call("Hello"); + MistralAiChatModel chatModel = context.getBean(MistralAiChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -64,8 +64,8 @@ public class MistralAiAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - MistralAiChatClient client = context.getBean(MistralAiChatClient.class); - Flux responseFlux = client.stream(new Prompt(new UserMessage("Hello"))); + MistralAiChatModel chatModel = context.getBean(MistralAiChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList().block().stream().map(chatResponse -> { return chatResponse.getResults().get(0).getOutput().getContent(); }).collect(Collectors.joining()); @@ -78,9 +78,9 @@ public class MistralAiAutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - MistralAiEmbeddingClient embeddingClient = context.getBean(MistralAiEmbeddingClient.class); + MistralAiEmbeddingModel embeddingModel = context.getBean(MistralAiEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -88,7 +88,7 @@ public class MistralAiAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1024); + assertThat(embeddingModel.dimensions()).isEqualTo(1024); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanIT.java index d4259f3ee..b4a581982 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanIT.java @@ -30,7 +30,7 @@ import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.mistralai.MistralAiChatClient; +import org.springframework.ai.mistralai.MistralAiChatModel; import org.springframework.ai.mistralai.MistralAiChatOptions; import org.springframework.ai.mistralai.api.MistralAiApi; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -60,9 +60,9 @@ class PaymentStatusBeanIT { .withPropertyValues("spring.ai.mistralai.chat.options.model=" + MistralAiApi.ChatModel.LARGE.getValue()) .run(context -> { - MistralAiChatClient chatClient = context.getBean(MistralAiChatClient.class); + MistralAiChatModel chatModel = context.getBean(MistralAiChatModel.class); - ChatResponse response = chatClient + ChatResponse response = chatModel .call(new Prompt(List.of(new UserMessage("What's the status of my transaction with id T1001?")), MistralAiChatOptions.builder() .withFunction("retrievePaymentStatus") diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanOpenAiIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanOpenAiIT.java index 15796f921..069fe5b23 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanOpenAiIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusBeanOpenAiIT.java @@ -31,7 +31,7 @@ import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.mistralai.api.MistralAiApi; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -43,7 +43,7 @@ import org.springframework.context.annotation.Description; import static org.assertj.core.api.Assertions.assertThat; /** - * Same test as {@link PaymentStatusBeanIT.java} but using {@link OpenAiChatClient} for + * Same test as {@link PaymentStatusBeanIT.java} but using {@link OpenAiChatModel} for * Mistral AI Function Calling implementation. * * @author Christian Tzolov @@ -67,9 +67,9 @@ class PaymentStatusBeanOpenAiIT { .withPropertyValues("spring.ai.openai.chat.options.model=" + MistralAiApi.ChatModel.SMALL.getValue()) .run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); - ChatResponse response = chatClient + ChatResponse response = chatModel .call(new Prompt(List.of(new UserMessage("What's the status of my transaction with id T1001?")), OpenAiChatOptions.builder() .withFunction("retrievePaymentStatus") diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java index 58bd9e84c..086bc6683 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/PaymentStatusPromptIT.java @@ -30,7 +30,7 @@ import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.mistralai.MistralAiChatClient; +import org.springframework.ai.mistralai.MistralAiChatModel; import org.springframework.ai.mistralai.MistralAiChatOptions; import org.springframework.ai.mistralai.api.MistralAiApi; import org.springframework.ai.model.function.FunctionCallbackWrapper; @@ -71,7 +71,7 @@ public class PaymentStatusPromptIT { .withPropertyValues("spring.ai.mistralai.chat.options.model=" + MistralAiApi.ChatModel.SMALL.getValue()) .run(context -> { - MistralAiChatClient chatClient = context.getBean(MistralAiChatClient.class); + MistralAiChatModel chatModel = context.getBean(MistralAiChatModel.class); UserMessage userMessage = new UserMessage("What's the status of my transaction with id T1001?"); @@ -86,7 +86,7 @@ public class PaymentStatusPromptIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/WeatherServicePromptIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/WeatherServicePromptIT.java index 6bf052f56..1cfc7f245 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/WeatherServicePromptIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/mistralai/tool/WeatherServicePromptIT.java @@ -33,7 +33,7 @@ import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.mistralai.MistralAiChatClient; +import org.springframework.ai.mistralai.MistralAiChatModel; import org.springframework.ai.mistralai.MistralAiChatOptions; import org.springframework.ai.mistralai.api.MistralAiApi; import org.springframework.ai.mistralai.api.MistralAiApi.ChatCompletionRequest.ToolChoice; @@ -64,7 +64,7 @@ public class WeatherServicePromptIT { .withPropertyValues("spring.ai.mistralai.chat.options.model=" + MistralAiApi.ChatModel.LARGE.getValue()) .run(context -> { - MistralAiChatClient chatClient = context.getBean(MistralAiChatClient.class); + MistralAiChatModel chatModel = context.getBean(MistralAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in Paris?"); // UserMessage userMessage = new UserMessage("What's the weather like in @@ -79,7 +79,7 @@ public class WeatherServicePromptIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaChatAutoConfigurationIT.java index affa26197..4ed3448c7 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaChatAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaChatAutoConfigurationIT.java @@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.AssistantMessage; -import org.springframework.ai.ollama.OllamaChatClient; +import org.springframework.ai.ollama.OllamaChatModel; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.SystemPromptTemplate; import org.springframework.ai.chat.messages.Message; @@ -104,8 +104,8 @@ public class OllamaChatAutoConfigurationIT { @Test public void chatCompletion() { contextRunner.run(context -> { - OllamaChatClient chatClient = context.getBean(OllamaChatClient.class); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage, systemMessage))); + OllamaChatModel chatModel = context.getBean(OllamaChatModel.class); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage, systemMessage))); assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard"); }); } @@ -114,9 +114,9 @@ public class OllamaChatAutoConfigurationIT { public void chatCompletionStreaming() { contextRunner.run(context -> { - OllamaChatClient chatClient = context.getBean(OllamaChatClient.class); + OllamaChatModel chatModel = context.getBean(OllamaChatModel.class); - Flux response = chatClient.stream(new Prompt(List.of(userMessage, systemMessage))); + Flux response = chatModel.stream(new Prompt(List.of(userMessage, systemMessage))); List responses = response.collectList().block(); assertThat(responses.size()).isGreaterThan(1); @@ -136,17 +136,17 @@ public class OllamaChatAutoConfigurationIT { void chatActivation() { contextRunner.withPropertyValues("spring.ai.ollama.chat.enabled=false").run(context -> { assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(OllamaChatModel.class)).isEmpty(); }); contextRunner.run(context -> { assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OllamaChatModel.class)).isNotEmpty(); }); contextRunner.withPropertyValues("spring.ai.ollama.chat.enabled=true").run(context -> { assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OllamaChatModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingAutoConfigurationIT.java index b9afde511..0599e0da6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/ollama/OllamaEmbeddingAutoConfigurationIT.java @@ -27,7 +27,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.ollama.OllamaEmbeddingClient; +import org.springframework.ai.ollama.OllamaEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -69,12 +69,12 @@ public class OllamaEmbeddingAutoConfigurationIT { @Test public void singleTextEmbedding() { contextRunner.run(context -> { - OllamaEmbeddingClient embeddingClient = context.getBean(OllamaEmbeddingClient.class); - assertThat(embeddingClient).isNotNull(); - EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + OllamaEmbeddingModel embeddingModel = context.getBean(OllamaEmbeddingModel.class); + assertThat(embeddingModel).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(embeddingClient.dimensions()).isEqualTo(3200); + assertThat(embeddingModel.dimensions()).isEqualTo(3200); }); } @@ -82,17 +82,17 @@ public class OllamaEmbeddingAutoConfigurationIT { void embeddingActivation() { contextRunner.withPropertyValues("spring.ai.ollama.embedding.enabled=false").run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(OllamaEmbeddingModel.class)).isEmpty(); }); contextRunner.run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OllamaEmbeddingModel.class)).isNotEmpty(); }); contextRunner.withPropertyValues("spring.ai.ollama.embedding.enabled=true").run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OllamaEmbeddingModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java index 44c2d7375..d9e7a381a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java @@ -27,18 +27,15 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; -import org.springframework.ai.openai.OpenAiImageClient; +import org.springframework.ai.openai.*; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import reactor.core.publisher.Flux; -import org.springframework.ai.openai.OpenAiAudioSpeechClient; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.openai.OpenAiAudioTranscriptionClient; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -58,8 +55,8 @@ public class OpenAiAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - OpenAiChatClient client = context.getBean(OpenAiChatClient.class); - String response = client.call("Hello"); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -68,9 +65,9 @@ public class OpenAiAutoConfigurationIT { @Test void transcribe() { contextRunner.run(context -> { - OpenAiAudioTranscriptionClient client = context.getBean(OpenAiAudioTranscriptionClient.class); + OpenAiAudioTranscriptionModel transcriptionModel = context.getBean(OpenAiAudioTranscriptionModel.class); Resource audioFile = new ClassPathResource("/speech/jfk.flac"); - String response = client.call(audioFile); + String response = transcriptionModel.call(audioFile); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -79,8 +76,8 @@ public class OpenAiAutoConfigurationIT { @Test void speech() { contextRunner.run(context -> { - OpenAiAudioSpeechClient client = context.getBean(OpenAiAudioSpeechClient.class); - byte[] response = client.call("H"); + OpenAiAudioSpeechModel speechModel = context.getBean(OpenAiAudioSpeechModel.class); + byte[] response = speechModel.call("H"); assertThat(response).isNotNull(); assertThat(verifyMp3FrameHeader(response)) .withFailMessage("Expected MP3 frame header to be present in the response, but it was not found.") @@ -105,8 +102,8 @@ public class OpenAiAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - OpenAiChatClient client = context.getBean(OpenAiChatClient.class); - Flux responseFlux = client.stream(new Prompt(new UserMessage("Hello"))); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList().block().stream().map(chatResponse -> { return chatResponse.getResults().get(0).getOutput().getContent(); }).collect(Collectors.joining()); @@ -119,9 +116,9 @@ public class OpenAiAutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - OpenAiEmbeddingClient embeddingClient = context.getBean(OpenAiEmbeddingClient.class); + OpenAiEmbeddingModel embeddingModel = context.getBean(OpenAiEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -129,15 +126,15 @@ public class OpenAiAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); }); } @Test void generateImage() { contextRunner.withPropertyValues("spring.ai.openai.image.options.size=1024x1024").run(context -> { - OpenAiImageClient client = context.getBean(OpenAiImageClient.class); - ImageResponse imageResponse = client.call(new ImagePrompt("forest")); + OpenAiImageModel imageModel = context.getBean(OpenAiImageModel.class); + ImageResponse imageResponse = imageModel.call(new ImagePrompt("forest")); assertThat(imageResponse.getResults()).hasSize(1); assertThat(imageResponse.getResult().getOutput().getUrl()).isNotEmpty(); logger.info("Generated image: " + imageResponse.getResult().getOutput().getUrl()); @@ -151,8 +148,8 @@ public class OpenAiAutoConfigurationIT { .withPropertyValues("spring.ai.openai.image.options.model=dall-e-2", "spring.ai.openai.image.options.size=256x256") .run(context -> { - OpenAiImageClient client = context.getBean(OpenAiImageClient.class); - ImageResponse imageResponse = client.call(new ImagePrompt("forest")); + OpenAiImageModel imageModel = context.getBean(OpenAiImageModel.class); + ImageResponse imageResponse = imageModel.call(new ImagePrompt("forest")); assertThat(imageResponse.getResults()).hasSize(1); assertThat(imageResponse.getResult().getOutput().getUrl()).isNotEmpty(); logger.info("Generated image: " + imageResponse.getResult().getOutput().getUrl()); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiPropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiPropertiesTests.java index 10583ecd4..0956020dc 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiPropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiPropertiesTests.java @@ -21,9 +21,9 @@ import org.skyscreamer.jsonassert.JSONCompareMode; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.model.ModelOptionsUtils; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; -import org.springframework.ai.openai.OpenAiImageClient; +import org.springframework.ai.openai.OpenAiChatModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; +import org.springframework.ai.openai.OpenAiImageModel; import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.ResponseFormat; import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.ToolChoiceBuilder; import org.springframework.ai.openai.api.OpenAiApi.FunctionTool.Type; @@ -561,7 +561,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(OpenAiEmbeddingModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -570,7 +570,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiEmbeddingModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -580,7 +580,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiEmbeddingModel.class)).isNotEmpty(); }); } @@ -593,7 +593,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(OpenAiChatModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -602,7 +602,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiChatModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -612,7 +612,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiChatModel.class)).isNotEmpty(); }); } @@ -626,7 +626,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiImageClient.class)).isEmpty(); + assertThat(context.getBeansOfType(OpenAiImageModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -635,7 +635,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiImageModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -645,7 +645,7 @@ public class OpenAiPropertiesTests { RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OpenAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OpenAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OpenAiImageModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPrompt2IT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPrompt2IT.java new file mode 100644 index 000000000..7d956c736 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPrompt2IT.java @@ -0,0 +1,120 @@ +/* + * Copyright 2023 - 2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.autoconfigure.openai.tool; + +import java.util.function.Function; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; +import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; +import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.openai.OpenAiChatModel; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".*") +public class FunctionCallbackInPrompt2IT { + + private final Logger logger = LoggerFactory.getLogger(FunctionCallbackInPromptIT.class); + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.openai.apiKey=" + System.getenv("OPENAI_API_KEY")) + .withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class, + RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)); + + @Test + void functionCallTest() { + contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { + + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + + ChatClient chatClient = ChatClient.builder(chatModel).build(); + + // @formatter:off + chatClient.prompt() + .user("Tell me a joke?") + .call().content(); + + String content = ChatClient.builder(chatModel).build().prompt() + .user("What's the weather like in San Francisco, Tokyo, and Paris?") + .function("CurrentWeatherService", "Get the weather in location", new MockWeatherService()) + .call().content(); + // @formatter:on + + logger.info("Response: {}", content); + + assertThat(content).containsAnyOf("30.0", "30"); + assertThat(content).containsAnyOf("10.0", "10"); + assertThat(content).containsAnyOf("15.0", "15"); + }); + } + + @Test + void functionCallTest2() { + contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { + + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + + // @formatter:off + String content = ChatClient.builder(chatModel).build().prompt() + .user("What's the weather like in Amsterdam?") + .function("CurrentWeatherService", "Get the weather in location", + new Function() { + @Override + public String apply(MockWeatherService.Request request) { + return "18 degrees Celsius"; + } + }) + .call().content(); + // @formatter:on + logger.info("Response: {}", content); + + assertThat(content).contains("18"); + }); + } + + @Test + void streamingFunctionCallTest() { + + contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { + + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + + // @formatter:off + String content = ChatClient.builder(chatModel).build().prompt() + .user("What's the weather like in San Francisco, Tokyo, and Paris?") + .function("CurrentWeatherService", "Get the weather in location", new MockWeatherService()) + .stream().content() + .collectList().block().stream().collect(Collectors.joining()); + // @formatter:on + + logger.info("Response: {}", content); + + assertThat(content).containsAnyOf("30.0", "30"); + assertThat(content).containsAnyOf("10.0", "10"); + assertThat(content).containsAnyOf("15.0", "15"); + }); + } + +} \ No newline at end of file diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java index 67770f6af..5f14c9789 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackInPromptIT.java @@ -32,7 +32,7 @@ import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallbackWrapper; -import org.springframework.ai.openai.OpenAiChatClient; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -54,7 +54,7 @@ public class FunctionCallbackInPromptIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -66,7 +66,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); @@ -79,7 +79,7 @@ public class FunctionCallbackInPromptIT { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -91,7 +91,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), promptOptions)); + Flux response = chatModel.stream(new Prompt(List.of(userMessage), promptOptions)); String content = response.collectList() .block() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWithPlainFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWithPlainFunctionBeanIT.java index d5437a62f..50a57b00f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWithPlainFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWithPlainFunctionBeanIT.java @@ -27,15 +27,14 @@ import reactor.core.publisher.Flux; import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; +import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.model.function.FunctionCallingOptions; -import org.springframework.ai.model.function.FunctionCallingOptionsBuilder.PortableFunctionCallingOptions; -import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.ai.openai.OpenAiChatOptions; +import org.springframework.ai.openai.OpenAiChatModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -60,12 +59,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("weatherFunction").build())); logger.info("Response: {}", response); @@ -73,7 +72,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); // Test weatherFunctionTwo - response = chatClient.call(new Prompt(List.of(userMessage), + response = chatModel.call(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("weatherFunctionTwo").build())); logger.info("Response: {}", response); @@ -87,18 +86,17 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallWithPortableFunctionCallingOptions() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); - // Test weatherFunction - UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); + // @formatter:off + String content = ChatClient.builder(chatModel).build().prompt() + .functions("weatherFunction") + .user("What's the weather like in San Francisco, Tokyo, and Paris?") + .stream().content() + .collectList().block().stream().collect(Collectors.joining()); + // @formatter:on - PortableFunctionCallingOptions functionOptions = FunctionCallingOptions.builder() - .withFunction("weatherFunction") - .build(); - - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), functionOptions)); - - logger.info("Response: {}", response); + logger.info("Response: {}", content); }); } @@ -106,12 +104,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), + Flux response = chatModel.stream(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("weatherFunction").build())); String content = response.collectList() @@ -129,7 +127,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(content).containsAnyOf("15.0", "15"); // Test weatherFunctionTwo - response = chatClient.stream(new Prompt(List.of(userMessage), + response = chatModel.stream(new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("weatherFunctionTwo").build())); content = response.collectList() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapper2IT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapper2IT.java new file mode 100644 index 000000000..d9d3cf01e --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapper2IT.java @@ -0,0 +1,112 @@ +/* + * Copyright 2023 - 2024 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.autoconfigure.openai.tool; + +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; +import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; +import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.model.function.FunctionCallback; +import org.springframework.ai.model.function.FunctionCallbackWrapper; +import org.springframework.ai.openai.OpenAiChatModel; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import static org.assertj.core.api.Assertions.assertThat; + +@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".*") +public class FunctionCallbackWrapper2IT { + + private final Logger logger = LoggerFactory.getLogger(FunctionCallbackWrapperIT.class); + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.openai.apiKey=" + System.getenv("OPENAI_API_KEY")) + .withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class, + RestClientAutoConfiguration.class, OpenAiAutoConfiguration.class)) + .withUserConfiguration(Config.class); + + @Test + void functionCallTest() { + contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { + + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + + // @formatter:off + ChatClient chatClient = ChatClient.builder(chatModel) + .defaultFunctions("WeatherInfo") + .defaultUser(u -> u.text("What's the weather like in {cities}?")) + .build(); + + String content = chatClient.prompt() + .user(u -> u.param("cities", "San Francisco, Tokyo, Paris")) + .call().content(); + // @formatter:on + + logger.info("Response: {}", content); + + assertThat(content).containsAnyOf("30.0", "30"); + assertThat(content).containsAnyOf("15.0", "15"); + assertThat(content).containsAnyOf("10", "10"); + }); + } + + @Test + void streamFunctionCallTest() { + contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { + + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); + + // @formatter:off + String content = ChatClient.builder(chatModel).build().prompt() + .functions("WeatherInfo") + .user("What's the weather like in San Francisco, Tokyo, and Paris?") + .stream().content() + .collectList().block().stream().collect(Collectors.joining()); + // @formatter:on + + logger.info("Response: {}", content); + + assertThat(content).containsAnyOf("30.0", "30"); + assertThat(content).containsAnyOf("10.0", "10"); + assertThat(content).containsAnyOf("15.0", "15"); + }); + } + + @Configuration + static class Config { + + @Bean + public FunctionCallback weatherFunctionInfo() { + + return FunctionCallbackWrapper.builder(new MockWeatherService()) + .withName("WeatherInfo") + .withDescription("Get the weather in location") + .withResponseConverter((response) -> "" + response.temp() + response.unit()) + .build(); + } + + } + +} \ No newline at end of file diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapperIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapperIT.java index 44e2c3af7..e4dcaf355 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapperIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/tool/FunctionCallbackWrapperIT.java @@ -22,6 +22,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.ai.openai.OpenAiChatModel; import reactor.core.publisher.Flux; import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration; @@ -33,7 +34,6 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallbackWrapper; import org.springframework.ai.model.function.FunctionCallback; -import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -58,11 +58,11 @@ public class FunctionCallbackWrapperIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call( + ChatResponse response = chatModel.call( new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("WeatherInfo").build())); logger.info("Response: {}", response); @@ -76,11 +76,11 @@ public class FunctionCallbackWrapperIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.openai.chat.options.model=gpt-4-turbo-preview").run(context -> { - OpenAiChatClient chatClient = context.getBean(OpenAiChatClient.class); + OpenAiChatModel chatModel = context.getBean(OpenAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream( + Flux response = chatModel.stream( new Prompt(List.of(userMessage), OpenAiChatOptions.builder().withFunction("WeatherInfo").build())); String content = response.collectList() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfigurationIT.java index c08bbde28..491db782c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlAutoConfigurationIT.java @@ -28,7 +28,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; @@ -69,9 +69,9 @@ public class PostgresMlAutoConfigurationIT { .withBean(JdbcTemplate.class, () -> jdbcTemplate) .withConfiguration(AutoConfigurations.of(PostgresMlAutoConfiguration.class)); contextRunner.run(context -> { - PostgresMlEmbeddingClient embeddingClient = context.getBean(PostgresMlEmbeddingClient.class); + PostgresMlEmbeddingModel embeddingModel = context.getBean(PostgresMlEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -79,7 +79,7 @@ public class PostgresMlAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(768); + assertThat(embeddingModel.dimensions()).isEqualTo(768); }); } @@ -90,7 +90,7 @@ public class PostgresMlAutoConfigurationIT { .withPropertyValues("spring.ai.postgresml.embedding.enabled=false") .run(context -> { assertThat(context.getBeansOfType(PostgresMlEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(PostgresMlEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(PostgresMlEmbeddingModel.class)).isEmpty(); }); new ApplicationContextRunner().withBean(JdbcTemplate.class, () -> jdbcTemplate) @@ -98,14 +98,14 @@ public class PostgresMlAutoConfigurationIT { .withPropertyValues("spring.ai.postgresml.embedding.enabled=true") .run(context -> { assertThat(context.getBeansOfType(PostgresMlEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(PostgresMlEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(PostgresMlEmbeddingModel.class)).isNotEmpty(); }); new ApplicationContextRunner().withBean(JdbcTemplate.class, () -> jdbcTemplate) .withConfiguration(AutoConfigurations.of(PostgresMlAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(PostgresMlEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(PostgresMlEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(PostgresMlEmbeddingModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingPropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingPropertiesTests.java index 6f5a84d2f..0576e7b5b 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingPropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/postgresml/PostgresMlEmbeddingPropertiesTests.java @@ -20,7 +20,7 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.postgresml.PostgresMlEmbeddingClient; +import org.springframework.ai.postgresml.PostgresMlEmbeddingModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -48,7 +48,7 @@ class PostgresMlEmbeddingPropertiesTests { assertThat(this.postgresMlProperties).isNotNull(); assertThat(this.postgresMlProperties.getOptions().getTransformer()).isEqualTo("abc123"); assertThat(this.postgresMlProperties.getOptions().getVectorType()) - .isEqualTo(PostgresMlEmbeddingClient.VectorType.PG_ARRAY); + .isEqualTo(PostgresMlEmbeddingModel.VectorType.PG_ARRAY); assertThat(this.postgresMlProperties.getOptions().getKwargs()) .isEqualTo(Map.of("key1", "value1", "key2", "value2")); assertThat(this.postgresMlProperties.getOptions().getMetadataMode()).isEqualTo(MetadataMode.ALL); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiAutoConfigurationIT.java index 2597e7e20..0423170af 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiAutoConfigurationIT.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.stabilityai; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.image.Image; -import org.springframework.ai.image.ImageClient; +import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImageGeneration; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; @@ -39,7 +39,7 @@ public class StabilityAiAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - ImageClient imageClient = context.getBean(ImageClient.class); + ImageModel imageModel = context.getBean(ImageModel.class); StabilityAiImageOptions imageOptions = StabilityAiImageOptions.builder() .withStylePreset(StyleEnum.PHOTOGRAPHIC) .build(); @@ -49,7 +49,7 @@ public class StabilityAiAutoConfigurationIT { """; ImagePrompt imagePrompt = new ImagePrompt(instructions, imageOptions); - ImageResponse imageResponse = imageClient.call(imagePrompt); + ImageResponse imageResponse = imageModel.call(imagePrompt); ImageGeneration imageGeneration = imageResponse.getResult(); Image image = imageGeneration.getOutput(); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImagePropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImagePropertiesTests.java index 63802bec5..6fbb85094 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImagePropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/stabilityai/StabilityAiImagePropertiesTests.java @@ -17,7 +17,7 @@ package org.springframework.ai.autoconfigure.stabilityai; import org.junit.jupiter.api.Test; -import org.springframework.ai.stabilityai.StabilityAiImageClient; +import org.springframework.ai.stabilityai.StabilityAiImageModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -80,7 +80,7 @@ public class StabilityAiImagePropertiesTests { .withConfiguration(AutoConfigurations.of(StabilityAiImageAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(StabilityAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(StabilityAiImageClient.class)).isEmpty(); + assertThat(context.getBeansOfType(StabilityAiImageModel.class)).isEmpty(); }); @@ -90,7 +90,7 @@ public class StabilityAiImagePropertiesTests { .withConfiguration(AutoConfigurations.of(StabilityAiImageAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(StabilityAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(StabilityAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(StabilityAiImageModel.class)).isNotEmpty(); }); @@ -100,7 +100,7 @@ public class StabilityAiImagePropertiesTests { .withConfiguration(AutoConfigurations.of(StabilityAiImageAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(StabilityAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(StabilityAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(StabilityAiImageModel.class)).isNotEmpty(); }); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfigurationIT.java similarity index 66% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfigurationIT.java rename to spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfigurationIT.java index 257becedd..2cb96123e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingClientAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/transformers/TransformersEmbeddingModelAutoConfigurationIT.java @@ -21,8 +21,8 @@ import java.util.List; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -31,29 +31,29 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Christian Tzolov */ -public class TransformersEmbeddingClientAutoConfigurationIT { +public class TransformersEmbeddingModelAutoConfigurationIT { @TempDir File tempDir; private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(TransformersEmbeddingClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(TransformersEmbeddingModelAutoConfiguration.class)); @Test public void embedding() { contextRunner.run(context -> { - var properties = context.getBean(TransformersEmbeddingClientProperties.class); + var properties = context.getBean(TransformersEmbeddingModelProperties.class); assertThat(properties.getCache().isEnabled()).isTrue(); assertThat(properties.getCache().getDirectory()).isEqualTo( new File(System.getProperty("java.io.tmpdir"), "spring-ai-onnx-generative").getAbsolutePath()); - EmbeddingClient embeddingClient = context.getBean(EmbeddingClient.class); - assertThat(embeddingClient).isInstanceOf(TransformersEmbeddingClient.class); + EmbeddingModel embeddingModel = context.getBean(EmbeddingModel.class); + assertThat(embeddingModel).isInstanceOf(TransformersEmbeddingModel.class); - List> embeddings = embeddingClient.embed(List.of("Spring Framework", "Spring AI")); + List> embeddings = embeddingModel.embed(List.of("Spring Framework", "Spring AI")); assertThat(embeddings.size()).isEqualTo(2); // batch size - assertThat(embeddings.get(0).size()).isEqualTo(embeddingClient.dimensions()); // dimensions + assertThat(embeddings.get(0).size()).isEqualTo(embeddingModel.dimensions()); // dimensions // size }); } @@ -65,7 +65,7 @@ public class TransformersEmbeddingClientAutoConfigurationIT { "spring.ai.embedding.transformer.onnx.modelUri=https://huggingface.co/intfloat/e5-small-v2/resolve/main/model.onnx", "spring.ai.embedding.transformer.tokenizer.uri=https://huggingface.co/intfloat/e5-small-v2/raw/main/tokenizer.json") .run(context -> { - var properties = context.getBean(TransformersEmbeddingClientProperties.class); + var properties = context.getBean(TransformersEmbeddingModelProperties.class); assertThat(properties.getOnnx().getModelUri()) .isEqualTo("https://huggingface.co/intfloat/e5-small-v2/resolve/main/model.onnx"); assertThat(properties.getTokenizer().getUri()) @@ -75,15 +75,15 @@ public class TransformersEmbeddingClientAutoConfigurationIT { assertThat(properties.getCache().getDirectory()).isEqualTo(tempDir.getAbsolutePath()); assertThat(tempDir.listFiles()).hasSize(2); - EmbeddingClient embeddingClient = context.getBean(EmbeddingClient.class); - assertThat(embeddingClient).isInstanceOf(TransformersEmbeddingClient.class); + EmbeddingModel embeddingModel = context.getBean(EmbeddingModel.class); + assertThat(embeddingModel).isInstanceOf(TransformersEmbeddingModel.class); - assertThat(embeddingClient.dimensions()).isEqualTo(384); + assertThat(embeddingModel.dimensions()).isEqualTo(384); - List> embeddings = embeddingClient.embed(List.of("Spring Framework", "Spring AI")); + List> embeddings = embeddingModel.embed(List.of("Spring Framework", "Spring AI")); assertThat(embeddings.size()).isEqualTo(2); // batch size - assertThat(embeddings.get(0).size()).isEqualTo(embeddingClient.dimensions()); // dimensions + assertThat(embeddings.get(0).size()).isEqualTo(embeddingModel.dimensions()); // dimensions // size }); } @@ -91,18 +91,18 @@ public class TransformersEmbeddingClientAutoConfigurationIT { @Test void embeddingActivation() { contextRunner.withPropertyValues("spring.ai.embedding.transformer.enabled=false").run(context -> { - assertThat(context.getBeansOfType(TransformersEmbeddingClientProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(TransformersEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModelProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModel.class)).isEmpty(); }); contextRunner.withPropertyValues("spring.ai.embedding.transformer.enabled=true").run(context -> { - assertThat(context.getBeansOfType(TransformersEmbeddingClientProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(TransformersEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModelProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModel.class)).isNotEmpty(); }); contextRunner.run(context -> { - assertThat(context.getBeansOfType(TransformersEmbeddingClientProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(TransformersEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModelProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(TransformersEmbeddingModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java index 09d2b4127..6f44bed48 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java @@ -28,8 +28,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.azure.AzureVectorStore; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; @@ -127,8 +127,8 @@ public class AzureVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfigurationIT.java index 119bde944..2d767a14c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfigurationIT.java @@ -26,8 +26,8 @@ import org.testcontainers.utility.DockerImageName; import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -93,8 +93,8 @@ class CassandraVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfigurationIT.java index def4dd970..9caba58e1 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfigurationIT.java @@ -24,8 +24,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -90,8 +90,8 @@ public class ChromaVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java index a8500ed39..ac6c10e43 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java @@ -30,8 +30,8 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -118,8 +118,8 @@ public class MilvusVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfigurationIT.java index fcd3281be..39a9812ad 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreAutoConfigurationIT.java @@ -27,8 +27,8 @@ import org.testcontainers.utility.DockerImageName; import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -97,8 +97,8 @@ public class Neo4jVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfigurationIT.java index b068685a1..d3cbf9575 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfigurationIT.java @@ -26,8 +26,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -104,8 +104,8 @@ public class PgVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java index a137636ba..e7cf1c3d9 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java @@ -28,8 +28,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -113,8 +113,8 @@ public class PineconeVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java index 52dda7e96..26448bafd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java @@ -26,8 +26,8 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -99,8 +99,8 @@ public class QdrantVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java index 40261466e..6884cef10 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java @@ -30,8 +30,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -137,8 +137,8 @@ public class QdrantVectorStoreCloudAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfigurationIT.java index c27725f9c..b5721db77 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfigurationIT.java @@ -23,8 +23,8 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -84,8 +84,8 @@ class RedisVectorStoreAutoConfigurationIT { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationTests.java index 87b69c461..3946d75e6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationTests.java @@ -24,8 +24,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField; @@ -122,8 +122,8 @@ public class WeaviateVectorStoreAutoConfigurationTests { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfigurationIT.java index af0e77de9..9ae96d6f7 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/VertexAiGeminiAutoConfigurationIT.java @@ -21,12 +21,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import reactor.core.publisher.Flux; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -46,8 +46,8 @@ public class VertexAiGeminiAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - VertexAiGeminiChatClient client = context.getBean(VertexAiGeminiChatClient.class); - String response = client.call("Hello"); + VertexAiGeminiChatModel chatModel = context.getBean(VertexAiGeminiChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -56,8 +56,8 @@ public class VertexAiGeminiAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - VertexAiGeminiChatClient client = context.getBean(VertexAiGeminiChatClient.class); - Flux responseFlux = client.stream(new Prompt(new UserMessage("Hello"))); + VertexAiGeminiChatModel chatModel = context.getBean(VertexAiGeminiChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList().block().stream().map(chatResponse -> { return chatResponse.getResults().get(0).getOutput().getContent(); }).collect(Collectors.joining()); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionBeanIT.java index 908445675..cfdaaea48 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionBeanIT.java @@ -28,7 +28,7 @@ import org.springframework.ai.chat.ChatResponse; 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.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -55,12 +55,12 @@ class FunctionCallWithFunctionBeanIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.vertex.ai.gemini.chat.options.model=" - // + VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue()) - + VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_1_5_PRO.getValue()) - // + VertexAiGeminiChatClient.ChatModel.GEMINI_PRO_1_5_FLASH.getValue()) + // + VertexAiGeminiChatModel.ChatModel.GEMINI_PRO.getValue()) + + VertexAiGeminiChatModel.ChatModel.GEMINI_PRO_1_5_PRO.getValue()) + // + VertexAiGeminiChatModel.ChatModel.GEMINI_PRO_1_5_FLASH.getValue()) .run(context -> { - VertexAiGeminiChatClient chatClient = context.getBean(VertexAiGeminiChatClient.class); + VertexAiGeminiChatModel chatModel = context.getBean(VertexAiGeminiChatModel.class); var systemMessage = new SystemMessage(""" Use Multi-turn function calling. @@ -72,9 +72,9 @@ class FunctionCallWithFunctionBeanIT { // Please let me know how many function calls you've preformed."); "What's the weather like in San Francisco, Paris and in Tokyo?"); - ChatResponse response = chatClient.call(new Prompt(List.of(systemMessage, userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(systemMessage, userMessage), VertexAiGeminiChatOptions.builder().withFunction("weatherFunction").build())); - // ChatResponse response = chatClient.call(new + // ChatResponse response = chatModel.call(new // Prompt(List.of(userMessage), // VertexAiGeminiChatOptions.builder().withFunction("weatherFunction").build())); @@ -84,14 +84,14 @@ class FunctionCallWithFunctionBeanIT { Thread.sleep(10000); - response = chatClient.call(new Prompt(List.of(systemMessage, userMessage), + response = chatModel.call(new Prompt(List.of(systemMessage, userMessage), VertexAiGeminiChatOptions.builder().withFunction("weatherFunction3").build())); logger.info("Response: {}", response); assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); - response = chatClient + response = chatModel .call(new Prompt(List.of(systemMessage, userMessage), VertexAiGeminiChatOptions.builder().build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionWrapperIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionWrapperIT.java index cbad663c9..58a041b19 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionWrapperIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithFunctionWrapperIT.java @@ -30,7 +30,7 @@ import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackWrapper; import org.springframework.ai.model.function.FunctionCallbackWrapper.Builder.SchemaType; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -55,10 +55,10 @@ public class FunctionCallWithFunctionWrapperIT { void functionCallTest() { contextRunner .withPropertyValues("spring.ai.vertex.ai.gemini.chat.options.model=" - + VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue()) + + VertexAiGeminiChatModel.ChatModel.GEMINI_PRO.getValue()) .run(context -> { - VertexAiGeminiChatClient chatClient = context.getBean(VertexAiGeminiChatClient.class); + VertexAiGeminiChatModel chatModel = context.getBean(VertexAiGeminiChatModel.class); var systemMessage = new SystemMessage(""" Use Multi-turn function calling. @@ -67,7 +67,7 @@ public class FunctionCallWithFunctionWrapperIT { """); var userMessage = new UserMessage("What's the weather like in San Francisco, Paris and in Tokyo?"); - ChatResponse response = chatClient.call(new Prompt(List.of(systemMessage, userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(systemMessage, userMessage), VertexAiGeminiChatOptions.builder().withFunction("WeatherInfo").build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithPromptFunctionIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithPromptFunctionIT.java index b654fb124..dd03ee40d 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithPromptFunctionIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/gemini/tool/FunctionCallWithPromptFunctionIT.java @@ -29,7 +29,7 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallbackWrapper; import org.springframework.ai.model.function.FunctionCallbackWrapper.Builder.SchemaType; -import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatClient; +import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel; import org.springframework.ai.vertexai.gemini.VertexAiGeminiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -51,10 +51,10 @@ public class FunctionCallWithPromptFunctionIT { void functionCallTest() { contextRunner .withPropertyValues("spring.ai.vertex.ai.gemini.chat.options.model=" - + VertexAiGeminiChatClient.ChatModel.GEMINI_PRO.getValue()) + + VertexAiGeminiChatModel.ChatModel.GEMINI_PRO.getValue()) .run(context -> { - VertexAiGeminiChatClient chatClient = context.getBean(VertexAiGeminiChatClient.class); + VertexAiGeminiChatModel chatModel = context.getBean(VertexAiGeminiChatModel.class); var systemMessage = new SystemMessage(""" Use Multi-turn function calling. @@ -72,14 +72,14 @@ public class FunctionCallWithPromptFunctionIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(systemMessage, userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(systemMessage, userMessage), promptOptions)); logger.info("Response: {}", response); assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); // Verify that no function call is made. - response = chatClient + response = chatModel .call(new Prompt(List.of(systemMessage, userMessage), VertexAiGeminiChatOptions.builder().build())); logger.info("Response: {}", response); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPaLm2AutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPaLm2AutoConfigurationIT.java index 0ea8f663e..1f4b2f7ba 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPaLm2AutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/palm2/VertexAiPaLm2AutoConfigurationIT.java @@ -23,8 +23,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.vertexai.palm2.VertexAiPaLm2ChatClient; -import org.springframework.ai.vertexai.palm2.VertexAiPaLm2EmbeddingClient; +import org.springframework.ai.vertexai.palm2.VertexAiPaLm2ChatModel; +import org.springframework.ai.vertexai.palm2.VertexAiPaLm2EmbeddingModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -48,9 +48,9 @@ public class VertexAiPaLm2AutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - VertexAiPaLm2ChatClient client = context.getBean(VertexAiPaLm2ChatClient.class); + VertexAiPaLm2ChatModel chatModel = context.getBean(VertexAiPaLm2ChatModel.class); - String response = client.call("Hello"); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); @@ -60,9 +60,9 @@ public class VertexAiPaLm2AutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - VertexAiPaLm2EmbeddingClient embeddingClient = context.getBean(VertexAiPaLm2EmbeddingClient.class); + VertexAiPaLm2EmbeddingModel embeddingModel = context.getBean(VertexAiPaLm2EmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -70,7 +70,7 @@ public class VertexAiPaLm2AutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(768); + assertThat(embeddingModel.dimensions()).isEqualTo(768); }); } @@ -80,19 +80,19 @@ public class VertexAiPaLm2AutoConfigurationIT { // Disable the embedding auto-configuration. contextRunner.withPropertyValues("spring.ai.vertex.ai.embedding.enabled=false").run(context -> { assertThat(context.getBeansOfType(VertexAiPalm2EmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingModel.class)).isEmpty(); }); // The embedding auto-configuration is enabled by default. contextRunner.run(context -> { assertThat(context.getBeansOfType(VertexAiPalm2EmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingModel.class)).isNotEmpty(); }); // Explicitly enable the embedding auto-configuration. contextRunner.withPropertyValues("spring.ai.vertex.ai.embedding.enabled=true").run(context -> { assertThat(context.getBeansOfType(VertexAiPalm2EmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2EmbeddingModel.class)).isNotEmpty(); }); } @@ -102,19 +102,19 @@ public class VertexAiPaLm2AutoConfigurationIT { // Disable the chat auto-configuration. contextRunner.withPropertyValues("spring.ai.vertex.ai.chat.enabled=false").run(context -> { assertThat(context.getBeansOfType(VertexAiPlam2ChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2ChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2ChatModel.class)).isEmpty(); }); // The chat auto-configuration is enabled by default. contextRunner.run(context -> { assertThat(context.getBeansOfType(VertexAiPlam2ChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2ChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2ChatModel.class)).isNotEmpty(); }); // Explicitly enable the chat auto-configuration. contextRunner.withPropertyValues("spring.ai.vertex.ai.chat.enabled=true").run(context -> { assertThat(context.getBeansOfType(VertexAiPlam2ChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(VertexAiPaLm2ChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(VertexAiPaLm2ChatModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfigurationIT.java index 073c81ffc..9004412ee 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiAutoConfigurationIT.java @@ -26,9 +26,9 @@ import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; -import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingClient; -import org.springframework.ai.zhipuai.ZhiPuAiImageClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; +import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingModel; +import org.springframework.ai.zhipuai.ZhiPuAiImageModel; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -55,8 +55,8 @@ public class ZhiPuAiAutoConfigurationIT { @Test void generate() { contextRunner.run(context -> { - ZhiPuAiChatClient client = context.getBean(ZhiPuAiChatClient.class); - String response = client.call("Hello"); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); + String response = chatModel.call("Hello"); assertThat(response).isNotEmpty(); logger.info("Response: " + response); }); @@ -65,8 +65,8 @@ public class ZhiPuAiAutoConfigurationIT { @Test void generateStreaming() { contextRunner.run(context -> { - ZhiPuAiChatClient client = context.getBean(ZhiPuAiChatClient.class); - Flux responseFlux = client.stream(new Prompt(new UserMessage("Hello"))); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); + Flux responseFlux = chatModel.stream(new Prompt(new UserMessage("Hello"))); String response = responseFlux.collectList().block().stream().map(chatResponse -> { return chatResponse.getResults().get(0).getOutput().getContent(); }).collect(Collectors.joining()); @@ -79,9 +79,9 @@ public class ZhiPuAiAutoConfigurationIT { @Test void embedding() { contextRunner.run(context -> { - ZhiPuAiEmbeddingClient embeddingClient = context.getBean(ZhiPuAiEmbeddingClient.class); + ZhiPuAiEmbeddingModel embeddingModel = context.getBean(ZhiPuAiEmbeddingModel.class); - EmbeddingResponse embeddingResponse = embeddingClient + EmbeddingResponse embeddingResponse = embeddingModel .embedForResponse(List.of("Hello World", "World is big and salvation is near")); assertThat(embeddingResponse.getResults()).hasSize(2); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); @@ -89,15 +89,15 @@ public class ZhiPuAiAutoConfigurationIT { assertThat(embeddingResponse.getResults().get(1).getOutput()).isNotEmpty(); assertThat(embeddingResponse.getResults().get(1).getIndex()).isEqualTo(1); - assertThat(embeddingClient.dimensions()).isEqualTo(1536); + assertThat(embeddingModel.dimensions()).isEqualTo(1536); }); } @Test void generateImage() { contextRunner.withPropertyValues("spring.ai.zhipuai.image.options.size=1024x1024").run(context -> { - ZhiPuAiImageClient client = context.getBean(ZhiPuAiImageClient.class); - ImageResponse imageResponse = client.call(new ImagePrompt("forest")); + ZhiPuAiImageModel ImageModel = context.getBean(ZhiPuAiImageModel.class); + ImageResponse imageResponse = ImageModel.call(new ImagePrompt("forest")); assertThat(imageResponse.getResults()).hasSize(1); assertThat(imageResponse.getResult().getOutput().getUrl()).isNotEmpty(); logger.info("Generated image: " + imageResponse.getResult().getOutput().getUrl()); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiPropertiesTests.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiPropertiesTests.java index 121473dfd..154840460 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiPropertiesTests.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/ZhiPuAiPropertiesTests.java @@ -20,9 +20,9 @@ import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration; import org.springframework.ai.model.ModelOptionsUtils; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; -import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingClient; -import org.springframework.ai.zhipuai.ZhiPuAiImageClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; +import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingModel; +import org.springframework.ai.zhipuai.ZhiPuAiImageModel; import org.springframework.ai.zhipuai.api.ZhiPuAiApi; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -346,7 +346,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiEmbeddingClient.class)).isEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiEmbeddingModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -355,7 +355,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiEmbeddingModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -365,7 +365,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiEmbeddingProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiEmbeddingClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiEmbeddingModel.class)).isNotEmpty(); }); } @@ -378,7 +378,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiChatClient.class)).isEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiChatModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -387,7 +387,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiChatModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -397,7 +397,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiChatClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiChatModel.class)).isNotEmpty(); }); } @@ -411,7 +411,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiImageClient.class)).isEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiImageModel.class)).isEmpty(); }); new ApplicationContextRunner() @@ -420,7 +420,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiImageModel.class)).isNotEmpty(); }); new ApplicationContextRunner() @@ -430,7 +430,7 @@ public class ZhiPuAiPropertiesTests { RestClientAutoConfiguration.class, ZhiPuAiAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(ZhiPuAiImageProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(ZhiPuAiImageClient.class)).isNotEmpty(); + assertThat(context.getBeansOfType(ZhiPuAiImageModel.class)).isNotEmpty(); }); } diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java index 29a71041f..c47471749 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackInPromptIT.java @@ -27,7 +27,7 @@ import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallbackWrapper; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; import org.springframework.ai.zhipuai.ZhiPuAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -56,7 +56,7 @@ public class FunctionCallbackInPromptIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -68,7 +68,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), promptOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), promptOptions)); logger.info("Response: {}", response); @@ -81,7 +81,7 @@ public class FunctionCallbackInPromptIT { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -93,7 +93,7 @@ public class FunctionCallbackInPromptIT { .build())) .build(); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), promptOptions)); + Flux response = chatModel.stream(new Prompt(List.of(userMessage), promptOptions)); String content = response.collectList() .block() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWithPlainFunctionBeanIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWithPlainFunctionBeanIT.java index 2d7c121d1..1d76347e1 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWithPlainFunctionBeanIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWithPlainFunctionBeanIT.java @@ -28,7 +28,7 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallingOptions; import org.springframework.ai.model.function.FunctionCallingOptionsBuilder.PortableFunctionCallingOptions; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; import org.springframework.ai.zhipuai.ZhiPuAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -62,12 +62,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("weatherFunction").build())); logger.info("Response: {}", response); @@ -75,7 +75,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15"); // Test weatherFunctionTwo - response = chatClient.call(new Prompt(List.of(userMessage), + response = chatModel.call(new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("weatherFunctionTwo").build())); logger.info("Response: {}", response); @@ -89,7 +89,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { void functionCallWithPortableFunctionCallingOptions() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); @@ -98,7 +98,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { .withFunction("weatherFunction") .build(); - ChatResponse response = chatClient.call(new Prompt(List.of(userMessage), functionOptions)); + ChatResponse response = chatModel.call(new Prompt(List.of(userMessage), functionOptions)); logger.info("Response: {}", response); }); @@ -108,12 +108,12 @@ class FunctionCallbackWithPlainFunctionBeanIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); // Test weatherFunction UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream(new Prompt(List.of(userMessage), + Flux response = chatModel.stream(new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("weatherFunction").build())); String content = response.collectList() @@ -131,7 +131,7 @@ class FunctionCallbackWithPlainFunctionBeanIT { assertThat(content).containsAnyOf("15.0", "15"); // Test weatherFunctionTwo - response = chatClient.stream(new Prompt(List.of(userMessage), + response = chatModel.stream(new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("weatherFunctionTwo").build())); content = response.collectList() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWrapperIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWrapperIT.java index fefd81326..5cb4cefed 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWrapperIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/zhipuai/tool/FunctionCallbackWrapperIT.java @@ -28,7 +28,7 @@ import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.model.function.FunctionCallback; import org.springframework.ai.model.function.FunctionCallbackWrapper; -import org.springframework.ai.zhipuai.ZhiPuAiChatClient; +import org.springframework.ai.zhipuai.ZhiPuAiChatModel; import org.springframework.ai.zhipuai.ZhiPuAiChatOptions; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -60,11 +60,11 @@ public class FunctionCallbackWrapperIT { void functionCallTest() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - ChatResponse response = chatClient.call( + ChatResponse response = chatModel.call( new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("WeatherInfo").build())); logger.info("Response: {}", response); @@ -78,11 +78,11 @@ public class FunctionCallbackWrapperIT { void streamFunctionCallTest() { contextRunner.withPropertyValues("spring.ai.zhipuai.chat.options.model=glm-4").run(context -> { - ZhiPuAiChatClient chatClient = context.getBean(ZhiPuAiChatClient.class); + ZhiPuAiChatModel chatModel = context.getBean(ZhiPuAiChatModel.class); UserMessage userMessage = new UserMessage("What's the weather like in San Francisco, Tokyo, and Paris?"); - Flux response = chatClient.stream( + Flux response = chatModel.stream( new Prompt(List.of(userMessage), ZhiPuAiChatOptions.builder().withFunction("WeatherInfo").build())); String content = response.collectList() diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactory.java index cb859f400..dffe9603f 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.testcontainers.chromadb.ChromaDBContainer; /** * @author Eddú Meléndez */ -class ChromaContainerConnectionDetailsFactory +public class ChromaContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java index a44643c38..8d4f2d7cd 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.testcontainers.milvus.MilvusContainer; /** * @author Eddú Meléndez */ -class MilvusContainerConnectionDetailsFactory +public class MilvusContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactory.java index 46174bc36..46a410f86 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.testcontainers.ollama.OllamaContainer; /** * @author Eddú Meléndez */ -class OllamaContainerConnectionDetailsFactory +public class OllamaContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java index 2b410c516..615610bca 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.testcontainers.qdrant.QdrantContainer; /** * @author Eddú Meléndez */ -class QdrantContainerConnectionDetailsFactory +public class QdrantContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java index 72007c4e6..d1e6d7e66 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.springframework.boot.testcontainers.service.connection.ContainerConne /** * @author Eddú Meléndez */ -class RedisContainerConnectionDetailsFactory +public class RedisContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java index 601fb6244..ff427ee37 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java @@ -23,7 +23,7 @@ import org.testcontainers.weaviate.WeaviateContainer; /** * @author Eddú Meléndez */ -class WeaviateContainerConnectionDetailsFactory +public class WeaviateContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory { @Override diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactoryTest.java index 1a9db7bc8..2977ef7bd 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/chroma/ChromaContainerConnectionDetailsFactoryTest.java @@ -18,8 +18,8 @@ package org.springframework.ai.testcontainers.service.connection.chroma; import org.junit.jupiter.api.Test; import org.springframework.ai.autoconfigure.vectorstore.chroma.ChromaVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; @@ -83,8 +83,8 @@ class ChromaContainerConnectionDetailsFactoryTest { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java index ee43cf001..8320dad60 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java @@ -19,8 +19,8 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.ResourceUtils; import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; @@ -90,8 +90,8 @@ class MilvusContainerConnectionDetailsFactoryTest { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactoryTest.java index aa470135a..10c45c24b 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/ollama/OllamaContainerConnectionDetailsFactoryTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.springframework.ai.autoconfigure.ollama.OllamaAutoConfiguration; import org.springframework.ai.embedding.EmbeddingResponse; -import org.springframework.ai.ollama.OllamaEmbeddingClient; +import org.springframework.ai.ollama.OllamaEmbeddingModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; @@ -56,7 +56,7 @@ class OllamaContainerConnectionDetailsFactoryTest { static OllamaContainer ollama = new OllamaContainer("ollama/ollama:0.1.29"); @Autowired - private OllamaEmbeddingClient embeddingClient; + private OllamaEmbeddingModel embeddingModel; @BeforeAll public static void beforeAll() throws IOException, InterruptedException { @@ -67,10 +67,10 @@ class OllamaContainerConnectionDetailsFactoryTest { @Test public void singleTextEmbedding() { - EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of("Hello World")); + EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of("Hello World")); assertThat(embeddingResponse.getResults()).hasSize(1); assertThat(embeddingResponse.getResults().get(0).getOutput()).isNotEmpty(); - assertThat(this.embeddingClient.dimensions()).isEqualTo(3200); + assertThat(this.embeddingModel.dimensions()).isEqualTo(3200); } @Configuration(proxyBeanMethods = false) diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryTest.java index c1c461a3e..c0cb3f036 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryTest.java @@ -18,8 +18,8 @@ package org.springframework.ai.testcontainers.service.connection.qdrant; import org.junit.jupiter.api.Test; import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; @@ -91,8 +91,8 @@ public class QdrantContainerConnectionDetailsFactoryTest { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactoryTest.java index b0888689e..aa53e64fd 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactoryTest.java @@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.ResourceUtils; import org.springframework.ai.autoconfigure.vectorstore.redis.RedisVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; @@ -82,8 +82,8 @@ class RedisContainerConnectionDetailsFactoryTest { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryTest.java index 685bc1b79..3ab141406 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryTest.java @@ -19,8 +19,8 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreAutoConfiguration; import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreProperties; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.ai.vectorstore.WeaviateVectorStore; @@ -116,8 +116,8 @@ class WeaviateContainerConnectionDetailsFactoryTest { static class Config { @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BaseMemoryTest.java b/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BaseMemoryTest.java index 5fa667481..a5d65866e 100644 --- a/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BaseMemoryTest.java +++ b/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BaseMemoryTest.java @@ -44,10 +44,10 @@ public class BaseMemoryTest { protected StreamingChatService streamingChatService; public BaseMemoryTest(RelevancyEvaluator relevancyEvaluator, ChatService chatService, - StreamingChatService streamingChatClient) { + StreamingChatService streamingChatModel) { this.relevancyEvaluator = relevancyEvaluator; this.chatService = chatService; - this.streamingChatService = streamingChatClient; + this.streamingChatService = streamingChatModel; } @Test diff --git a/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BasicEvaluationTest.java b/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BasicEvaluationTest.java index bdc0750bd..231d51631 100644 --- a/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BasicEvaluationTest.java +++ b/spring-ai-test/src/main/java/org/springframework/ai/evaluation/BasicEvaluationTest.java @@ -17,7 +17,7 @@ package org.springframework.ai.evaluation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.PromptTemplate; @@ -38,7 +38,7 @@ public class BasicEvaluationTest { private static final Logger logger = LoggerFactory.getLogger(BasicEvaluationTest.class); @Autowired - protected ChatClient openAiChatClient; + protected ChatModel openAiChatModel; @Value("classpath:/prompts/spring/test/evaluation/qa-evaluator-accurate-answer.st") protected Resource qaEvaluatorAccurateAnswerResource; @@ -68,12 +68,12 @@ public class BasicEvaluationTest { } Message userMessage = userPromptTemplate.createMessage(); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); - String yesOrNo = openAiChatClient.call(prompt).getResult().getOutput().getContent(); + String yesOrNo = openAiChatModel.call(prompt).getResult().getOutput().getContent(); logger.info("Is Answer related to question: " + yesOrNo); if (yesOrNo.equalsIgnoreCase("no")) { SystemMessage notRelatedSystemMessage = new SystemMessage(qaEvaluatorNotRelatedResource); prompt = new Prompt(List.of(userMessage, notRelatedSystemMessage)); - String reasonForFailure = openAiChatClient.call(prompt).getResult().getOutput().getContent(); + String reasonForFailure = openAiChatModel.call(prompt).getResult().getOutput().getContent(); fail(reasonForFailure); } else { diff --git a/spring-ai-test/src/main/resources/test/data/spring.ai.txt b/spring-ai-test/src/main/resources/test/data/spring.ai.txt index f41b20ec3..3fd3513cb 100644 --- a/spring-ai-test/src/main/resources/test/data/spring.ai.txt +++ b/spring-ai-test/src/main/resources/test/data/spring.ai.txt @@ -1,6 +1,6 @@ The Spring AI project aims to streamline the development of applications that incorporate artificial intelligence functionality without unnecessary complexity. The project draws inspiration from notable Python projects, such as LangChain and LlamaIndex, but Spring AI is not a direct port of those projects. The project was founded with the belief that the next wave of Generative AI applications will not be only for Python developers but will be ubiquitous across many programming languages. -At its core, Spring AI provides abstractions that serve as the foundation for developing AI applications. These abstractions have multiple implementations, enabling easy component swapping with minimal code changes. For example, Spring AI introduces the ChatClient interface with implementations for OpenAI and Azure OpenAI. +At its core, Spring AI provides abstractions that serve as the foundation for developing AI applications. These abstractions have multiple implementations, enabling easy component swapping with minimal code changes. For example, Spring AI introduces the ChatModel interface with implementations for OpenAI and Azure OpenAI. In addition to these core abstractions, Spring AI aims to provide higher-level functionalities to address common use cases such as “Q&A over your documentation” or “Chat with your documentation.” As the complexity of the use cases increases, the Spring AI project will integrate with other projects in the Spring Ecosystem, such as Spring Integration, Spring Batch, and Spring Data. To simplify setup, Spring Boot starters are available to help set up essential dependencies and classes. There is also a collection of sample applications to help you explore the project’s features. Lastly, the new Spring CLI project also enables you to get started quickly by using the spring boot new AI command for new projects or spring boot add AI for adding AI capabilities to your existing application. diff --git a/vector-stores/spring-ai-azure-store/src/main/java/org/springframework/ai/vectorstore/azure/AzureVectorStore.java b/vector-stores/spring-ai-azure-store/src/main/java/org/springframework/ai/vectorstore/azure/AzureVectorStore.java index e0d8d9188..547bcb8eb 100644 --- a/vector-stores/spring-ai-azure-store/src/main/java/org/springframework/ai/vectorstore/azure/AzureVectorStore.java +++ b/vector-stores/spring-ai-azure-store/src/main/java/org/springframework/ai/vectorstore/azure/AzureVectorStore.java @@ -45,7 +45,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; @@ -92,7 +92,7 @@ public class AzureVectorStore implements VectorStore, InitializingBean { private final SearchIndexClient searchIndexClient; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private SearchClient searchClient; @@ -146,29 +146,29 @@ public class AzureVectorStore implements VectorStore, InitializingBean { * Constructs a new AzureCognitiveSearchVectorStore. * @param searchIndexClient A pre-configured Azure {@link SearchIndexClient} that CRUD * for Azure search indexes and factory for {@link SearchClient}. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. */ - public AzureVectorStore(SearchIndexClient searchIndexClient, EmbeddingClient embeddingClient) { - this(searchIndexClient, embeddingClient, List.of()); + public AzureVectorStore(SearchIndexClient searchIndexClient, EmbeddingModel embeddingModel) { + this(searchIndexClient, embeddingModel, List.of()); } /** * Constructs a new AzureCognitiveSearchVectorStore. * @param searchIndexClient A pre-configured Azure {@link SearchIndexClient} that CRUD * for Azure search indexes and factory for {@link SearchClient}. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. * @param filterMetadataFields List of metadata fields (as field name and type) that * can be used in similarity search query filter expressions. */ - public AzureVectorStore(SearchIndexClient searchIndexClient, EmbeddingClient embeddingClient, + public AzureVectorStore(SearchIndexClient searchIndexClient, EmbeddingModel embeddingModel, List filterMetadataFields) { - Assert.notNull(embeddingClient, "The embedding client can not be null."); + Assert.notNull(embeddingModel, "The embedding model can not be null."); Assert.notNull(searchIndexClient, "The search index client can not be null."); Assert.notNull(filterMetadataFields, "The filterMetadataFields can not be null."); this.searchIndexClient = searchIndexClient; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.filterMetadataFields = filterMetadataFields; this.filterExpressionConverter = new AzureAiSearchFilterExpressionConverter(filterMetadataFields); } @@ -211,7 +211,7 @@ public class AzureVectorStore implements VectorStore, InitializingBean { } final var searchDocuments = documents.stream().map(document -> { - final var embeddings = this.embeddingClient.embed(document); + final var embeddings = this.embeddingModel.embed(document); SearchDocument searchDocument = new SearchDocument(); searchDocument.put(ID_FIELD_NAME, document.getId()); searchDocument.put(EMBEDDING_FIELD_NAME, embeddings); @@ -277,7 +277,7 @@ public class AzureVectorStore implements VectorStore, InitializingBean { Assert.notNull(request, "The search request must not be null."); - var searchEmbedding = toFloatList(embeddingClient.embed(request.getQuery())); + var searchEmbedding = toFloatList(embeddingModel.embed(request.getQuery())); final var vectorQuery = new VectorizedQuery(searchEmbedding).setKNearestNeighborsCount(request.getTopK()) // Set the fields to compare the vector against. This is a comma-delimited @@ -328,7 +328,7 @@ public class AzureVectorStore implements VectorStore, InitializingBean { @Override public void afterPropertiesSet() throws Exception { - int dimensions = this.embeddingClient.dimensions(); + int dimensions = this.embeddingModel.dimensions(); List fields = new ArrayList<>(); diff --git a/vector-stores/spring-ai-azure-store/src/test/java/org/springframework/ai/vectorstore/azure/AzureVectorStoreIT.java b/vector-stores/spring-ai-azure-store/src/test/java/org/springframework/ai/vectorstore/azure/AzureVectorStoreIT.java index 7e4cbbbd7..9c09b5879 100644 --- a/vector-stores/spring-ai-azure-store/src/test/java/org/springframework/ai/vectorstore/azure/AzureVectorStoreIT.java +++ b/vector-stores/spring-ai-azure-store/src/test/java/org/springframework/ai/vectorstore/azure/AzureVectorStoreIT.java @@ -34,8 +34,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.ai.vectorstore.azure.AzureVectorStore.MetadataField; @@ -302,15 +302,15 @@ public class AzureVectorStoreIT { } @Bean - public VectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingClient embeddingClient) { + public VectorStore vectorStore(SearchIndexClient searchIndexClient, EmbeddingModel embeddingModel) { var filterableMetaFields = List.of(MetadataField.text("country"), MetadataField.int64("year"), MetadataField.date("activationDate")); - return new AzureVectorStore(searchIndexClient, embeddingClient, filterableMetaFields); + return new AzureVectorStore(searchIndexClient, embeddingModel, filterableMetaFields); } @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java b/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java index c08f7d09d..3cc2fa220 100644 --- a/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java +++ b/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java @@ -31,7 +31,7 @@ import com.datastax.oss.driver.shaded.guava.common.base.Preconditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig.SchemaColumn; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; @@ -57,7 +57,7 @@ import java.util.concurrent.ConcurrentMap; * * This class requires a CassandraVectorStoreConfig configuration object for * initialization, which includes settings like connection details, index name, column - * names, etc. It also requires an EmbeddingClient to convert documents into embeddings + * names, etc. It also requires an EmbeddingModel to convert documents into embeddings * before storing them. * * A schema matching the configuration is automatically created if it doesn't exist. @@ -73,7 +73,7 @@ import java.util.concurrent.ConcurrentMap; * change the schema server-side you need a new CassandraVectorStore instance. * * When adding documents with the method {@link #add(List)} it first calls - * embeddingClient to create the embeddings. This is slow. Configure + * embeddingModel to create the embeddings. This is slow. Configure * {@link CassandraVectorStoreConfig.Builder#withFixedThreadPoolExecutorSize(int)} * accordingly to improve performance so embeddings are created and the documents are * added concurrently. The default concurrency is 16 @@ -86,7 +86,7 @@ import java.util.concurrent.ConcurrentMap; * @author Mick Semb Wever * @see VectorStore * @see org.springframework.ai.vectorstore.CassandraVectorStoreConfig - * @see EmbeddingClient + * @see EmbeddingModel * @since 1.0.0 */ public class CassandraVectorStore implements VectorStore, InitializingBean, AutoCloseable { @@ -113,7 +113,7 @@ public class CassandraVectorStore implements VectorStore, InitializingBean, Auto private final CassandraVectorStoreConfig conf; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final FilterExpressionConverter filterExpressionConverter; @@ -125,14 +125,14 @@ public class CassandraVectorStore implements VectorStore, InitializingBean, Auto private final Similarity similarity; - public CassandraVectorStore(CassandraVectorStoreConfig conf, EmbeddingClient embeddingClient) { + public CassandraVectorStore(CassandraVectorStoreConfig conf, EmbeddingModel embeddingModel) { Preconditions.checkArgument(null != conf, "Config must not be null"); - Preconditions.checkArgument(null != embeddingClient, "Embedding client must not be null"); + Preconditions.checkArgument(null != embeddingModel, "Embedding client must not be null"); this.conf = conf; - this.embeddingClient = embeddingClient; - conf.ensureSchemaExists(embeddingClient.dimensions()); + this.embeddingModel = embeddingModel; + conf.ensureSchemaExists(embeddingModel.dimensions()); prepareAddStatement(Set.of()); this.deleteStmt = prepareDeleteStatement(); @@ -159,7 +159,7 @@ public class CassandraVectorStore implements VectorStore, InitializingBean, Auto List primaryKeyValues = this.conf.documentIdTranslator.apply(d.getId()); if (null == d.getEmbedding() || d.getEmbedding().isEmpty()) { - d.setEmbedding(this.embeddingClient.embed(d)); + d.setEmbedding(this.embeddingModel.embed(d)); } BoundStatementBuilder builder = prepareAddStatement(d.getMetadata().keySet()).boundStatementBuilder(); @@ -204,7 +204,7 @@ public class CassandraVectorStore implements VectorStore, InitializingBean, Auto @Override public List similaritySearch(SearchRequest request) { Preconditions.checkArgument(request.getTopK() <= 1000); - var embedding = toFloatArray(this.embeddingClient.embed(request.getQuery())); + var embedding = toFloatArray(this.embeddingModel.embed(request.getQuery())); CqlVector cqlVector = CqlVector.newInstance(embedding); String whereClause = ""; @@ -256,7 +256,7 @@ public class CassandraVectorStore implements VectorStore, InitializingBean, Auto } void checkSchemaValid() { - this.conf.checkSchemaValid(embeddingClient.dimensions()); + this.conf.checkSchemaValid(embeddingModel.dimensions()); } private Similarity getIndexSimilarity(TableMetadata metadata) { diff --git a/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java b/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java index 7218f2697..e102c3091 100644 --- a/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java +++ b/vector-stores/spring-ai-cassandra-store/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java @@ -318,7 +318,7 @@ public class CassandraVectorStoreConfig implements AutoCloseable { /** * Executor to use when adding documents. The hotspot is the call to the - * embeddingClient. For remote transformers you probably want a higher value to + * embeddingModel. For remote transformers you probably want a higher value to * utilize network. For local transformers you probably want a lower value to * avoid saturation. **/ diff --git a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraRichSchemaVectorStoreIT.java b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraRichSchemaVectorStoreIT.java index 868c79fbb..26b336f36 100644 --- a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraRichSchemaVectorStoreIT.java +++ b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraRichSchemaVectorStoreIT.java @@ -43,8 +43,8 @@ import org.testcontainers.shaded.org.apache.commons.lang3.RandomStringUtils; import org.testcontainers.utility.DockerImageName; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig.SchemaColumn; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -197,7 +197,7 @@ class CassandraRichSchemaVectorStoreIT { try (CassandraVectorStore store = new CassandraVectorStore( storeBuilder(context, List.of()).withFixedThreadPoolExecutorSize(nThreads).build(), - context.getBean(EmbeddingClient.class))) { + context.getBean(EmbeddingModel.class))) { var executor = Executors.newFixedThreadPool((int) (nThreads * 1.2)); for (int k = 0; k < rounds; ++k) { @@ -489,9 +489,9 @@ class CassandraRichSchemaVectorStoreIT { public static class TestApplication { @Bean - public EmbeddingClient embeddingClient() { + public EmbeddingModel embeddingModel() { // default is ONNX all-MiniLM-L6-v2 - return new TransformersEmbeddingClient(); + return new TransformersEmbeddingModel(); } @Bean @@ -524,7 +524,7 @@ class CassandraRichSchemaVectorStoreIT { if (dropKeyspaceFirst) { conf.dropKeyspace(); } - return new StoreWrapper(new CassandraVectorStore(conf, context.getBean(EmbeddingClient.class)), conf); + return new StoreWrapper(new CassandraVectorStore(conf, context.getBean(EmbeddingModel.class)), conf); } static CassandraVectorStoreConfig.Builder storeBuilder(ApplicationContext context, diff --git a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraVectorStoreIT.java b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraVectorStoreIT.java index 27ed4246d..b362cc2c4 100644 --- a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraVectorStoreIT.java +++ b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/CassandraVectorStoreIT.java @@ -35,8 +35,8 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig.SchemaColumn; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig.SchemaColumnTags; import org.springframework.boot.SpringBootConfiguration; @@ -387,7 +387,7 @@ class CassandraVectorStoreIT { public static class TestApplication { @Bean - public CassandraVectorStore store(CqlSession cqlSession, EmbeddingClient embeddingClient) { + public CassandraVectorStore store(CqlSession cqlSession, EmbeddingModel embeddingModel) { CassandraVectorStoreConfig conf = storeBuilder(cqlSession) .addMetadataColumns(new SchemaColumn("meta1", DataTypes.TEXT), @@ -396,12 +396,12 @@ class CassandraVectorStoreIT { .build(); conf.dropKeyspace(); - return new CassandraVectorStore(conf, embeddingClient); + return new CassandraVectorStore(conf, embeddingModel); } @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } @Bean @@ -432,7 +432,7 @@ class CassandraVectorStoreIT { CassandraVectorStoreConfig.Builder builder) { CassandraVectorStoreConfig conf = builder.build(); conf.dropKeyspace(); - return new CassandraVectorStore(conf, context.getBean(EmbeddingClient.class)); + return new CassandraVectorStore(conf, context.getBean(EmbeddingModel.class)); } } diff --git a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/WikiVectorStoreExample.java b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/WikiVectorStoreExample.java index 910dac85a..301b61c49 100644 --- a/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/WikiVectorStoreExample.java +++ b/vector-stores/spring-ai-cassandra-store/src/test/java/org/springframework/ai/vectorstore/WikiVectorStoreExample.java @@ -24,8 +24,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Testcontainers; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.CassandraVectorStoreConfig.SchemaColumn; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -79,7 +79,7 @@ class WikiVectorStoreExample { public static class TestApplication { @Bean - public CassandraVectorStore store(CqlSession cqlSession, EmbeddingClient embeddingClient) { + public CassandraVectorStore store(CqlSession cqlSession, EmbeddingModel embeddingModel) { List partitionColumns = List.of(new SchemaColumn("wiki", DataTypes.TEXT), new SchemaColumn("language", DataTypes.TEXT), new SchemaColumn("title", DataTypes.TEXT)); @@ -119,13 +119,13 @@ class WikiVectorStoreExample { }) .build(); - return new CassandraVectorStore(conf, embeddingClient()); + return new CassandraVectorStore(conf, embeddingModel()); } @Bean - public EmbeddingClient embeddingClient() { + public EmbeddingModel embeddingModel() { // default is ONNX all-MiniLM-L6-v2 which is what we want - return new TransformersEmbeddingClient(); + return new TransformersEmbeddingModel(); } @Bean diff --git a/vector-stores/spring-ai-chroma-store/src/main/java/org/springframework/ai/vectorstore/ChromaVectorStore.java b/vector-stores/spring-ai-chroma-store/src/main/java/org/springframework/ai/vectorstore/ChromaVectorStore.java index 40ede3a67..d14d1f8b3 100644 --- a/vector-stores/spring-ai-chroma-store/src/main/java/org/springframework/ai/vectorstore/ChromaVectorStore.java +++ b/vector-stores/spring-ai-chroma-store/src/main/java/org/springframework/ai/vectorstore/ChromaVectorStore.java @@ -26,7 +26,7 @@ import org.springframework.ai.chroma.ChromaApi.AddEmbeddingsRequest; import org.springframework.ai.chroma.ChromaApi.DeleteEmbeddingsRequest; import org.springframework.ai.chroma.ChromaApi.Embedding; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.ai.vectorstore.filter.converter.ChromaFilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; @@ -37,9 +37,9 @@ import org.springframework.util.StringUtils; /** * {@link ChromaVectorStore} is a concrete implementation of the {@link VectorStore} * interface. It is responsible for adding, deleting, and searching documents based on - * their similarity to a query, using the {@link ChromaApi} and {@link EmbeddingClient} - * for embedding calculations. For more information about how it does this, see the - * official Chroma website. + * their similarity to a query, using the {@link ChromaApi} and {@link EmbeddingModel} for + * embedding calculations. For more information about how it does this, see the official + * Chroma website. */ public class ChromaVectorStore implements VectorStore, InitializingBean { @@ -51,7 +51,7 @@ public class ChromaVectorStore implements VectorStore, InitializingBean { public static final int DEFAULT_TOP_K = 4; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final ChromaApi chromaApi; @@ -61,12 +61,12 @@ public class ChromaVectorStore implements VectorStore, InitializingBean { private String collectionId; - public ChromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi) { - this(embeddingClient, chromaApi, DEFAULT_COLLECTION_NAME); + public ChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { + this(embeddingModel, chromaApi, DEFAULT_COLLECTION_NAME); } - public ChromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi, String collectionName) { - this.embeddingClient = embeddingClient; + public ChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi, String collectionName) { + this.embeddingModel = embeddingModel; this.chromaApi = chromaApi; this.collectionName = collectionName; this.filterExpressionConverter = new ChromaFilterExpressionConverter(); @@ -93,7 +93,7 @@ public class ChromaVectorStore implements VectorStore, InitializingBean { ids.add(document.getId()); metadatas.add(document.getMetadata()); contents.add(document.getContent()); - document.setEmbedding(this.embeddingClient.embed(document)); + document.setEmbedding(this.embeddingModel.embed(document)); embeddings.add(JsonUtils.toFloatArray(document.getEmbedding())); } @@ -118,7 +118,7 @@ public class ChromaVectorStore implements VectorStore, InitializingBean { String query = request.getQuery(); Assert.notNull(query, "Query string must not be null"); - List embedding = this.embeddingClient.embed(query); + List embedding = this.embeddingModel.embed(query); Map where = (StringUtils.hasText(nativeFilterExpression)) ? JsonUtils.jsonToMap(nativeFilterExpression) : Map.of(); var queryRequest = new ChromaApi.QueryRequest(JsonUtils.toFloatList(embedding), request.getTopK(), where); diff --git a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java index 8be4b8ac9..2d6c13101 100644 --- a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java +++ b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java @@ -25,9 +25,9 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.chroma.ChromaApi; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -107,13 +107,13 @@ public class BasicAuthChromaWhereIT { } @Bean - public VectorStore chromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi) { - return new ChromaVectorStore(embeddingClient, chromaApi, "TestCollection"); + public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { + return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection"); } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreIT.java b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreIT.java index 7ed5eeea8..918a90bdc 100644 --- a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreIT.java +++ b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreIT.java @@ -27,8 +27,8 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.chroma.ChromaApi; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -212,13 +212,13 @@ public class ChromaVectorStoreIT { } @Bean - public VectorStore chromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi) { - return new ChromaVectorStore(embeddingClient, chromaApi, "TestCollection"); + public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { + return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection"); } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java index dac6e9bc0..22d08e57b 100644 --- a/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java +++ b/vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java @@ -25,9 +25,9 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.chroma.ChromaApi; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -139,13 +139,13 @@ public class TokenSecuredChromaWhereIT { } @Bean - public VectorStore chromaVectorStore(EmbeddingClient embeddingClient, ChromaApi chromaApi) { - return new ChromaVectorStore(embeddingClient, chromaApi, "TestCollection"); + public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { + return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection"); } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/ElasticsearchVectorStore.java b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/ElasticsearchVectorStore.java index ebc01eae5..9954f1828 100644 --- a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/ElasticsearchVectorStore.java +++ b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/ElasticsearchVectorStore.java @@ -34,7 +34,7 @@ import org.elasticsearch.client.RestClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.Filter; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; @@ -58,7 +58,7 @@ public class ElasticsearchVectorStore implements VectorStore, InitializingBean { private static final Logger logger = LoggerFactory.getLogger(ElasticsearchVectorStore.class); - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final ElasticsearchClient elasticsearchClient; @@ -68,17 +68,17 @@ public class ElasticsearchVectorStore implements VectorStore, InitializingBean { private String similarityFunction; - public ElasticsearchVectorStore(RestClient restClient, EmbeddingClient embeddingClient) { - this(new ElasticsearchVectorStoreOptions(), restClient, embeddingClient); + public ElasticsearchVectorStore(RestClient restClient, EmbeddingModel embeddingModel) { + this(new ElasticsearchVectorStoreOptions(), restClient, embeddingModel); } public ElasticsearchVectorStore(ElasticsearchVectorStoreOptions options, RestClient restClient, - EmbeddingClient embeddingClient) { - Objects.requireNonNull(embeddingClient, "RestClient must not be null"); - Objects.requireNonNull(embeddingClient, "EmbeddingClient must not be null"); + EmbeddingModel embeddingModel) { + Objects.requireNonNull(embeddingModel, "RestClient must not be null"); + Objects.requireNonNull(embeddingModel, "EmbeddingModel must not be null"); this.elasticsearchClient = new ElasticsearchClient(new RestClientTransport(restClient, new JacksonJsonpMapper( new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)))); - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.options = options; this.filterExpressionConverter = new ElasticsearchAiSearchFilterExpressionConverter(); // the potential functions for vector fields at @@ -97,8 +97,8 @@ public class ElasticsearchVectorStore implements VectorStore, InitializingBean { for (Document document : documents) { if (Objects.isNull(document.getEmbedding()) || document.getEmbedding().isEmpty()) { - logger.debug("Calling EmbeddingClient for document id = " + document.getId()); - document.setEmbedding(this.embeddingClient.embed(document)); + logger.debug("Calling EmbeddingModel for document id = " + document.getId()); + document.setEmbedding(this.embeddingModel.embed(document)); } builkRequestBuilder.operations(op -> op .index(idx -> idx.index(this.options.getIndexName()).id(document.getId()).document(document))); @@ -136,7 +136,7 @@ public class ElasticsearchVectorStore implements VectorStore, InitializingBean { @Override public List similaritySearch(SearchRequest searchRequest) { Assert.notNull(searchRequest, "The search request must not be null."); - return similaritySearch(this.embeddingClient.embed(searchRequest.getQuery()), searchRequest.getTopK(), + return similaritySearch(this.embeddingModel.embed(searchRequest.getQuery()), searchRequest.getTopK(), Double.valueOf(searchRequest.getSimilarityThreshold()).floatValue(), searchRequest.getFilterExpression()); } diff --git a/vector-stores/spring-ai-elasticsearch-store/src/test/java/org/springframework/ai/vectorstore/ElasticsearchVectorStoreIT.java b/vector-stores/spring-ai-elasticsearch-store/src/test/java/org/springframework/ai/vectorstore/ElasticsearchVectorStoreIT.java index c277ff1cb..393cfa7e6 100644 --- a/vector-stores/spring-ai-elasticsearch-store/src/test/java/org/springframework/ai/vectorstore/ElasticsearchVectorStoreIT.java +++ b/vector-stores/spring-ai-elasticsearch-store/src/test/java/org/springframework/ai/vectorstore/ElasticsearchVectorStoreIT.java @@ -39,8 +39,8 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -360,15 +360,15 @@ class ElasticsearchVectorStoreIT { public static class TestApplication { @Bean - public ElasticsearchVectorStore vectorStore(EmbeddingClient embeddingClient) { + public ElasticsearchVectorStore vectorStore(EmbeddingModel embeddingModel) { return new ElasticsearchVectorStore( RestClient.builder(HttpHost.create(elasticsearchContainer.getHttpHostAddress())).build(), - embeddingClient); + embeddingModel); } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-gemfire-store/src/main/java/org/springframework/ai/vectorstore/GemFireVectorStore.java b/vector-stores/spring-ai-gemfire-store/src/main/java/org/springframework/ai/vectorstore/GemFireVectorStore.java index df7e08ec5..c91fff95d 100644 --- a/vector-stores/spring-ai-gemfire-store/src/main/java/org/springframework/ai/vectorstore/GemFireVectorStore.java +++ b/vector-stores/spring-ai-gemfire-store/src/main/java/org/springframework/ai/vectorstore/GemFireVectorStore.java @@ -31,7 +31,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.util.Assert; @@ -60,7 +60,7 @@ public class GemFireVectorStore implements VectorStore { private final WebClient client; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final int topKPerBucket; @@ -192,11 +192,11 @@ public class GemFireVectorStore implements VectorStore { this.indexName = indexName; } - public GemFireVectorStore(GemFireVectorStoreConfig config, EmbeddingClient embedding) { + public GemFireVectorStore(GemFireVectorStoreConfig config, EmbeddingModel embedding) { Assert.notNull(config, "GemFireVectorStoreConfig must not be null"); - Assert.notNull(embedding, "EmbeddingClient must not be null"); + Assert.notNull(embedding, "EmbeddingModel must not be null"); this.client = config.client; - this.embeddingClient = embedding; + this.embeddingModel = embedding; this.topKPerBucket = config.topKPerBucket; this.topK = config.topK; this.documentField = config.documentField; @@ -417,7 +417,7 @@ public class GemFireVectorStore implements VectorStore { public void add(List documents) { UploadRequest upload = new UploadRequest(documents.stream().map(document -> { // Compute and assign an embedding to the document. - document.setEmbedding(this.embeddingClient.embed(document)); + document.setEmbedding(this.embeddingModel.embed(document)); List floatVector = document.getEmbedding().stream().map(Double::floatValue).toList(); return new UploadRequest.Embedding(document.getId(), floatVector, documentField, document.getContent(), document.getMetadata()); @@ -465,7 +465,7 @@ public class GemFireVectorStore implements VectorStore { if (request.hasFilterExpression()) { throw new UnsupportedOperationException("Gemfire does not support metadata filter expressions yet."); } - List vector = this.embeddingClient.embed(request.getQuery()); + List vector = this.embeddingModel.embed(request.getQuery()); List floatVector = vector.stream().map(Double::floatValue).toList(); return client.post() diff --git a/vector-stores/spring-ai-gemfire-store/src/test/java/org/springframework/ai/vectorstore/GemFireVectorStoreIT.java b/vector-stores/spring-ai-gemfire-store/src/test/java/org/springframework/ai/vectorstore/GemFireVectorStoreIT.java index 49d032544..21de25e50 100644 --- a/vector-stores/spring-ai-gemfire-store/src/test/java/org/springframework/ai/vectorstore/GemFireVectorStoreIT.java +++ b/vector-stores/spring-ai-gemfire-store/src/test/java/org/springframework/ai/vectorstore/GemFireVectorStoreIT.java @@ -33,8 +33,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.GemFireVectorStore.GemFireVectorStoreConfig; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -189,15 +189,15 @@ public class GemFireVectorStoreIT { } @Bean - public GemFireVectorStore vectorStore(GemFireVectorStoreConfig config, EmbeddingClient embeddingClient) { - GemFireVectorStore gemFireVectorStore = new GemFireVectorStore(config, embeddingClient); + public GemFireVectorStore vectorStore(GemFireVectorStoreConfig config, EmbeddingModel embeddingModel) { + GemFireVectorStore gemFireVectorStore = new GemFireVectorStore(config, embeddingModel); gemFireVectorStore.setIndexName(INDEX_NAME); return gemFireVectorStore; } @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/vector-stores/spring-ai-hanadb-store/src/main/java/org/springframework/ai/vectorstore/HanaCloudVectorStore.java b/vector-stores/spring-ai-hanadb-store/src/main/java/org/springframework/ai/vectorstore/HanaCloudVectorStore.java index 4f0415b7b..db8d44e01 100644 --- a/vector-stores/spring-ai-hanadb-store/src/main/java/org/springframework/ai/vectorstore/HanaCloudVectorStore.java +++ b/vector-stores/spring-ai-hanadb-store/src/main/java/org/springframework/ai/vectorstore/HanaCloudVectorStore.java @@ -19,7 +19,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import java.util.Collections; import java.util.List; @@ -50,7 +50,7 @@ import java.util.stream.Collectors; * 2024 * * Hana DB introduced a new datatype REAL_VECTOR that can store embeddings - * generated by org.springframework.ai.embedding.EmbeddingClient + * generated by org.springframework.ai.embedding.EmbeddingModel * * @author Rahul Mittal * @see repository; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final HanaCloudVectorStoreConfig config; public HanaCloudVectorStore(HanaVectorRepository repository, - EmbeddingClient embeddingClient, HanaCloudVectorStoreConfig config) { + EmbeddingModel embeddingModel, HanaCloudVectorStoreConfig config) { this.repository = repository; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.config = config; } @@ -79,7 +79,7 @@ public class HanaCloudVectorStore implements VectorStore { public void add(List documents) { int count = 1; for (Document document : documents) { - logger.info("[{}/{}] Calling EmbeddingClient for document id = {}", count++, documents.size(), + logger.info("[{}/{}] Calling EmbeddingModel for document id = {}", count++, documents.size(), document.getId()); String content = document.getContent().replaceAll("\\s+", " "); String embedding = getEmbedding(document); @@ -130,15 +130,14 @@ public class HanaCloudVectorStore implements VectorStore { } private String getEmbedding(SearchRequest searchRequest) { - return "[" + this.embeddingClient.embed(searchRequest.getQuery()) + return "[" + this.embeddingModel.embed(searchRequest.getQuery()) .stream() .map(String::valueOf) .collect(Collectors.joining(", ")) + "]"; } private String getEmbedding(Document document) { - return "[" - + this.embeddingClient.embed(document).stream().map(String::valueOf).collect(Collectors.joining(", ")) + return "[" + this.embeddingModel.embed(document).stream().map(String::valueOf).collect(Collectors.joining(", ")) + "]"; } diff --git a/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/CricketWorldCupHanaController.java b/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/CricketWorldCupHanaController.java index ad3f954a7..9b24fa4db 100644 --- a/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/CricketWorldCupHanaController.java +++ b/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/CricketWorldCupHanaController.java @@ -17,7 +17,7 @@ package org.springframework.ai.vectorstore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.ChatClient; +import org.springframework.ai.chat.ChatModel; import org.springframework.ai.chat.messages.UserMessage; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.chat.prompt.SystemPromptTemplate; @@ -51,11 +51,11 @@ public class CricketWorldCupHanaController { private final VectorStore hanaCloudVectorStore; - private final ChatClient chatClient; + private final ChatModel chatModel; @Autowired - public CricketWorldCupHanaController(ChatClient chatClient, VectorStore hanaCloudVectorStore) { - this.chatClient = chatClient; + public CricketWorldCupHanaController(ChatModel chatModel, VectorStore hanaCloudVectorStore) { + this.chatModel = chatModel; this.hanaCloudVectorStore = hanaCloudVectorStore; } @@ -88,7 +88,7 @@ public class CricketWorldCupHanaController { var userMessage = new UserMessage(message); Prompt prompt = new Prompt(List.of(similarDocsMessage, userMessage)); - String generation = chatClient.call(prompt).getResult().getOutput().getContent(); + String generation = chatModel.call(prompt).getResult().getOutput().getContent(); logger.info("Generation: {}", generation); return Map.of("generation", generation); } diff --git a/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/HanaCloudVectorStoreIT.java b/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/HanaCloudVectorStoreIT.java index e93b0c95a..313bd69be 100644 --- a/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/HanaCloudVectorStoreIT.java +++ b/vector-stores/spring-ai-hanadb-store/src/test/java/org/springframework/ai/vectorstore/HanaCloudVectorStoreIT.java @@ -28,8 +28,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.reader.pdf.PagePdfDocumentReader; import org.springframework.ai.transformer.splitter.TokenTextSplitter; @@ -87,8 +87,8 @@ public class HanaCloudVectorStoreIT { @Bean public VectorStore hanaCloudVectorStore(CricketWorldCupRepository cricketWorldCupRepository, - EmbeddingClient embeddingClient) { - return new HanaCloudVectorStore(cricketWorldCupRepository, embeddingClient, + EmbeddingModel embeddingModel) { + return new HanaCloudVectorStore(cricketWorldCupRepository, embeddingModel, HanaCloudVectorStoreConfig.builder().tableName("CRICKET_WORLD_CUP").topK(1).build()); } @@ -122,8 +122,8 @@ public class HanaCloudVectorStoreIT { } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/MilvusVectorStore.java b/vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/MilvusVectorStore.java index 0a6004a1c..28627048f 100644 --- a/vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/MilvusVectorStore.java +++ b/vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/MilvusVectorStore.java @@ -52,7 +52,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.ai.vectorstore.filter.converter.MilvusFilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; @@ -92,7 +92,7 @@ public class MilvusVectorStore implements VectorStore, InitializingBean { private final MilvusServiceClient milvusClient; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final MilvusVectorStoreConfig config; @@ -242,18 +242,18 @@ public class MilvusVectorStore implements VectorStore, InitializingBean { } - public MilvusVectorStore(MilvusServiceClient milvusClient, EmbeddingClient embeddingClient) { - this(milvusClient, embeddingClient, MilvusVectorStoreConfig.defaultConfig()); + public MilvusVectorStore(MilvusServiceClient milvusClient, EmbeddingModel embeddingModel) { + this(milvusClient, embeddingModel, MilvusVectorStoreConfig.defaultConfig()); } - public MilvusVectorStore(MilvusServiceClient milvusClient, EmbeddingClient embeddingClient, + public MilvusVectorStore(MilvusServiceClient milvusClient, EmbeddingModel embeddingModel, MilvusVectorStoreConfig config) { Assert.notNull(milvusClient, "MilvusServiceClient must not be null"); - Assert.notNull(milvusClient, "EmbeddingClient must not be null"); + Assert.notNull(milvusClient, "EmbeddingModel must not be null"); this.milvusClient = milvusClient; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.config = config; } @@ -268,7 +268,7 @@ public class MilvusVectorStore implements VectorStore, InitializingBean { List> embeddingArray = new ArrayList<>(); for (Document document : documents) { - List embedding = this.embeddingClient.embed(document); + List embedding = this.embeddingModel.embed(document); docIdArray.add(document.getId()); // Use a (future) DocumentTextLayoutFormatter instance to extract @@ -328,7 +328,7 @@ public class MilvusVectorStore implements VectorStore, InitializingBean { Assert.notNull(request.getQuery(), "Query string must not be null"); - List embedding = this.embeddingClient.embed(request.getQuery()); + List embedding = this.embeddingModel.embed(request.getQuery()); var searchParamBuilder = SearchParam.newBuilder() .withCollectionName(this.config.collectionName) @@ -481,13 +481,13 @@ public class MilvusVectorStore implements VectorStore, InitializingBean { return this.config.embeddingDimension; } try { - int embeddingDimensions = this.embeddingClient.dimensions(); + int embeddingDimensions = this.embeddingModel.dimensions(); if (embeddingDimensions > 0) { return embeddingDimensions; } } catch (Exception e) { - logger.warn("Failed to obtain the embedding dimensions from the embedding client and fall backs to default:" + logger.warn("Failed to obtain the embedding dimensions from the embedding model and fall backs to default:" + this.config.embeddingDimension, e); } return OPENAI_EMBEDDING_DIMENSION_SIZE; diff --git a/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusEmbeddingDimensionsTests.java b/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusEmbeddingDimensionsTests.java index 2e1e94d5b..a477cc2c8 100644 --- a/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusEmbeddingDimensionsTests.java +++ b/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusEmbeddingDimensionsTests.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig; import static org.assertj.core.api.Assertions.assertThat; @@ -37,7 +37,7 @@ import static org.mockito.Mockito.when; public class MilvusEmbeddingDimensionsTests { @Mock - private EmbeddingClient embeddingClient; + private EmbeddingModel embeddingModel; @Mock private MilvusServiceClient milvusClient; @@ -51,36 +51,36 @@ public class MilvusEmbeddingDimensionsTests { .withEmbeddingDimension(explicitDimensions) .build(); - var dim = new MilvusVectorStore(milvusClient, embeddingClient, config).embeddingDimensions(); + var dim = new MilvusVectorStore(milvusClient, embeddingModel, config).embeddingDimensions(); assertThat(dim).isEqualTo(explicitDimensions); - verify(embeddingClient, never()).dimensions(); + verify(embeddingModel, never()).dimensions(); } @Test - public void embeddingClientDimensions() { - when(embeddingClient.dimensions()).thenReturn(969); + public void embeddingModelDimensions() { + when(embeddingModel.dimensions()).thenReturn(969); MilvusVectorStoreConfig config = MilvusVectorStoreConfig.builder().build(); - var dim = new MilvusVectorStore(milvusClient, embeddingClient, config).embeddingDimensions(); + var dim = new MilvusVectorStore(milvusClient, embeddingModel, config).embeddingDimensions(); assertThat(dim).isEqualTo(969); - verify(embeddingClient, only()).dimensions(); + verify(embeddingModel, only()).dimensions(); } @Test public void fallBackToDefaultDimensions() { - when(embeddingClient.dimensions()).thenThrow(new RuntimeException()); + when(embeddingModel.dimensions()).thenThrow(new RuntimeException()); - var dim = new MilvusVectorStore(milvusClient, embeddingClient, + var dim = new MilvusVectorStore(milvusClient, embeddingModel, MilvusVectorStoreConfig.builder().build()) .embeddingDimensions(); assertThat(dim).isEqualTo(MilvusVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); - verify(embeddingClient, only()).dimensions(); + verify(embeddingModel, only()).dimensions(); } } diff --git a/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusVectorStoreIT.java b/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusVectorStoreIT.java index b59653888..4a1c00bab 100644 --- a/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusVectorStoreIT.java +++ b/vector-stores/spring-ai-milvus-store/src/test/java/org/springframework/ai/vectorstore/MilvusVectorStoreIT.java @@ -33,8 +33,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig; import org.springframework.beans.factory.annotation.Value; @@ -258,14 +258,14 @@ public class MilvusVectorStoreIT { private MetricType metricType; @Bean - public VectorStore vectorStore(MilvusServiceClient milvusClient, EmbeddingClient embeddingClient) { + public VectorStore vectorStore(MilvusServiceClient milvusClient, EmbeddingModel embeddingModel) { MilvusVectorStoreConfig config = MilvusVectorStoreConfig.builder() .withCollectionName("test_vector_store") .withDatabaseName("default") .withIndexType(IndexType.IVF_FLAT) .withMetricType(metricType) .build(); - return new MilvusVectorStore(milvusClient, embeddingClient, config); + return new MilvusVectorStore(milvusClient, embeddingModel, config); } @Bean @@ -277,9 +277,9 @@ public class MilvusVectorStoreIT { } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); - // return new OpenAiEmbeddingClient(new + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + // return new OpenAiEmbeddingModel(new // OpenAiApi(System.getenv("OPENAI_API_KEY")), MetadataMode.EMBED, // OpenAiEmbeddingOptions.builder().withModel("text-embedding-ada-002").build()); } diff --git a/vector-stores/spring-ai-mongodb-atlas-store/src/main/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStore.java b/vector-stores/spring-ai-mongodb-atlas-store/src/main/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStore.java index 0fbb099ce..de7d8cc06 100644 --- a/vector-stores/spring-ai-mongodb-atlas-store/src/main/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStore.java +++ b/vector-stores/spring-ai-mongodb-atlas-store/src/main/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStore.java @@ -24,7 +24,7 @@ import java.util.Optional; import com.mongodb.BasicDBObject; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.beans.factory.InitializingBean; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.aggregation.Aggregation; @@ -58,20 +58,20 @@ public class MongoDBAtlasVectorStore implements VectorStore, InitializingBean { private final MongoTemplate mongoTemplate; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final MongoDBVectorStoreConfig config; private final MongoDBAtlasFilterExpressionConverter filterExpressionConverter = new MongoDBAtlasFilterExpressionConverter(); - public MongoDBAtlasVectorStore(MongoTemplate mongoTemplate, EmbeddingClient embeddingClient) { - this(mongoTemplate, embeddingClient, MongoDBVectorStoreConfig.defaultConfig()); + public MongoDBAtlasVectorStore(MongoTemplate mongoTemplate, EmbeddingModel embeddingModel) { + this(mongoTemplate, embeddingModel, MongoDBVectorStoreConfig.defaultConfig()); } - public MongoDBAtlasVectorStore(MongoTemplate mongoTemplate, EmbeddingClient embeddingClient, + public MongoDBAtlasVectorStore(MongoTemplate mongoTemplate, EmbeddingModel embeddingModel, MongoDBVectorStoreConfig config) { this.mongoTemplate = mongoTemplate; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.config = config; } @@ -94,7 +94,7 @@ public class MongoDBAtlasVectorStore implements VectorStore, InitializingBean { vectorFields.add(new org.bson.Document().append("type", "vector") .append("path", this.config.pathName) - .append("numDimensions", this.embeddingClient.dimensions()) + .append("numDimensions", this.embeddingModel.dimensions()) .append("similarity", "cosine")); vectorFields.addAll(this.config.metadataFieldsToFilter.stream() @@ -129,7 +129,7 @@ public class MongoDBAtlasVectorStore implements VectorStore, InitializingBean { @Override public void add(List documents) { for (Document document : documents) { - List embedding = this.embeddingClient.embed(document); + List embedding = this.embeddingModel.embed(document); document.setEmbedding(embedding); this.mongoTemplate.save(document, this.config.collectionName); } @@ -156,7 +156,7 @@ public class MongoDBAtlasVectorStore implements VectorStore, InitializingBean { String nativeFilterExpressions = (request.getFilterExpression() != null) ? this.filterExpressionConverter.convertExpression(request.getFilterExpression()) : ""; - List queryEmbedding = this.embeddingClient.embed(request.getQuery()); + List queryEmbedding = this.embeddingModel.embed(request.getQuery()); var vectorSearch = new VectorSearchAggregation(queryEmbedding, this.config.pathName, this.config.numCandidates, this.config.vectorIndexName, request.getTopK(), nativeFilterExpressions); diff --git a/vector-stores/spring-ai-mongodb-atlas-store/src/test/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStoreIT.java b/vector-stores/spring-ai-mongodb-atlas-store/src/test/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStoreIT.java index 1e555dd22..c19963cdd 100644 --- a/vector-stores/spring-ai-mongodb-atlas-store/src/test/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStoreIT.java +++ b/vector-stores/spring-ai-mongodb-atlas-store/src/test/java/org/springframework/ai/vectorstore/MongoDBAtlasVectorStoreIT.java @@ -21,8 +21,8 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -192,8 +192,8 @@ class MongoDBAtlasVectorStoreIT { public static class TestApplication { @Bean - public VectorStore vectorStore(MongoTemplate mongoTemplate, EmbeddingClient embeddingClient) { - return new MongoDBAtlasVectorStore(mongoTemplate, embeddingClient, + public VectorStore vectorStore(MongoTemplate mongoTemplate, EmbeddingModel embeddingModel) { + return new MongoDBAtlasVectorStore(mongoTemplate, embeddingModel, MongoDBAtlasVectorStore.MongoDBVectorStoreConfig.builder() .withMetadataFieldsToFilter(List.of("country", "year")) .build()); @@ -205,8 +205,8 @@ class MongoDBAtlasVectorStoreIT { } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/Neo4jVectorStore.java b/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/Neo4jVectorStore.java index 8ac8fd204..b84854b43 100644 --- a/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/Neo4jVectorStore.java +++ b/vector-stores/spring-ai-neo4j-store/src/main/java/org/springframework/ai/vectorstore/Neo4jVectorStore.java @@ -20,7 +20,7 @@ import org.neo4j.driver.Driver; import org.neo4j.driver.SessionConfig; import org.neo4j.driver.Values; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.Neo4jVectorFilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; @@ -269,17 +269,17 @@ public class Neo4jVectorStore implements VectorStore, InitializingBean { private final Driver driver; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final Neo4jVectorStoreConfig config; - public Neo4jVectorStore(Driver driver, EmbeddingClient embeddingClient, Neo4jVectorStoreConfig config) { + public Neo4jVectorStore(Driver driver, EmbeddingModel embeddingModel, Neo4jVectorStoreConfig config) { Assert.notNull(driver, "Neo4j driver must not be null"); - Assert.notNull(embeddingClient, "Embedding client must not be null"); + Assert.notNull(embeddingModel, "Embedding client must not be null"); this.driver = driver; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.config = config; } @@ -328,7 +328,7 @@ public class Neo4jVectorStore implements VectorStore, InitializingBean { Assert.isTrue(request.getSimilarityThreshold() >= 0 && request.getSimilarityThreshold() <= 1, "The similarity score is bounded between 0 and 1; least to most similar respectively."); - var embedding = Values.value(toFloatArray(this.embeddingClient.embed(request.getQuery()))); + var embedding = Values.value(toFloatArray(this.embeddingModel.embed(request.getQuery()))); try (var session = this.driver.session(this.config.sessionConfig)) { StringBuilder condition = new StringBuilder("score >= $threshold"); if (request.hasFilterExpression()) { @@ -372,7 +372,7 @@ public class Neo4jVectorStore implements VectorStore, InitializingBean { } private Map documentToRecord(Document document) { - var embedding = this.embeddingClient.embed(document); + var embedding = this.embeddingModel.embed(document); document.setEmbedding(embedding); var row = new HashMap(); diff --git a/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/Neo4jVectorStoreIT.java b/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/Neo4jVectorStoreIT.java index a258d8153..34433ef3b 100644 --- a/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/Neo4jVectorStoreIT.java +++ b/vector-stores/spring-ai-neo4j-store/src/test/java/org/springframework/ai/vectorstore/Neo4jVectorStoreIT.java @@ -34,9 +34,9 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @@ -293,9 +293,9 @@ class Neo4jVectorStoreIT { public static class TestApplication { @Bean - public VectorStore vectorStore(Driver driver, EmbeddingClient embeddingClient) { + public VectorStore vectorStore(Driver driver, EmbeddingModel embeddingModel) { - return new Neo4jVectorStore(driver, embeddingClient, + return new Neo4jVectorStore(driver, embeddingModel, Neo4jVectorStore.Neo4jVectorStoreConfig.defaultConfig()); } @@ -306,8 +306,8 @@ class Neo4jVectorStoreIT { } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java b/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java index c2b7954d9..e95840e71 100644 --- a/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java +++ b/vector-stores/spring-ai-pgvector-store/src/main/java/org/springframework/ai/vectorstore/PgVectorStore.java @@ -32,7 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.ai.vectorstore.filter.converter.PgVectorFilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; @@ -66,7 +66,7 @@ public class PgVectorStore implements VectorStore, InitializingBean { private final JdbcTemplate jdbcTemplate; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private int dimensions; @@ -197,21 +197,21 @@ public class PgVectorStore implements VectorStore, InitializingBean { } - public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient) { - this(jdbcTemplate, embeddingClient, INVALID_EMBEDDING_DIMENSION, PgVectorStore.PgDistanceType.COSINE_DISTANCE, + public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel) { + this(jdbcTemplate, embeddingModel, INVALID_EMBEDDING_DIMENSION, PgVectorStore.PgDistanceType.COSINE_DISTANCE, false, PgIndexType.NONE); } - public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, int dimensions) { - this(jdbcTemplate, embeddingClient, dimensions, PgVectorStore.PgDistanceType.COSINE_DISTANCE, false, + public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel, int dimensions) { + this(jdbcTemplate, embeddingModel, dimensions, PgVectorStore.PgDistanceType.COSINE_DISTANCE, false, PgIndexType.NONE); } - public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient, int dimensions, + public PgVectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel, int dimensions, PgDistanceType distanceType, boolean removeExistingVectorStoreTable, PgIndexType createIndexMethod) { this.jdbcTemplate = jdbcTemplate; - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.dimensions = dimensions; this.distanceType = distanceType; this.removeExistingVectorStoreTable = removeExistingVectorStoreTable; @@ -237,7 +237,7 @@ public class PgVectorStore implements VectorStore, InitializingBean { var document = documents.get(i); var content = document.getContent(); var json = toJson(document.getMetadata()); - var pGvector = new PGvector(toFloatArray(embeddingClient.embed(document))); + var pGvector = new PGvector(toFloatArray(embeddingModel.embed(document))); StatementCreatorUtils.setParameterValue(ps, 1, SqlTypeValue.TYPE_UNKNOWN, UUID.fromString(document.getId())); @@ -320,7 +320,7 @@ public class PgVectorStore implements VectorStore, InitializingBean { } private PGvector getQueryEmbedding(String query) { - List embedding = this.embeddingClient.embed(query); + List embedding = this.embeddingModel.embed(query); return new PGvector(toFloatArray(embedding)); } @@ -366,13 +366,13 @@ public class PgVectorStore implements VectorStore, InitializingBean { } try { - int embeddingDimensions = this.embeddingClient.dimensions(); + int embeddingDimensions = this.embeddingModel.dimensions(); if (embeddingDimensions > 0) { return embeddingDimensions; } } catch (Exception e) { - logger.warn("Failed to obtain the embedding dimensions from the embedding client and fall backs to default:" + logger.warn("Failed to obtain the embedding dimensions from the embedding model and fall backs to default:" + OPENAI_EMBEDDING_DIMENSION_SIZE, e); } return OPENAI_EMBEDDING_DIMENSION_SIZE; diff --git a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorEmbeddingDimensionsTests.java b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorEmbeddingDimensionsTests.java index cff66185b..4fa2c56a5 100644 --- a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorEmbeddingDimensionsTests.java +++ b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorEmbeddingDimensionsTests.java @@ -20,7 +20,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.jdbc.core.JdbcTemplate; import static org.assertj.core.api.Assertions.assertThat; @@ -36,7 +36,7 @@ import static org.mockito.Mockito.when; public class PgVectorEmbeddingDimensionsTests { @Mock - private EmbeddingClient embeddingClient; + private EmbeddingModel embeddingModel; @Mock private JdbcTemplate jdbcTemplate; @@ -46,32 +46,32 @@ public class PgVectorEmbeddingDimensionsTests { final int explicitDimensions = 696; - var dim = new PgVectorStore(jdbcTemplate, embeddingClient, explicitDimensions).embeddingDimensions(); + var dim = new PgVectorStore(jdbcTemplate, embeddingModel, explicitDimensions).embeddingDimensions(); assertThat(dim).isEqualTo(explicitDimensions); - verify(embeddingClient, never()).dimensions(); + verify(embeddingModel, never()).dimensions(); } @Test - public void embeddingClientDimensions() { - when(embeddingClient.dimensions()).thenReturn(969); + public void embeddingModelDimensions() { + when(embeddingModel.dimensions()).thenReturn(969); - var dim = new PgVectorStore(jdbcTemplate, embeddingClient).embeddingDimensions(); + var dim = new PgVectorStore(jdbcTemplate, embeddingModel).embeddingDimensions(); assertThat(dim).isEqualTo(969); - verify(embeddingClient, only()).dimensions(); + verify(embeddingModel, only()).dimensions(); } @Test public void fallBackToDefaultDimensions() { - when(embeddingClient.dimensions()).thenThrow(new RuntimeException()); + when(embeddingModel.dimensions()).thenThrow(new RuntimeException()); - var dim = new PgVectorStore(jdbcTemplate, embeddingClient).embeddingDimensions(); + var dim = new PgVectorStore(jdbcTemplate, embeddingModel).embeddingDimensions(); assertThat(dim).isEqualTo(PgVectorStore.OPENAI_EMBEDDING_DIMENSION_SIZE); - verify(embeddingClient, only()).dimensions(); + verify(embeddingModel, only()).dimensions(); } } diff --git a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorStoreIT.java b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorStoreIT.java index 9bfb63e56..ca53406ce 100644 --- a/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorStoreIT.java +++ b/vector-stores/spring-ai-pgvector-store/src/test/java/org/springframework/ai/vectorstore/PgVectorStoreIT.java @@ -35,9 +35,9 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.openai.api.OpenAiApi; -import org.springframework.ai.openai.OpenAiEmbeddingClient; +import org.springframework.ai.openai.OpenAiEmbeddingModel; import org.springframework.ai.vectorstore.PgVectorStore.PgIndexType; import org.springframework.ai.vectorstore.filter.FilterExpressionTextParser.FilterExpressionParseException; import org.springframework.beans.factory.annotation.Value; @@ -306,8 +306,8 @@ public class PgVectorStoreIT { PgVectorStore.PgDistanceType distanceType; @Bean - public VectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingClient embeddingClient) { - return new PgVectorStore(jdbcTemplate, embeddingClient, PgVectorStore.INVALID_EMBEDDING_DIMENSION, + public VectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel) { + return new PgVectorStore(jdbcTemplate, embeddingModel, PgVectorStore.INVALID_EMBEDDING_DIMENSION, distanceType, true, PgIndexType.HNSW); } @@ -329,8 +329,8 @@ public class PgVectorStoreIT { } @Bean - public EmbeddingClient embeddingClient() { - return new OpenAiEmbeddingClient(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); + public EmbeddingModel embeddingModel() { + return new OpenAiEmbeddingModel(new OpenAiApi(System.getenv("OPENAI_API_KEY"))); } } diff --git a/vector-stores/spring-ai-pinecone-store/src/main/java/org/springframework/ai/vectorstore/PineconeVectorStore.java b/vector-stores/spring-ai-pinecone-store/src/main/java/org/springframework/ai/vectorstore/PineconeVectorStore.java index a2e083f8a..992e8c859 100644 --- a/vector-stores/spring-ai-pinecone-store/src/main/java/org/springframework/ai/vectorstore/PineconeVectorStore.java +++ b/vector-stores/spring-ai-pinecone-store/src/main/java/org/springframework/ai/vectorstore/PineconeVectorStore.java @@ -35,7 +35,7 @@ import io.pinecone.proto.UpsertRequest; import io.pinecone.proto.Vector; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.ai.vectorstore.filter.converter.PineconeFilterExpressionConverter; import org.springframework.util.Assert; @@ -57,7 +57,7 @@ public class PineconeVectorStore implements VectorStore { public final FilterExpressionConverter filterExpressionConverter = new PineconeFilterExpressionConverter(); - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final PineconeConnection pineconeConnection; @@ -211,13 +211,13 @@ public class PineconeVectorStore implements VectorStore { /** * Constructs a new PineconeVectorStore. * @param config The configuration for the store. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. */ - public PineconeVectorStore(PineconeVectorStoreConfig config, EmbeddingClient embeddingClient) { + public PineconeVectorStore(PineconeVectorStoreConfig config, EmbeddingModel embeddingModel) { Assert.notNull(config, "PineconeVectorStoreConfig must not be null"); - Assert.notNull(embeddingClient, "EmbeddingClient must not be null"); + Assert.notNull(embeddingModel, "EmbeddingModel must not be null"); - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.pineconeNamespace = config.namespace; this.pineconeConnection = new PineconeClient(config.clientConfig).connect(config.connectionConfig); this.objectMapper = new ObjectMapper(); @@ -232,7 +232,7 @@ public class PineconeVectorStore implements VectorStore { List upsertVectors = documents.stream().map(document -> { // Compute and assign an embedding to the document. - document.setEmbedding(this.embeddingClient.embed(document)); + document.setEmbedding(this.embeddingModel.embed(document)); return Vector.newBuilder() .setId(document.getId()) @@ -321,7 +321,7 @@ public class PineconeVectorStore implements VectorStore { String nativeExpressionFilters = (request.getFilterExpression() != null) ? this.filterExpressionConverter.convertExpression(request.getFilterExpression()) : ""; - List queryEmbedding = this.embeddingClient.embed(request.getQuery()); + List queryEmbedding = this.embeddingModel.embed(request.getQuery()); var queryRequestBuilder = QueryRequest.newBuilder() .addAllVector(toFloatList(queryEmbedding)) diff --git a/vector-stores/spring-ai-pinecone-store/src/test/java/org/springframework/ai/vectorstore/PineconeVectorStoreIT.java b/vector-stores/spring-ai-pinecone-store/src/test/java/org/springframework/ai/vectorstore/PineconeVectorStoreIT.java index 9e8ef5f45..ca7336f12 100644 --- a/vector-stores/spring-ai-pinecone-store/src/test/java/org/springframework/ai/vectorstore/PineconeVectorStoreIT.java +++ b/vector-stores/spring-ai-pinecone-store/src/test/java/org/springframework/ai/vectorstore/PineconeVectorStoreIT.java @@ -30,8 +30,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.PineconeVectorStore.PineconeVectorStoreConfig; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -287,13 +287,13 @@ public class PineconeVectorStoreIT { } @Bean - public VectorStore vectorStore(PineconeVectorStoreConfig config, EmbeddingClient embeddingClient) { - return new PineconeVectorStore(config, embeddingClient); + public VectorStore vectorStore(PineconeVectorStoreConfig config, EmbeddingModel embeddingModel) { + return new PineconeVectorStore(config, embeddingModel); } @Bean - public TransformersEmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public TransformersEmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/vector-stores/spring-ai-qdrant-store/src/main/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStore.java b/vector-stores/spring-ai-qdrant-store/src/main/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStore.java index f9d3a250c..c8001044c 100644 --- a/vector-stores/spring-ai-qdrant-store/src/main/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStore.java +++ b/vector-stores/spring-ai-qdrant-store/src/main/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStore.java @@ -27,7 +27,7 @@ import java.util.UUID; import java.util.concurrent.ExecutionException; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.InitializingBean; @@ -61,7 +61,7 @@ public class QdrantVectorStore implements VectorStore, InitializingBean { public static final String DEFAULT_COLLECTION_NAME = "vector_store"; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final QdrantClient qdrantClient; @@ -133,27 +133,26 @@ public class QdrantVectorStore implements VectorStore, InitializingBean { /** * Constructs a new QdrantVectorStore. * @param config The configuration for the store. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. * @deprecated since 1.0.0 in favor of {@link QdrantVectorStore}. */ @Deprecated(since = "1.0.0", forRemoval = true) - public QdrantVectorStore(QdrantClient qdrantClient, QdrantVectorStoreConfig config, - EmbeddingClient embeddingClient) { - this(qdrantClient, config.collectionName, embeddingClient); + public QdrantVectorStore(QdrantClient qdrantClient, QdrantVectorStoreConfig config, EmbeddingModel embeddingModel) { + this(qdrantClient, config.collectionName, embeddingModel); } /** * Constructs a new QdrantVectorStore. * @param qdrantClient A {@link QdrantClient} instance for interfacing with Qdrant. * @param collectionName The name of the collection to use in Qdrant. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. */ - public QdrantVectorStore(QdrantClient qdrantClient, String collectionName, EmbeddingClient embeddingClient) { + public QdrantVectorStore(QdrantClient qdrantClient, String collectionName, EmbeddingModel embeddingModel) { Assert.notNull(qdrantClient, "QdrantClient must not be null"); Assert.notNull(collectionName, "collectionName must not be null"); - Assert.notNull(embeddingClient, "EmbeddingClient must not be null"); + Assert.notNull(embeddingModel, "EmbeddingModel must not be null"); - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.collectionName = collectionName; this.qdrantClient = qdrantClient; } @@ -167,7 +166,7 @@ public class QdrantVectorStore implements VectorStore, InitializingBean { try { List points = documents.stream().map(document -> { // Compute and assign an embedding to the document. - document.setEmbedding(this.embeddingClient.embed(document)); + document.setEmbedding(this.embeddingModel.embed(document)); return PointStruct.newBuilder() .setId(id(UUID.fromString(document.getId()))) @@ -215,7 +214,7 @@ public class QdrantVectorStore implements VectorStore, InitializingBean { ? this.filterExpressionConverter.convertExpression(request.getFilterExpression()) : Filter.getDefaultInstance(); - List queryEmbedding = this.embeddingClient.embed(request.getQuery()); + List queryEmbedding = this.embeddingModel.embed(request.getQuery()); var searchPoints = SearchPoints.newBuilder() .setCollectionName(this.collectionName) @@ -290,7 +289,7 @@ public class QdrantVectorStore implements VectorStore, InitializingBean { if (!isCollectionExists()) { var vectorParams = VectorParams.newBuilder() .setDistance(Distance.Cosine) - .setSize(this.embeddingClient.dimensions()) + .setSize(this.embeddingModel.dimensions()) .build(); this.qdrantClient.createCollectionAsync(this.collectionName, vectorParams).get(); } diff --git a/vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreIT.java b/vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreIT.java index 73e6e9327..bdad3ff84 100644 --- a/vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreIT.java +++ b/vector-stores/spring-ai-qdrant-store/src/test/java/org/springframework/ai/vectorstore/qdrant/QdrantVectorStoreIT.java @@ -35,9 +35,9 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; -import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingClient; +import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingModel; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.boot.SpringBootConfiguration; @@ -250,8 +250,8 @@ public class QdrantVectorStoreIT { } @Bean - public VectorStore qdrantVectorStore(EmbeddingClient embeddingClient, QdrantClient qdrantClient) { - return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingClient); + public VectorStore qdrantVectorStore(EmbeddingModel embeddingModel, QdrantClient qdrantClient) { + return new QdrantVectorStore(qdrantClient, COLLECTION_NAME, embeddingModel); } @Bean @@ -262,8 +262,8 @@ public class QdrantVectorStoreIT { } @Bean - public AzureOpenAiEmbeddingClient azureEmbeddingClient(OpenAIClient openAIClient) { - return new AzureOpenAiEmbeddingClient(openAIClient); + public AzureOpenAiEmbeddingModel azureEmbeddingModel(OpenAIClient openAIClient) { + return new AzureOpenAiEmbeddingModel(openAIClient); } } diff --git a/vector-stores/spring-ai-redis-store/src/main/java/org/springframework/ai/vectorstore/RedisVectorStore.java b/vector-stores/spring-ai-redis-store/src/main/java/org/springframework/ai/vectorstore/RedisVectorStore.java index cb34e3b8b..6680070ec 100644 --- a/vector-stores/spring-ai-redis-store/src/main/java/org/springframework/ai/vectorstore/RedisVectorStore.java +++ b/vector-stores/spring-ai-redis-store/src/main/java/org/springframework/ai/vectorstore/RedisVectorStore.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.filter.FilterExpressionConverter; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; @@ -63,14 +63,14 @@ import redis.clients.jedis.search.schemafields.VectorField.VectorAlgorithm; * * This class requires a RedisVectorStoreConfig configuration object for initialization, * which includes settings like Redis URI, index name, field names, and vector algorithms. - * It also requires an EmbeddingClient to convert documents into embeddings before storing + * It also requires an EmbeddingModel to convert documents into embeddings before storing * them. * * @author Julien Ruaux * @author Christian Tzolov * @see VectorStore * @see RedisVectorStoreConfig - * @see EmbeddingClient + * @see EmbeddingModel */ public class RedisVectorStore implements VectorStore, InitializingBean { @@ -280,19 +280,19 @@ public class RedisVectorStore implements VectorStore, InitializingBean { private final JedisPooled jedis; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final RedisVectorStoreConfig config; private FilterExpressionConverter filterExpressionConverter; - public RedisVectorStore(RedisVectorStoreConfig config, EmbeddingClient embeddingClient) { + public RedisVectorStore(RedisVectorStoreConfig config, EmbeddingModel embeddingModel) { Assert.notNull(config, "Config must not be null"); - Assert.notNull(embeddingClient, "Embedding client must not be null"); + Assert.notNull(embeddingModel, "Embedding client must not be null"); this.jedis = new JedisPooled(config.uri); - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.config = config; this.filterExpressionConverter = new RedisFilterExpressionConverter(this.config.metadataFields); } @@ -305,7 +305,7 @@ public class RedisVectorStore implements VectorStore, InitializingBean { public void add(List documents) { try (Pipeline pipeline = this.jedis.pipelined()) { for (Document document : documents) { - var embedding = this.embeddingClient.embed(document); + var embedding = this.embeddingModel.embed(document); document.setEmbedding(embedding); var fields = new HashMap(); @@ -365,7 +365,7 @@ public class RedisVectorStore implements VectorStore, InitializingBean { returnFields.add(this.config.embeddingFieldName); returnFields.add(this.config.contentFieldName); returnFields.add(DISTANCE_FIELD_NAME); - var embedding = toFloatArray(this.embeddingClient.embed(request.getQuery())); + var embedding = toFloatArray(this.embeddingModel.embed(request.getQuery())); Query query = new Query(queryString).addParam(EMBEDDING_PARAM_NAME, RediSearchUtil.toByteArray(embedding)) .returnFields(returnFields.toArray(new String[0])) .setSortBy(DISTANCE_FIELD_NAME, true) @@ -420,7 +420,7 @@ public class RedisVectorStore implements VectorStore, InitializingBean { private Iterable schemaFields() { Map vectorAttrs = new HashMap<>(); - vectorAttrs.put("DIM", this.embeddingClient.dimensions()); + vectorAttrs.put("DIM", this.embeddingModel.dimensions()); vectorAttrs.put("DISTANCE_METRIC", DEFAULT_DISTANCE_METRIC); vectorAttrs.put("TYPE", VECTOR_TYPE_FLOAT32); List fields = new ArrayList<>(); diff --git a/vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/vectorstore/RedisVectorStoreIT.java b/vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/vectorstore/RedisVectorStoreIT.java index 66d58fdf3..cce1808a0 100644 --- a/vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/vectorstore/RedisVectorStoreIT.java +++ b/vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/vectorstore/RedisVectorStoreIT.java @@ -27,8 +27,8 @@ import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.RedisVectorStore.MetadataField; import org.springframework.ai.vectorstore.RedisVectorStore.RedisVectorStoreConfig; import org.springframework.boot.SpringBootConfiguration; @@ -245,17 +245,17 @@ class RedisVectorStoreIT { public static class TestApplication { @Bean - public RedisVectorStore vectorStore(EmbeddingClient embeddingClient) { + public RedisVectorStore vectorStore(EmbeddingModel embeddingModel) { return new RedisVectorStore(RedisVectorStoreConfig.builder() .withURI(redisContainer.getRedisURI()) .withMetadataFields(MetadataField.tag("meta1"), MetadataField.tag("meta2"), MetadataField.tag("country"), MetadataField.numeric("year")) - .build(), embeddingClient); + .build(), embeddingModel); } @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } } diff --git a/vector-stores/spring-ai-weaviate-store/src/main/java/org/springframework/ai/vectorstore/WeaviateVectorStore.java b/vector-stores/spring-ai-weaviate-store/src/main/java/org/springframework/ai/vectorstore/WeaviateVectorStore.java index db676aadd..0f73fad8f 100644 --- a/vector-stores/spring-ai-weaviate-store/src/main/java/org/springframework/ai/vectorstore/WeaviateVectorStore.java +++ b/vector-stores/spring-ai-weaviate-store/src/main/java/org/springframework/ai/vectorstore/WeaviateVectorStore.java @@ -43,7 +43,7 @@ import io.weaviate.client.v1.graphql.query.fields.Field; import io.weaviate.client.v1.graphql.query.fields.Fields; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.ConsistentLevel; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField; import org.springframework.beans.factory.InitializingBean; @@ -80,7 +80,7 @@ public class WeaviateVectorStore implements VectorStore, InitializingBean { private static final String ADDITIONAL_VECTOR_FIELD_NAME = "vector"; - private final EmbeddingClient embeddingClient; + private final EmbeddingModel embeddingModel; private final WeaviateClient weaviateClient; @@ -277,14 +277,14 @@ public class WeaviateVectorStore implements VectorStore, InitializingBean { /** * Constructs a new WeaviateVectorStore. * @param vectorStoreConfig The configuration for the store. - * @param embeddingClient The client for embedding operations. + * @param embeddingModel The client for embedding operations. */ - public WeaviateVectorStore(WeaviateVectorStoreConfig vectorStoreConfig, EmbeddingClient embeddingClient, + public WeaviateVectorStore(WeaviateVectorStoreConfig vectorStoreConfig, EmbeddingModel embeddingModel, WeaviateClient weaviateClient) { Assert.notNull(vectorStoreConfig, "WeaviateVectorStoreConfig must not be null"); - Assert.notNull(embeddingClient, "EmbeddingClient must not be null"); + Assert.notNull(embeddingModel, "EmbeddingModel must not be null"); - this.embeddingClient = embeddingClient; + this.embeddingModel = embeddingModel; this.consistencyLevel = vectorStoreConfig.consistencyLevel; this.weaviateObjectClass = vectorStoreConfig.weaviateObjectClass; this.filterMetadataFields = vectorStoreConfig.filterMetadataFields; @@ -360,7 +360,7 @@ public class WeaviateVectorStore implements VectorStore, InitializingBean { private WeaviateObject toWeaviateObject(Document document) { if (CollectionUtils.isEmpty(document.getEmbedding())) { - List embedding = this.embeddingClient.embed(document); + List embedding = this.embeddingModel.embed(document); document.setEmbedding(embedding); } @@ -420,7 +420,7 @@ public class WeaviateVectorStore implements VectorStore, InitializingBean { @Override public List similaritySearch(SearchRequest request) { - Float[] embedding = toFloatArray(this.embeddingClient.embed(request.getQuery())); + Float[] embedding = toFloatArray(this.embeddingModel.embed(request.getQuery())); GetBuilder.GetBuilderBuilder builder = GetBuilder.builder(); diff --git a/vector-stores/spring-ai-weaviate-store/src/test/java/org/springframework/ai/vectorstore/WeaviateVectorStoreIT.java b/vector-stores/spring-ai-weaviate-store/src/test/java/org/springframework/ai/vectorstore/WeaviateVectorStoreIT.java index 013ebfaa4..1cd18ae4c 100644 --- a/vector-stores/spring-ai-weaviate-store/src/test/java/org/springframework/ai/vectorstore/WeaviateVectorStoreIT.java +++ b/vector-stores/spring-ai-weaviate-store/src/test/java/org/springframework/ai/vectorstore/WeaviateVectorStoreIT.java @@ -29,8 +29,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.ai.document.Document; -import org.springframework.ai.embedding.EmbeddingClient; -import org.springframework.ai.transformers.TransformersEmbeddingClient; +import org.springframework.ai.embedding.EmbeddingModel; +import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig; import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField; import org.springframework.boot.SpringBootConfiguration; @@ -243,7 +243,7 @@ public class WeaviateVectorStoreIT { public static class TestApplication { @Bean - public VectorStore vectorStore(EmbeddingClient embeddingClient) { + public VectorStore vectorStore(EmbeddingModel embeddingModel) { WeaviateClient weaviateClient = new WeaviateClient( new Config("http", weaviateContainer.getHttpHostAddress())); @@ -252,14 +252,14 @@ public class WeaviateVectorStoreIT { .withConsistencyLevel(WeaviateVectorStoreConfig.ConsistentLevel.ONE) .build(); - WeaviateVectorStore vectorStore = new WeaviateVectorStore(config, embeddingClient, weaviateClient); + WeaviateVectorStore vectorStore = new WeaviateVectorStore(config, embeddingModel, weaviateClient); return vectorStore; } @Bean - public EmbeddingClient embeddingClient() { - return new TransformersEmbeddingClient(); + public EmbeddingModel embeddingModel() { + return new TransformersEmbeddingModel(); } }

      ew>kCLcd;r7QgFt-@s#Tke-qt9=uvpbQi$! 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�^n? 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 diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-api.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-api.jpg index 7a4ae6d963d5b73dec4c9a6b459710081cba4b46..de792b4b3d44e132d6141e176d17a718b6938c5c 100644 GIT binary patch literal 250046 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�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

    2. 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%0AX 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� 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 diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/images/embeddings-api.jpg b/spring-ai-docs/src/main/antora/modules/ROOT/images/embeddings-api.jpg index 41b383ff318e17f81131500ce649ddcf6f2ffe84..69d2f5335bbbffd28ddb413931de065ccc917dab 100644 GIT binary patch literal 355037 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 z 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