- Fix a bug in Azure streaming response. Ensure that the merge functionality resolves the right
object constructors
- drop the @ConditionalOnMissingBean for the ChatClientAutoConfiguration#chatClientBuilder .
If multiple chat model starters are added to the POM this will fail as the ChatClient.Builder
auto-config can handle only one chat model. Then the spring.ai.chat.client.enabled=false must be set.
- Add missing AutoConfiguration imports for SpringAiRetryAutoConfiguration.class, RestClientAutoConfiguration.class,
and WebClientAutoConfiguration.class to the AnthropicAutoConfiguration, MistralAiAutoConfiguration,
OllamaAutoConfiguration,VertexAiPalm2AutoConfiguration.
- change the OpenAi and Azure OpenAi default chat models to gpt-4o
- clean and improve the stability of various ITs
* Tests have been updated to use the "gpt-4-turbo" model instead of the "gpt-4-turbo-preview".
* String comparisons of temperature have been adjusted to match the format changes from model reponses
* Move ChatClient and related classes into the chat.client package
* Move ChatModel and related class into the chat.model package
* Smaller refactorings to remove DSM cycles
* Update README.md
* 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 <ctzolov@vmware.com>
Co-authored-by: Mark Pollack <mpollack@vmware.com>
Add a default collection name similar to other vector store
implementations. Currently, when using starters, qdrant requires
a collection name. Otherwise, it fails.
Currently, `QdrantClient` and `WeaviateClient` are not exposed as
beans. Having access to those would benefit to perform operations
with an already configured client.
- Deprecate QdrantVectorStoreConfig.
- Update Qdrant manual config adoc.
- Improve Qdrant adoc.
- Update Weaviate docs.
- In ITs rename property spring.ai.azure.openai.chat.options.model to spring.ai.azure.openai.chat.options.deployment-name.
- Resolve compilation issues after the client library update.
- add index configuration and add support for ES response error handling.
- rename dims to dimension propety.
- add property javadocs
- improve the elasticsearch javadoc.
- add concurrency to store.add(..) (bc embeddingClient is slow)
- CassandraVectorStoreAutoConfiguration uses CassandraAutoConfiguration
- driver profiles for production stability+performance,
- small cleanups and naming fixes,
- main doc tidy-up
- astradb compatibility (protocol V4)
– don't create embeddings again for documents that already have them
similar to https://github.com/spring-projects/spring-ai/pull/413
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.
Configure the amount of time to allow the client to complete the execution of an API call.
This timeout covers the entire client execution except for marshalling. This includes request handler execution,
all HTTP requests including retries, unmarshalling, etc. This value should always be positive, if present.
- Add timeout filed to the AbstractBedrockApi, used to initialize the BedrockRuntimeClient and the
BedrockStreamingRuntimeClient. Update all classes that extend the AbstractBedrockApi.
- Keep the previous constructors for backward compatibility using timeout value of 5 min.
- Add a common AWS connection timeout auto-config property and update the documentation.
Defaults to 5 min.
Additional changes:
- Fix Anthropic 3 straming response - add bedrock metrics field.
- Increate the default timeout to 5 min. Update the docs.
- Increase the ITs.
- expanded the AnthropicApi to include Tool, facilitating request and response abstractions.
- extended AnthropicChatClient to inherit AbstractFunctionCallSupport, with
implementation of all necessary methods and function registration protocols.
- implemented FunctionCallingOptions interface in AnthropicChatOptions.
- added tools integration tests for AnthropoicApi and AnthropicChatClient.
- extended the auto-configuration with functional calling functionality.
- added ITs for tools auto-config.
- updated documentation on anthropic function calling and relevant pages for comprehensive coverage.