- add new spring-ai-vertex-ai-embedding project.
- add VertexAiTextEmbeddingModel and VertexAiMultimodalEmbeddingMode with related options configuration classes.
- add ITs
- add auto-configuraiton and boot starters.
- register to BOM.
- add documentation.
- add multimodal embedding documentation
- extend the Embedding metdata so that it can keep references to the source document's data, Id, mediatype
Resolves#1013
Related to #1009
Currently, in order to use an OpenSearch instance provided by AWS,
additional steps are needed. This commit introduces the required
configuration.
Add new starter and update docs
- Adds spring boot auto-configuration support for GemFireVectorStore
- Adds integration test GemFireVectorStoreAutoConfigurationIT
- Includes gemfire-testcontainers in integration tests
- Adds unit test GemFireVectorStorePropertiesTests
- Refactors GemFireVectorStore.java extracting GemFireVectorStoreConfig.java
- Renames spring-ai-gemfire to spring-ai-gemfire-store
- Adds GemFireConnectionDetails
- Adds GemFireVectorStoreProperties with default values
- Remove gemfire-release-repo maven repository
Co-authored-by: Louis Jacome <louis.jacome@broadcom.com>
Co-authored-by: Jason Huyn <jason.huynh@broadcom.com>
- implement OpensSearchVectorStore
- add opensearch auto-configuration and boot starter
- add documentation for OpenSearch VectorStore
- add bom dependecies
- align with to new Spirng AI API
- autoconfigure setup
- add post bean initialization and create method
- add embedding field
- create collection add nested field options
- add typesense tests
- use embedding variable instead of word vec
- check in runtime the number of documents in the collection
- add typesense expression converter
- add filter tests. add update document test and search with threshold test
- distance threshold and add distance key into metadata
- add typesesne boot starter
- add typesense docs
- add client properties in autoconfigure
- add embedding dimension method
- add typesense vector store autoconfiguration tests
- add docs to nav.adoc and vectorsdb.adoc.
- fix module name.
- move the expression converter to the typesense project.
* Added Spring Boot Starter for Spring AI Hugging Face
* Updated documentation with instructions using the starter dependency
* Fixed naming inconsistencies in the docs for Hugging Face
Fixes gh-838
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
The CassandraVectorStore is for managing and querying vector data in an Apache Cassandra db.
It offers functionalities like adding, deleting, and performing similarity searches on documents.
The store utilizes CQL to index and search vector data. It allows for custom metadata fields in
the documents to be stored alongside the vector and content data.
This class requires a CassandraVectorStoreConfig configuration object for initialization, which
includes settings like connection details, index name, field names, etc. It also requires an
EmbeddingClient to convert documents into embeddings before storing them.
A schema matching the configuration is automatically created if it doesn't exist. Missing columns
and indexes in existing tables will also be automatically created. Disable this with the disallowSchemaCreation.
This class is designed to work with brand new tables that it creates for you, or on top of existing
Cassandra tables. The latter is appropriate when wanting to keep data in place, creating embeddings
next to it, and performing vector similarity searches in-situ.
Instances of this class are not dynamic against server-side schema changes. If you change the schema
server-side you need a new CassandraVectorStore instance.
- Add auto-configure with tests.
- reformat code style
- Change field terminology to column (as appropriate for cassandra and cql)
- Add doc page with an advanced example.
- Add the dependencies to Spring AI BOM
– add to `AutoConfiguration.imports`
- Add @since annotation
- Fix javadoc issue
- Streamline the adoc content and layout
- Implement a HanaCloudVectorStore and tests
- Implement Autoconfiguraiton + properties
- Add boot starter
- Update BOM with vector store and boot dependencies.
- Add antora docuementation
- added junit for HanaCloudVectorStoreProperties.java and documentation
to create a BTP trial account and provision an instance for SAP Hana Cloud db
- updated license, formatting and javadoc
- IT for HanaCloudVectorStoreAutoConfiguration
- IT for HanaCloudVectorStoreAutoConfiguration
Additional
- add @AutoConfiguration(after = { JpaRepositoriesAutoConfiguration.class })
- update the handa docs structure.
- feat: setup watsonx ai api
- feat: add watsonx ai model options
- feat: setup watsonx chat client
- feat: add watsonx records/models
- add watsonx-ai module to pom
- add watsonx-ai module to bom
- feat: add connection properties watsonx
- feat: add WatsonxAiAutoConfiguration with api client
- feat: add starter watsonx.ai
- feat: add generate method in watsonx ai api
- feat: add watsonx ai api streaming generation method
- feat: add watsonx message to prompt converter util
- feat: implement call and stream mehtod
- feat: add watsonx ai runtime hints
- fix: filter null fields
- feat: watsonx options tests
- feat: add test dependencies
- feat: add runtime hints tests
- feat: add watsonx client tests
- fix: apply linter
- feat: add tests for message to prompt converter
- feat: add signature
- fix: change deprecated IamAuthenticator
- fix: do not keep baseUrl in a class variable
- fix: webClient request
- feat: add default base url to autoconfigure
- feat: add watsonx ai integration docs
- fix: model options json
- feat: add watsonx-ai spring boot starter
- feat: enable watsonx api on watsonx chat client
- fix: remove condition
- feat: add watsonx autoconfigure import
- feat: add watsonx module resource aot import
- feat: add pom for watsonx ai module
Additional pre-merge adjustments:
- Rename all WatsonxAIXxx classes to WatsonxAiXxx.
- Rename WatsonxChatClient to WatsonxAiChatClient.
- Move WatsonxAiChatOptions out of the API.
- Implement a Builder for WatsonxAiChatOptions (replace the inline withXxx code).
- Add a WatsonxAiChatOptions field to WatsonxAiChatClient as default options.
Later, it is also set by the auto-configuration properties.
- Implement merging logic for default vs runtime options in WatsonxAiChatClient.
- In Auto-config, add WatsonxAiChatProperties with enabled and options fields.
Options are passed to the client.
- Update the adoc to include the .chat.options properties.
- Add the watsonxai doc to the nav.adoc.
- Fix license headers and javadocs.
- Move dependency versioning to the parent POM.
- Implement ElasticsearchVectoSotore and IT.
- Add ElasticsearchAiSearchFilterExpressionConverter.
- Add dependency to BOM and module to parent pom.
- Fix ElasticsearchVectorStoreIT FilterExpression with
Date type requires the use of epoch milliseconds.
- Add license formatting.
This commit introduces support for the Anthropic Claude3 Message API
(https://api.anthropic.com), enabling direct interaction with its services.
This is not a Bedrock Anthropic Claude3 implemenation.
Changes include:
- Implementation of a low-level client, AnthropicApi, to interact with
the message API endpoints specified in the Anthropic documentation
(https://docs.anthropic.com/claude/reference/messages_post), including support for streaming.
- Addition of AnthropicApi tests to ensure functionality and reliability.
- Support for multimodal requests within AnthropicApi.
- Adding the spring-ai-anthropic and boot starter into BOM and parent POM modules for streamlined usage.
- Add Anthropic Auto-configuration and Boot Starter for seamless integration into existing projects.
- Implementation of AnthropicChatClient with capabilities for synchronous and streaming communication,
including support for multimodal messages.
- Inclusion of both unit and integration tests to validate functionality across various scenarios.
- Add Antora documentation with comprehensive guidance on using AnthropicApi and AnthropicChatClient.
- Add of Ahead-of-Time (AOT) hints for AnthropicApi.
- update anthropic diagram
- Add VectorSearchAggregation used to actually preform the search
on a given collection with embeddings.
- add MongoDBVectorStore
- Add MongoDBVectorStoreIT. Integration test runs fine given...
- You have a mongo atlas cluster to connect to (local or remote)
- You have the search index "spring_ai_vector_search" setup correctly
- Need to explore getting around this
- Need to filter results using threshold
- Add postfilter for threshold values - While a post filter is not ideal,
it gets the job done. The mongo team seems to be working on having
it availible as a prefilter option, in which this implementation
can be updated to use later.
- implement filtering threshold
- fix a few sonar issues
- formatting
- use higher default num_candidates
- use builder for configuration
- add documentation and some refactor
- use consistent property in integration test
- finish implementing filter support
- add documentation to filter converter
- add vector search index auto creation
- Add to BOM.
- Fix version to 1.0.0-SN.
- Move expresion converter from core to models/mongodb.
- Fix style and license headers
- Establish a new "spring-ai-retry" project, implementing a default HTTP error handler,
RetryTemplate, and handling both Transient and Non-Transient Exceptions.
- Streamline existing clients (e.g., OpenAI and MistralAI) to utilize "spring-ai-retry."
- Integrate retry auto-configuration with customizable properties, extending it to OpenAI and MistralAI Auto-Configs.
- Allow configuration of RetryTemplate and ResponseErrorHandler for various clients, including OpenAIChatClient,
OpenAiEmbeddingClient, OpenAiAudioTranscriptionCline, OpenAiImageClient, MistralAiChatClient, and MistralAiEmbeddingClient.
- Add tests for default RestTemplate and ResponseErrorHandler configurations in OpenAI and MistralAI.
- Introduce new retry auto-config properties: "onClientErrors" and "onHttpCodes".
- Implement tests for retry auto-config properties.
- Generate missing license headers.
- 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