Spring AI is built on top of Spring Boot 3.1, which offers ConnectionDetails and ServiceConnection support for Docker Compose and Testcontainers to improve DevEx

Expected Behavior

Support in Testcontainers modules for Chroma, Milvus, Weaviate and Qdrant. Also, redis can be through GenericContainer and for specific images listed below

Support

  • [x] Chroma (ghcr.io/chroma-core/chroma)
  • [x] Milvus (milvusdb/milvus)
  • [x] Ollama (ollama/ollama)
  • [x] Weaviate (semitechnologies/weaviate)
  • [x] Redis (redis)
  • [x] Qdrant (qdrant/qdrant)

Current Behavior

Use @DynamicPropertySource.

I can contribute or collaborate if other contributors are willing to contribute on this.

Comment From: markpollack

This probably isn't a high priority in the quick march to a 1.0 release, but I can see it being a useful option. I've put it on 0.9.0 for now so that we can discuss more and it doesn't get lost.

Comment From: ThomasVitale

This would be a really great feature. Combined with the Spring CLI functionality for project catalogs, it could result in a very nice "getting started" experience. I'm doing something like that in the LangChain4j Spring Boot extension: https://github.com/ThomasVitale/langchain4j-spring-boot

Comment From: eddumelendez

Testcontainers 1.19.6 provides new modules for ChromaDB, Milvus, Qdrant and Weaviate. This can help to configure development environments.

Comment From: eddumelendez

Some support for vector databases such as pgvector and neo4j have been submitted to start.spring.io project.

Wondering if the topic has been discussed and are willing to receive contributions. I would like to start adding a first PR adding the infrastructure and new modules for docker-compose and testcontainers with redis service connection support and once having a baseline other PRs can be submitted for each vector database. WDYT?

Comment From: markpollack

Hi @eddumelendez I think I misunderstood this upon first reading and now going back to do issue triage have re-read your suggestion and ThomasVitale comment made the light bulb go off. As the author of Spring CLI I'm super keen to go down this approach with respect to devex. Perhaps we can have a zoom call to discuss as it maybe hard to capture everything async via comments. You can email me at mpollack@vmware dot com and we can discuss more. Thanks again.

Comment From: eddumelendez

Completed in #453