CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-springframework-ai--spring-ai-spring-boot-autoconfigure

Spring AI Spring Boot Auto Configuration modules providing automatic setup for AI models, vector stores, MCP, and retry capabilities

Overview
Eval results
Files

spring-cloud-bindings.mddocs/reference/

Spring Cloud Bindings Support

Spring AI autoconfiguration supports Spring Cloud Bindings for service binding integration in cloud environments (Cloud Foundry, Kubernetes, etc.).

Overview

When service bindings are detected, they automatically configure connection details without explicit properties. This enables portable deployments across cloud platforms.

Supported Service Bindings

/**
 * 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();
}

Kubernetes Service Binding Example

# 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-provider

Manual ConnectionDetails

You 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"); 
            }
        };
    }
}

Priority Order

When multiple configuration sources are available:

  1. Explicit ConnectionDetails Bean (highest priority)
  2. Spring Cloud Bindings (detected from environment)
  3. Configuration Properties (application.properties/yml)
  4. Default Values (lowest priority)

Install with Tessl CLI

npx tessl i tessl/maven-org-springframework-ai--spring-ai-spring-boot-autoconfigure@1.1.0

docs

index.md

tile.json