- Extend the Spring AI Message with getMediaData() : List<MediaData>
MediaData is a pair of MimeType and data of type Object.
Message#getContent() return text only.
- VertexAI Gemini Support
- implement VertexAiGeiminChatClient for ChatClient and StreamingChat client and support for MediaData content.
add IT tests for Chat, Streaming and Multimodality
- add Auto-configuration + ITs
- add Gemini Spring Boot starter.
- add clients and boot starters to the Spring AI BOM.
- add Anotra documentation for the Gemini chat client.
- update gemini to latest 26.33.0 BOM.
- add vertex ai gemini dependencies to the BOM.
- add Vertex AI Gemini API Function Calling support
- add Gemini API Function Calling Streaming support
- add vertex ai gemini function calling documentation
- factor out the Function Calling functionality into common abstraction used by OpenAI, Azure and Gemini.
- group the VertexAI documentation under a common parent
- add PortableFunctionCallingOption that implements FunctionCallingOptions and ChatOptions and provide builder for it.
- remove some deprecated code.
- allow authorization with GoogleCredentials form json file.
- add AOT support for VertexAI Gemini.
- move legacy Vertex AI into VertexAI PaLM2.
- better handling for empty chat responses.
- update the Gemini version to latest 26.33.0. This required lifting the protobuf-java to 3.25.2 as well.
- fix a bug for handling System messages with Gemini.
- Implement Azure OpenAI Function Calling
Uses the same the common abstractions used by OpenAI and Gemini: FunctionCallingOptions and AbstractFunctionCallSupport
- Implement MistrealAiApi as a REST client for the Mistral REST API.
- Add MistralAiChatClient implementing ChatClient and StreamingChatClient.
Add MistralAiChatOptions implementing ChatOptions.
- Add MistralAiEmbeddingClient impelementing EmbeddingClient.
Add MistralAiEmbeddingOptions implementing EmbeddingOptions.
- Add Unit and IT tests for api and clients.
- Add mistral auto-configuration and boot strarter
- update auto-config property for Mistral AI embedding client
- update auto-config property for Mistral AI embedding client
Additional, review changes:
- Add missing license headers.
- Fix the intialization of defaul options.
- Code re-formatting to improve the readabitliy.
- Many improvements
- Add missing sine annotations
- Remove stream field from MistralAiChatOptions. This handled internally.
- Add MistralAiApi ChatModel and EmbeddingModel enums.
- Add MistralChatClientIT for testeing chat, stream , parsers...
- Add MistralAiApiIT tests
- Refactor and streamline the MistralAiAutoConfiguration.
- Add MistralAiAutoConfigurationIT
The text-embedding-3-small has the same dimensions as previous text-embedding-ada-002.
The text-embedding-3-large has higher dimensionality not supported by some Vector Stores.
- Remove the SpringAiFunction annotation in favour of palin Functino Beans, @Description annotation and JacksonClassAnnotation.
- Update the function calling documentation to reflect latest changes.
- Add a new openai option (and related property): spring.ai.openai.chat.options.beanFunctions.<function-name>.<description>
Map of bean names and their descriptions to register as function callbacks.
- Refactor the OpenAiAutoConfiguration to resolve and register the beans in beanFunctions.
- Add dependency on Spring Cloud Function to use the FunctionContextUtils and FunctionTypeUtils
Those utilites help to resolve the function input type signature.
- Add DefaultToolFunctionCallback class for manually wrapping Functions.
- Update the ITs.
* Add function call OpenAiApi IT tests
* Add function call docs. Unit and IT func tests
* Add function call diagram
* Allow to opt-in/enable the fuctions to be used in request.
- Add postgremaddmbedding adoc page.
- Auto-configuration:
- add missing boot-starter.
- refactor autoconf class and properties to accomodate the PostgresMlEmbeddingOptions.
- PostgesMlEmbeddingClient
- Add the (default) options field and remove old fields.
- Implement default and request options merging.
- Add tests for options and merging.
- Remove redundant code.
- Code style fixes.
- Add AzureOpenAiChatOptions
- Add default options field to AzureOpenAiChatClient.
- Impl runtime (e.g. prompt) and default options on call.
- Add options field to the AzureOpenAiChatProperties.
- Add AzureOpenAiEmbeddingOptions
- Add default options field to AzureOpenAiEmbeddingClient.
- Impmlement runtime and default option merging on embedding request.
- Add options field to AzureOpenAiEmbeddingProperties.
- Add Unit and ITs.
- Split the azure-openai.adoc into ./clients/azure-openai-chat.adoc and ./embeddings/azure-openai-embeddings.adoc.
- Provide detailed explanation how to use the chat and embedding clients manually or via the auto-configuration.
- Add protable ChatOptions support
- Rename OllamaChatClient#withOptions(...) method to OllamaChatClient#withDefaultOptions(...)
- Rename OllamaEmbeddingClient#withOptions(...) method to OllamaEmbeddingClient#withDefaultOptions(...)
- Remove the Chat/Embedding Client model field by defaultOptions.mode one.
- Correct default and runtime OllamaOptions merging implemented.
- Added support for portable ChatOptions.
- OllamaOptions a synthetic field ‘model’ not supported by Ollama API but used by the OllamaChatClient
and OllamaEbeddingClients. The model field is removed before calling the OllamaApi.
- Update the IT ollama docker image to 0.1.23
- Set Mistral as the default model.
- Extend and improve the ITs
- Add tests for testing the chat and embedding request creation and options merging logic.
- Minor code-style improvements.
- Split the ollama.adoc into embeddings/ollama-embeddings.addoc and clients/ollama-chat.adoc.
- Improve the documentation to explain how to configure and use the Ollama Chat and Embedding clients manually or with the help of the auto-configuraitons.
- Clarify the docs property sections.
- Now you can use an arbitrary ChatOption instance as Prompt options for the OpenAIChatClinet.
- Add Unit tests for OpenAiApi and ModelOptionsUtils.
- Document portable options support.
- Impove the code style.
- Merge the OpenAiImageOptions interface impl and builder into one class.
- Improve the OpenAiImageClient call implementation.
Resolves#274
Add OpenAiChatOptions
- OpenAiChatOptions implements ChatOptions and exposes all OpenAi request options, except messages and stream.
- Add OpenAiChatOptions field (as defaultOptions) to OpenAiChatClient. Implement star-up/runtime options merging on chat request creation
- Add OpenAiChatOptions options field to OpenAiChatProperties. Later is set as OpenAiChatClient#defaultOptions. Use the spring.ai.openai.chat.options.* prefix to set the options.
- Add tests for properties and options merging.
- Move the OpenAiChatOptions.java out of the api package
Add OpenAiEmbeddingOptions
- Add OpenAiEmbeddingOptions class implementing the EmbeddingOptions interface.
- Add OpenAiEmbeddingClient#defaultOptions
- Add request merging with default and propmt options.
- Add OopenAiEmbeddingProperties#options field of type OpenAiEmbeddingOptions
Update OpenAI client docs
Part of the larger 'epic' issue #228
- Fix the Ollama options merging to pervent NPE.
- Fix the Ollama handling for SYS messages.
- Fix the BeanOutputParser to support JSON Schema reponses.
- All Ollama Parsers tests pass now.
Resolves: #258 , #273