Spring AI Spring Boot Auto Configuration modules providing automatic setup for AI models, vector stores, MCP, and retry capabilities
Spring AI autoconfiguration supports Spring Cloud Bindings for service binding integration in cloud environments (Cloud Foundry, Kubernetes, etc.).
When service bindings are detected, they automatically configure connection details without explicit properties. This enables portable deployments across cloud platforms.
/**
* MCP Client SSE connection details from service binding
* Binding Type: mcp-sse
*/
interface McpSseClientConnectionDetails {
String getUrl();
String getSseEndpoint();
}
/**
* Ollama connection details from service binding
* Binding Type: ollama
*/
interface OllamaConnectionDetails {
String getBaseUrl();
}
/**
* Chroma vector store connection details
* Binding Type: chroma
*/
interface ChromaConnectionDetails {
String getHost();
int getPort();
}
/**
* GemFire vector store connection details
* Binding Type: gemfire
*/
interface GemFireConnectionDetails {
String getHost();
int getPort();
String getIndexName();
}
/**
* Milvus vector store connection details
* Binding Type: milvus
*/
interface MilvusServiceClientConnectionDetails {
String getHost();
int getPort();
String getDatabase();
String getCollection();
}
/**
* AWS OpenSearch connection details
* Binding Type: opensearch-aws
*/
interface AwsOpenSearchConnectionDetails {
String getEndpoint();
String getRegion();
}
/**
* OpenSearch connection details
* Binding Type: opensearch
*/
interface OpenSearchConnectionDetails {
List<String> getUris();
String getUsername();
String getPassword();
}
/**
* Qdrant vector store connection details
* Binding Type: qdrant
*/
interface QdrantConnectionDetails {
String getHost();
int getPort();
String getApiKey();
boolean isUseTls();
}
/**
* Typesense vector store connection details
* Binding Type: typesense
*/
interface TypesenseConnectionDetails {
String getProtocol();
String getHost();
int getPort();
String getApiKey();
}
/**
* Weaviate vector store connection details
* Binding Type: weaviate
*/
interface WeaviateConnectionDetails {
String getScheme();
String getHost();
String getApiKey();
}# servicebinding.yaml
apiVersion: servicebinding.io/v1alpha3
kind: ServiceBinding
metadata:
name: weaviate-binding
spec:
service:
apiVersion: v1
kind: Service
name: weaviate
application:
name: my-spring-ai-app
type: weaviate
provider: example-providerYou can provide ConnectionDetails beans programmatically:
@Configuration
public class CustomConnectionConfig {
@Bean
public WeaviateConnectionDetails weaviateConnectionDetails() {
return new WeaviateConnectionDetails() {
@Override
public String getScheme() { return "http"; }
@Override
public String getHost() { return "localhost:8080"; }
@Override
public String getApiKey() {
return System.getenv("WEAVIATE_API_KEY");
}
};
}
}When multiple configuration sources are available: