Commit Graph

403 Commits

Author SHA1 Message Date
xiehui1956
f5608be65d Add Minimax AutoConfiguration.imports file 2024-07-02 10:42:07 -04:00
Christian Tzolov
13a4e76511 Azure AI: Support OpenAI key and MS Entra auth
- Enable Authentication using OpenAI API key
- Use TokenCredential for authorization if provided by the user
- Add the spring.ai.azure.openai.openai-api-key for auth with OpenAI service
- Update Azure Chat and Embedding docs
- Add integration tests for OpenAI connection

Resolves #260
2024-07-02 10:33:09 -04:00
Soby Chacko
b206b37dfd Consistent vector store property prefix for Chroma store
* The Chroma vector store config property prefix uses .store at the end
  which is not consistent with the other vector stores - fixing this.

* Update the upgrade-notes.adoc
2024-06-26 11:17:10 -04:00
Eddú Meléndez
feecca77c3 Use Weaviate's readiness endpoint
Currently, Testcontainers Weaviate implementation relies on port availability.
This commit switch to Weaviate's readiness endpoint.
2024-06-24 17:48:04 +02:00
Mariusz Bernacki
20e4b5609a OpenAI: Add support for streamin token usage.
- OpenAiApi: add StreamingOptions class and ChatCompletionRequest#streamingOptions field.
 - add OpenAiChatOption#withStreamingUsage(boolean) to set/unset the StreamingOptions.
 - add a boolean (get/set)StreamUsage() to OpenAiChatOptions that internally set the SstreamOptions.
   Later allows the "spring.ai.openai.chat.options.stream-usage" property.
 - update the OpenAI property documentation.

Co-authored-by: Christian Tzolov <ctzolov@vmware.com>
2024-06-24 08:42:38 +02:00
Eddú Meléndez
12dbc1effb Align OpenSearch image version 2024-06-22 20:52:10 +02:00
GR
997e01ca6b Add support for QianFan AI models
- Add chat, embeddin and image models
- Tests
- Docs
2024-06-22 13:30:38 -04:00
Christian Tzolov
797c7d349d Fix a merge bug in OpenSearchConfiguration#openSearchClient
Resolves #923
2024-06-22 14:40:24 +02:00
Eddú Meléndez
d276d17c1f Add AWS OpenSearch AutoConfiguration
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
2024-06-21 22:57:06 +02:00
GR
f989dfe06e Update ZhiPuAi model support
- Added additional support for ZhiPuAi models including vision model GLM-4V
- Default model changed to GLM_4_Air and update documentation
- Added additional unit and integration tests
- Add documentation for vision model
2024-06-21 15:52:19 -04:00
GR
d5b8123e60 Add support for Moonshot AI model
- Docs
- Tests
2024-06-21 15:23:54 -04:00
Muthukumaran Navaneethakrishnan
f0ca61252b Add support for customizable PgVectorStore schema, table, and index names (#747)
This change allows users to specify custom names, facilitating management of multiple vector databases within a single database instance.

 Key changes:
 - Implement configurable schema, table, and index names for PgVectorStore
 - Add properties to set custom schema and table names
 - Introduce optional schema/table & field validation for custom configurations
 - Include additional tests for new configurations and existing deployments

 Additional improvements:
 - Rename properties to schemaName, tableName, and schemaValidation
 - Update pgvector documentation with new properties
 - Add schema/table name tests to PgVectorStoreAutoConfigurationIT and PgVectorStorePropertiesTests
 - Create standalone PgVectorSchemaValidator class for schema/table validation
 - Add missing 'CREATE SCHEMA IF NOT EXISTS' when initializeSchema=true
 - Remove redundant code and classes

 Resolves #747

Co-authored-by: Christian Tzolov <ctzolov@vmware.com>
2024-06-21 11:02:22 +02:00
geetrawat
067a33dbe2 Improved GemFire support
- 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>
2024-06-20 17:17:13 -04:00
Eddú Meléndez
37c222a5f3 Add OpenSearch Service Connection support
Service Connection support for Docker Compose and Testcontainers.
2024-06-20 07:20:30 +02:00
Eddú Meléndez
5844f9bf39 Polish Qdrant tests
Use helper methods provided by Testcontainers.
2024-06-20 07:16:03 +02:00
Eddú Meléndez
5543643452 Polish OracleVectorStoreAutoConfiguration 2024-06-19 16:30:22 +02:00
Eddú Meléndez
8188f0e59a Support Qdrant's Api Key in Docker Compose and Testcontainers
Read `QDRANT__SERVICE__API_KEY` env var from compose file and
Testcontainers definition to configure the connection details for
Qdrant.
2024-06-19 16:11:21 +02:00
Eddú Meléndez
e4607a6c29 Support ChromaDB's CHROMA_SERVER_AUTHN_CREDENTIALS env var in Docker Compose and Testcontainers
Read `CHROMA_SERVER_AUTHN_CREDENTIALS` env var from compose file and
Testcontainers definition to configure the connection details for
ChromaDB.
2024-06-19 16:08:57 +02:00
Eddú Meléndez
6ce998f9d3 Add support for Typesense Service Connection
Docker Compose and Testcontainers Service Connection support for
Typesense.
2024-06-19 15:59:49 +02:00
Christian Tzolov
16c531c36c Azure ITs adjustment: prove streaming does chunks the response content 2024-06-18 18:39:57 +02:00
Christian Tzolov
b7475ed060 Update Weaviate docker version. remove import wildcard definitions 2024-06-18 09:33:30 +02:00
Christian Tzolov
2c7dc3d6f1 Pinecone: Add configurable content and distance metadata fields (#882)
- Add `withContentFieldName` and `withDistanceMetadataFieldName` to Pinecone Config Builder
 - Add `spring.ai.vectorstore.pinecone.contentFieldName` and `spring.ai.vectorstore.pinecone.distanceMetadataFieldName`
   properties to the auto-config
 - Default content field name: "document_content", distance field: "distance"
 - Update tests and docs

 Resolves #882
2024-06-18 07:57:15 +02:00
Laura Trotta
aca3720f5b ElasticSearch: remove redundant dependency and add note to docs. 2024-06-17 20:56:57 +02:00
Stefan Vassilev
91a0b2a272 Add enabled property for OpenAI audio and transcription model
- Extend the audio speach/transcription properties to allow disabling autoconfiguration for the audio and transcription models.
   This makes the settings consistent across the different OpenAI client properties.
 - Add audio auto-conf activation tests

Co-authored-by: Christian Tzolov <ctzolov@vmware.com>
2024-06-17 16:42:12 +02:00
Laura Trotta
78f3797f8d Update Elasticsearch Store: Use KNN insettad of script_score
- knn instead of script_score, removed initialization
 - only using normalized similarities, adjusted unit test
 - making l2norm's distances consistent with others
 - update dependency version and docs
 - upate autoconfigure ITs
2024-06-17 15:17:48 +02:00
Christian Tzolov
958549ecce Rename all Embedding Client doc and variables occurrences into Embedding Model 2024-06-16 21:24:03 +02:00
Eddú Meléndez
704dec20d9 Chroma Vector Store: replace RestTemplate by RestClient
- replace RestTemplate by  RestClient but default to SimpleClientHttpRequestFactory as Chroma seems to have issues with HTTP2.
 - update the documentation.
 - update the ghcr.io/chroma-core/chroma version to 0.5.0. Fix the withBasicAuthCredentials.

Co-authored-by: Christian Tzolov <ctzolov@vmware.com>
2024-06-16 21:07:03 +02:00
Jemin Huh
46e47849ce Add OpenSearch vector store integration
- implement OpensSearchVectorStore
 - add opensearch auto-configuration and boot starter
 - add documentation for OpenSearch VectorStore
 - add bom dependecies
 - align with to new Spirng AI API
2024-06-16 12:43:09 +02:00
Eddú Meléndez
80a5f2f5b7 Remove property usage 2024-06-16 11:33:54 +02:00
Eddú Meléndez
879f992394 Use Testcontainers Vector DBs modules in autoconfiguartion module 2024-06-15 21:50:35 +02:00
PabloSanchi
3e2ed8b9bf Add Typesense vector store integration
- 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.
2024-06-15 19:55:05 +02:00
Christian Tzolov
1d479e3aab Minor PgVector ITs improvements 2024-06-15 17:49:21 +02:00
Thomas Vitale
1eb61efc50 [Mistral] Update models
* Align model naming with Mistral AI documentation
* Add missing model for mixtral 22B
* Deprecate mistral-medium-latest because Mistral will remove it soon

Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-06-15 17:48:14 +02:00
Thomas Vitale
7248075565 Fix Spring AOT for ConnectionDetails beans
Fixes gh-861

Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
2024-06-15 16:59:35 +02:00
Christian Tzolov
053fcb0153 Patch the baadf4cb53 2024-06-15 12:57:26 +02:00
Christian Tzolov
baadf4cb53 Fix Oracle Vector Store dependencies
- force override the outdated SpringBoot Oracle version.
 - add auto-config tests.
2024-06-15 12:21:56 +02:00
LLEFEVRE
41cf693bc0 Add Support for Oracle 23ai as vector database
- add OracleVectorStore with metadata filter expression support.
 - add ITs using oracle-free-slim testcontainers.
 - add auto-configuration and boot starter.
 - add adoc documentation.
 - Adjust javadoc references.

 Resolves #703

 Co-authored-by: Eddú Meléndez Gonzales <eddu.melendez@gmail.com>
2024-06-14 06:46:01 +02:00
Christian Tzolov
be9e4a828a Improve Hugging Face ITs 2024-06-13 22:13:40 +02:00
Thomas Vitale
2a592d4e84 Introduce Hugging Face Starter
* 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>
2024-06-13 22:07:58 +02:00
Christian Tzolov
85d2fa525e Fix the Gemini parallel function calling behaviour.
Enable handling multiple function calls at once.
  Change the Gemini model names from preview to gemini-1.5-pro-001 and gemini-1.5-flash-001.
  Simplify the Gemini function calling ITs. drop the multi-turn instructions.
2024-06-13 15:37:53 +02:00
Christian Tzolov
dbccfda7c5 Update Google VertexAI Gemini to 26.41.0
- update the Gemini function calling ITs to include a system message with dedicated calling instructions.
 - fix a type with few Gemini ChatModel enum names.
 - re-enable all Gemini ITs.
2024-06-13 12:43:23 +02:00
Christian Tzolov
a4412b5d3a Various fixes and stability improvements
- 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
2024-06-07 14:26:17 +02:00
Mark Pollack
ac91302eed Next development version 2024-05-28 13:53:04 -04:00
Mark Pollack
0670575f3e Release version 1.0.0-M1 2024-05-28 13:49:11 -04:00
Mark Pollack
2b2cacce8c Add documentation for ChatClient and Evaluation 2024-05-27 23:04:12 -04:00
Benoit Moussaud
a30cc9d84d Add the support of Azure OpenAI image generation
* Add docs
2024-05-27 16:26:24 -04:00
Christian Tzolov
178a607cf6 Fix an issue related to the Azure OpenAI streamig response
This issue in the Flux streaming logic was causing chunks
  to be aggreagated in a single response.

  Re-enable the AzureOpenAiAutoConfigurationIT
2024-05-27 01:02:35 +02:00
Mark Pollack
a60035eeb6 Update to Spring Boot 3.3
* 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
2024-05-26 16:24:57 -04:00
Mark Pollack
c22b2f05dd Add support for use of AZURE_OPENAI_DEPLOYMENT_NAME in IT tests
* remove from README.md info of changed default for initialize-schema
2024-05-26 14:28:51 -04:00
Christian Tzolov
7c2c0cfc18 Improve the MockWeatherService to reduce erratic IT behaviour 2024-05-26 20:25:26 +02:00