Commit Graph

24 Commits

Author SHA1 Message Date
Soby Chacko
505046749f Migrate vector store auto-configurations to dedicated modules
Move vector store auto-configuration classes to dedicated modules under auto-configurations/vector-stores/:
- Creates separate modules for Cassandra, Chroma, Elasticsearch, GemFire, HanaDB, MariaDB, MongoDB Atlas, Neo4j, OpenSearch, Oracle, PGVector, and Redis vector stores
- Updates package names to follow the pattern org.springframework.ai.vectorstore.<implementation>.autoconfigure
- Renames corresponding starter modules to follow the pattern spring-ai-starter-vector-store-<implementation>
- Updates import paths in affected classes
- Relocates test resources alongside their respective implementations
- Updates imports in spring-ai-spring-boot-docker-compose and spring-ai-spring-boot-testcontainers

This change improves modularity by allowing each vector store implementation to be
independently versioned and maintained, following the migration pattern established
with previous vector store autoconfiguraiton and starters .

Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
2025-03-24 15:34:22 -04:00
Soby Chacko
7f24740690 Migrate vector store auto-configurations to dedicated modules
Move vector store auto-configuration classes to dedicated modules under auto-configurations/vector-stores/:

- Creates separate modules for Milvus, Pinecone, Qdrant, and Typesense vector stores
- Moves CommonVectorStoreProperties to spring-ai-core for better reusability
- Updates pom.xml dependencies to maintain proper relationships between modules
- Name the artifacts based on the pattern spring-ai-autoconfigure-vector-store-<implementation>.
  For example - spring-ai-autoconfigure-vectore-store-milvus
- Package names follow the pattern org.springframework.ai.vectorstore.<implementation>.autoconfigure
- Naming the correspondinbg starter modules accordingly (spring-ai-starter-vector-store-milvus for example).

This change improves modularity by allowing each vector store implementation to be
independently versioned and maintained, continuing the migration pattern established
with previous vector stores.

Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
2025-03-24 15:34:22 -04:00
Ilayaperumal Gopinathan
0453fc55d5 Modularise Spring AI Spring Boot autoconfigurations
- Split spring-ai-spring-boot-autoconfigure into modules

     - This PR addresses the restructuring of the following spring boot autoconfigurations:

       - spring-ai retry -> common
       - spring-ai chat client/model/memory -> chat
       - spring-ai chat/embedding/image observation -> observation
       - spring-ai chat/embedding models -> models

     - Update the Spring AI BOM and boot starters with the new autoconfigure modules

     - Rename the autoconfiguration and starters

        - The package name for the models in autoconfiguration classes will have `org.springframework.ai.model.<name>.autoconfigure`
        - Both the autoconfiguration and starters will have the prefix `spring-ai-autoconfigure-model` and `spring-ai-starter-model` respectively

Signed-off-by: Ilayaperumal Gopinathan <ilayaperumal.gopinathan@broadcom.com>
2025-03-24 15:34:22 -04:00
Ilayaperumal Gopinathan
854e5458e4 Re-enable WeaviateDockerComposeConnectionDetailsFactoryIT
- An attempt to fix the underlying issue with this IT test was made via https://github.com/spring-projects/spring-ai-integration-tests/pull/7
2025-02-04 00:09:56 +00:00
Ilayaperumal Gopinathan
1c156e9fdc Disable WeaviateDockerComposeConnectionDetailsFactoryIT
- disable runCreatesConnectionDetails test until the issue https://github.com/spring-projects/spring-ai/issues/2026 is fixed.
2025-01-02 13:04:31 +00:00
Ilayaperumal Gopinathan
ece4fd4c5e Attempt to fix WeaviateDockerCompose IT
- Choose port range instead of random available port
2025-01-02 12:43:49 +00:00
Christian Tzolov
d030b82b59 Update mavne build with a profile for fast integration tests
- Add new Maven profile 'ci-fast-integration-tests' for running selective ITs
- Remove redundant vector store skip flags from properties section
- Update maven-failsafe-plugin to version 3.5.2
- Configure test exclusions for various components:
  - Most model integration tests (Anthropic and OpenAI)
  - Most vector store tests (except PgVector and Chroma)
  - Most auto-configuration tests
  - All test containers and docker compose tests
  - AI evaluation tests
- Convert the docker-compose tests into ITs
- Convert the testcontainers tests into ITs
- Updated README.md
  - Explain the new profile and also the new integration tests repo
  - Describe ways to run integration tests for specific modules
  - Add badge for https://github.com/spring-projects/spring-ai-integration-tests
2024-11-25 16:07:32 -05:00
Ilayaperumal Gopinathan
3b95dfd87f Fix checkstyle errors 2024-11-19 23:29:36 +00:00
Eddú Meléndez
6261ce02ff Add LocalStack OpenSearch Service Connection support for Docker Compose and Testcontainers
* Add property `spring.ai.vectorstore.opensearch.aws.domain-name`
* Require `AwsCredentialsProvider` to enable `AwsOpenSearchConfiguration`
* Add Testcontainers Service Connection support
* Add Docker Compose Service Connection support
2024-11-19 11:58:37 +00:00
Christian Tzolov
0ca91b2ed9 fix: Resolve various javadoc and checkstyle issues 2024-11-16 11:06:14 +01:00
Soby Chacko
e72ab6ba25 Addressing more checkstyle violations
- Enable checkstyle on more modules and adressing violations
review
2024-10-31 01:04:41 -04:00
Soby Chacko
8e758dbd00 Introduce checkstyle plugin
- Based on https://github.com/spring-io/spring-javaformat
- In this iteration, checkstyles are only enabled for spring-ai-core
2024-10-24 16:43:59 -04:00
Eddú Meléndez
e1d9bfc616 Add MongoDB Atlas support for TestContainers and Docker Compose
Implement service connection support for MongoDB Atlas using both
TestContainers and Docker Compose. This change enables easier
integration testing and local development with MongoDB Atlas.

- Leverage TestContainers 1.20.2 which introduces MongoDBAtlasLocalContainer
- Add TestContainers support using MongoDBAtlasLocalContainer
- Implement Docker Compose configuration for MongoDB Atlas
- Create connection details factories for both TestContainers and Docker Compose
- Update dependency management for MongoDB Atlas integration
- Add integration tests for both TestContainers and Docker Compose setups
- Update documentation to include MongoDB Atlas support
2024-10-03 12:58:53 -04:00
Eddú Meléndez
ee00c620c6 Prepend 'http://' to host in ChromaConnectionDetails
Modify getHost method to return a properly formatted URL string. This
ensures that the Chroma client can correctly connect to the service
when using Docker Compose.

Fixes #1395
2024-09-24 17:28:31 -04:00
Eddú Meléndez
0a07f65d6a Use RedisAutoConfiguration in RedisVectorStoreAutoConfiguration
Currently, `RedisVectorStoreAutoConfiguration` creates its own
configuration to connect with Redis. This commit reuse
`RedisAutoConfiguration` from spring boot project. It's limited
to Jedis.
2024-07-18 14:24:10 +02:00
Eddú Meléndez
c053289f4a Support Chroma's CHROMA_SERVER_AUTH_CREDENTIALS env var from version 0.4.x
Currently, Docker Compose and Testcontainers support `CHROMA_SERVER_AUTHN_CREDENTIALS`,
which is provided by Chroma 0.5.x. Previous versions use `CHROMA_SERVER_AUTH_CREDENTIALS`
instead.
2024-06-24 11:42:38 +02: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
ab29016282 Mark Docker Compose ConnectionDetailsFactory as non-public 2024-06-19 16:13:01 +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
b134a8d7ea Add support for redis/redis-stack image in Docker Compose
Currently, `redis/redis-stack-server` image is supported. This commit
introduces support for `redis/redis-stack`, which also contains Redis
Insight.
2024-06-19 16:06:01 +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
9bb2618436 Fix javadoc issues 2024-06-04 14:54:55 +02:00
Eddú Meléndez
9c1b1b84ee Add Docker Compose Service Connection
* For ChromaDB, Ollama, Qdrant, Redis, Weaviate
* Add docs
2024-05-26 23:28:44 -04:00