Spring AI Azure Cosmos DB
Spring AI integrations for Azure Cosmos DB — bringing the power of Microsoft's globally distributed database to the Spring AI ecosystem.
💡 Tip: These modules work with Spring AI's standard abstractions, so you can swap implementations without changing your application code.
Modules
🗄️ Vector Store
Store document embeddings and perform similarity searches using DiskANN-powered vector indexing.
Azure Cosmos DB⚙️ Vector Store Auto-Configuration
Zero-config Spring Boot setup for the Cosmos DB Vector Store with sensible defaults.
Spring Boot💬 Chat Memory
Persistent conversation storage using Cosmos DB for chat history and message retrieval.
Azure Cosmos DB⚙️ Chat Memory Auto-Configuration
Zero-config Spring Boot setup for the Cosmos DB Chat Memory Repository with sensible defaults.
Spring BootQuick Start
1. Add the dependency
<dependency>
<groupId>com.azure.spring.ai</groupId>
<artifactId>spring-ai-autoconfigure-vector-store-azure-cosmos-db</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
2. Configure your connection
spring.ai.vectorstore.cosmosdb.endpoint=https://your-account.documents.azure.com:443/
spring.ai.vectorstore.cosmosdb.databaseName=my-database
spring.ai.vectorstore.cosmosdb.containerName=my-vectors
spring.ai.vectorstore.cosmosdb.vectorDimensions=1536
3. Inject and use
@Autowired
private VectorStore vectorStore;
// Add documents
vectorStore.add(List.of(new Document("Hello world")));
// Search
List<Document> results = vectorStore.similaritySearch(
SearchRequest.builder().query("Hello").topK(5).build());
Requirements
- Java 17+
- Spring Boot 3.x
- Spring AI 1.0+
- An Azure Cosmos DB account (NoSQL API)
- An embedding model provider (OpenAI, Azure OpenAI, etc.)
Authentication
All modules support two authentication methods:
- Key-based: Provide your Cosmos DB key in configuration
- Azure Identity (recommended): Uses DefaultAzureCredential for managed identity, service principal, and other Azure credential sources