- Factor out OpenAiApiClientErrorException and OpenAiApiException out of
OpenAiApi into standalone common package.
- Move the HTTP error handling and header setup into a shared ApiUtils.
- Add ChatModel and EmbeddingModel enums to OpenAiApi.
- Add ImageModel enum ot OpenAiImageClient.
Also
- fix a MistralAiApi (and OpenAiApi) issue just introduced by Mistral API
- change the auto-config properties prefix from spring.ai.mistral.* to spring.ai.mistralai.*
- minor doc references updates.
- Make MistralAiChatClient extend the AbstractFunctionCallSupport and implement the necessary abstract classes.
- Extend the MistralAiApi to include the latest (undocumented) changes providing function calling support as well.
The Mistral AI is almost identical to the OpenAI API except it doesn't support parallel function colling (e.g. missing tool_call_id).
- Add MistralAiApi function calling tests (implement the Mistral tutorial).
- Extend the misral chat options to include the new API features and function call abstractions.
- Extend Mistral's chat auto-configration to accomodate the function callback support.
- Add ITs for testing function calling.
- Remove redundant code from MistralAiApi and OpenAiApi.
- Simplify and improve the HTTP error handling in OpenAiApi, ImageAiApi and MistralAiApi.
- Implement QdrantVectorStore.
Uses a custom parser for converting Spring AI metadata(Map<String, Object>) to Qdrant GRPC payload.
- Implement Qdrant Expression Filter support.
Uses a custom parser for converting Spring AI filters to Qdrant-compatible GRPC filters.
- Add ITs using testcontainers.
- Add antora docs adrant.adoc.
- Add Qdrant vector store auto-configuraton and boot starter.
Additional (review) change:
- Fix poms parent to 0.8.1-SNAPSHOT.
- Rename ObjectFactory into QdrantObjectFactor.
- Rename ValueFactory into QdrantValueFactory.
- Move the org.springframework.ai.vectorstore package into org.springframework.ai.vectorstore.qdrant.
- Add missing Autoconfigure definition.
- Add missing license and JavaDocs.
- Minor code style improvmentes.
- Move the qdrant version to the main pom
- Add QdrantVectorStoreAutoConfigurationIT
- Remove guava dependency
- Improve gdrant.adoc conent and structure.
- Remove the grpc-protobuf dependency
Resolves#331
- 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
Currently, test is disable because in every run the image should
be downloaded and then pull the model. Now, taking advantage of
Testcontainers and a GHA, a new image is created on-the-fly with
the model in it and then cached, so, next executions will reuse the
cached image instead.
Fixes#121
Property is of format `*.enabled=` and is true by default.
Note: the Bedrock clients are disabled by default.
- Add deactivation support for Vertex AI PaLM2 clients
- Add deactivation support for Azure OpenAI clients
- Add deactivation support for huggingface chat client
- Add deactivation support for Ollama clients
- Add deactivation support for OpenAI clients
- Add deactivation support for Stability Image and PostgresML clients
- Add deactivation support for ONNX Transformers Embedding client
Resolves#363
* Added instructions on how to set up and use the 'Deployment Name' for Azure AI applications in the documentation.
* Corrected the default chat model from 'gpt-3.5-turbo' to 'gpt-35-turbo' for alignment with Azure's naming conventions.
This change addresses and fixes BeanOutputParserTest failures observed
on the Windows platform by ensuring consistent line ending normalization
across different operating systems.
Fixes#279