The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .editorconfig
├── .gitattributes
├── .github
    ├── ISSUE_TEMPLATE
    │   ├── bug_report.md
    │   ├── config.yml
    │   ├── feature_request.md
    │   └── miscellaneous.md
    ├── PULL_REQUEST_TEMPLATE.md
    ├── dco.yml
    ├── release-files-spec.json
    └── workflows
    │   ├── artifactory-milestone-release.yml
    │   ├── auto-cherry-pick.yml
    │   ├── backport-issue.yml
    │   ├── continuous-inspection.yml
    │   ├── continuous-integration.yml
    │   ├── deploy-docs.yml
    │   ├── documentation-upload.yml
    │   ├── new-maven-central-release.yml
    │   ├── pr-check.yml
    │   └── release-notes-generation.yml
├── .gitignore
├── .mvn
    ├── extensions.xml
    └── wrapper
    │   ├── maven-wrapper.jar
    │   └── maven-wrapper.properties
├── CONTRIBUTING.adoc
├── LICENSE.txt
├── README.md
├── advisors
    └── spring-ai-advisors-vector-store
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │           └── java
    │           │   └── org
    │           │       └── springframework
    │           │           └── ai
    │           │               └── chat
    │           │                   └── client
    │           │                       └── advisor
    │           │                           └── vectorstore
    │           │                               ├── QuestionAnswerAdvisor.java
    │           │                               ├── VectorStoreChatMemoryAdvisor.java
    │           │                               └── package-info.java
    │       └── test
    │           └── java
    │               └── org
    │                   └── springframework
    │                       └── ai
    │                           └── chat
    │                               └── client
    │                                   └── advisor
    │                                       └── vectorstore
    │                                           ├── QuestionAnswerAdvisorTests.java
    │                                           └── VectorStoreChatMemoryAdvisorTests.java
├── auto-configurations
    ├── common
    │   └── spring-ai-autoconfigure-retry
    │   │   ├── pom.xml
    │   │   └── src
    │   │       ├── main
    │   │           ├── java
    │   │           │   └── org
    │   │           │   │   └── springframework
    │   │           │   │       └── ai
    │   │           │   │           └── retry
    │   │           │   │               └── autoconfigure
    │   │           │   │                   ├── SpringAiRetryAutoConfiguration.java
    │   │           │   │                   └── SpringAiRetryProperties.java
    │   │           └── resources
    │   │           │   └── META-INF
    │   │           │       └── spring
    │   │           │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │       └── test
    │   │           └── java
    │   │               └── org
    │   │                   └── springframework
    │   │                       └── ai
    │   │                           └── retry
    │   │                               └── autoconfigure
    │   │                                   ├── SpringAiRetryAutoConfigurationIT.java
    │   │                                   └── SpringAiRetryPropertiesTests.java
    ├── mcp
    │   ├── spring-ai-autoconfigure-mcp-client
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── mcp
    │   │   │       │   │               └── client
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── McpClientAutoConfiguration.java
    │   │   │       │   │                       ├── McpToolCallbackAutoConfiguration.java
    │   │   │       │   │                       ├── NamedClientMcpTransport.java
    │   │   │       │   │                       ├── SseHttpClientTransportAutoConfiguration.java
    │   │   │       │   │                       ├── SseWebFluxTransportAutoConfiguration.java
    │   │   │       │   │                       ├── StdioTransportAutoConfiguration.java
    │   │   │       │   │                       ├── aot
    │   │   │       │   │                           └── McpClientAutoConfigurationRuntimeHints.java
    │   │   │       │   │                       ├── configurer
    │   │   │       │   │                           ├── McpAsyncClientConfigurer.java
    │   │   │       │   │                           └── McpSyncClientConfigurer.java
    │   │   │       │   │                       └── properties
    │   │   │       │   │                           ├── McpClientCommonProperties.java
    │   │   │       │   │                           ├── McpSseClientProperties.java
    │   │   │       │   │                           └── McpStdioClientProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           ├── aot.factories
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── springframework
    │   │   │           │       └── ai
    │   │   │           │           └── mcp
    │   │   │           │               └── client
    │   │   │           │                   └── autoconfigure
    │   │   │           │                       ├── McpClientAutoConfigurationIT.java
    │   │   │           │                       ├── McpClientAutoConfigurationRuntimeHintsTests.java
    │   │   │           │                       ├── McpToolCallbackAutoConfigurationConditionTests.java
    │   │   │           │                       ├── McpToolCallbackAutoConfigurationTests.java
    │   │   │           │                       ├── SseHttpClientTransportAutoConfigurationTests.java
    │   │   │           │                       ├── SseWebFluxTransportAutoConfigurationTests.java
    │   │   │           │                       └── properties
    │   │   │           │                           ├── McpClientCommonPropertiesTests.java
    │   │   │           │                           └── McpSseClientPropertiesTests.java
    │   │   │       └── resources
    │   │   │           ├── application-test.properties
    │   │   │           ├── nested
    │   │   │               └── nested-config.json
    │   │   │           └── test-config.json
    │   └── spring-ai-autoconfigure-mcp-server
    │   │   ├── pom.xml
    │   │   └── src
    │   │       ├── main
    │   │           ├── java
    │   │           │   └── org
    │   │           │   │   └── springframework
    │   │           │   │       └── ai
    │   │           │   │           └── mcp
    │   │           │   │               └── server
    │   │           │   │                   └── autoconfigure
    │   │           │   │                       ├── McpServerAutoConfiguration.java
    │   │           │   │                       ├── McpServerProperties.java
    │   │           │   │                       ├── McpServerStdioDisabledCondition.java
    │   │           │   │                       ├── McpWebFluxServerAutoConfiguration.java
    │   │           │   │                       └── McpWebMvcServerAutoConfiguration.java
    │   │           └── resources
    │   │           │   └── META-INF
    │   │           │       └── spring
    │   │           │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │       └── test
    │   │           └── java
    │   │               └── org
    │   │                   └── springframework
    │   │                       └── ai
    │   │                           └── mcp
    │   │                               └── server
    │   │                                   └── autoconfigure
    │   │                                       ├── McpServerAutoConfigurationIT.java
    │   │                                       ├── McpWebFluxServerAutoConfigurationIT.java
    │   │                                       ├── McpWebFluxServerAutoConfigurationTests.java
    │   │                                       └── McpWebMvcServerAutoConfigurationIT.java
    ├── models
    │   ├── chat
    │   │   ├── client
    │   │   │   └── spring-ai-autoconfigure-model-chat-client
    │   │   │   │   ├── pom.xml
    │   │   │   │   └── src
    │   │   │   │       ├── main
    │   │   │   │           ├── java
    │   │   │   │           │   └── org
    │   │   │   │           │   │   └── springframework
    │   │   │   │           │   │       └── ai
    │   │   │   │           │   │           └── model
    │   │   │   │           │   │               └── chat
    │   │   │   │           │   │                   └── client
    │   │   │   │           │   │                       └── autoconfigure
    │   │   │   │           │   │                           ├── ChatClientAutoConfiguration.java
    │   │   │   │           │   │                           ├── ChatClientBuilderConfigurer.java
    │   │   │   │           │   │                           └── ChatClientBuilderProperties.java
    │   │   │   │           └── resources
    │   │   │   │           │   └── META-INF
    │   │   │   │           │       ├── additional-spring-configuration-metadata.json
    │   │   │   │           │       └── spring
    │   │   │   │           │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   │       └── test
    │   │   │   │           └── java
    │   │   │   │               └── org
    │   │   │   │                   └── springframework
    │   │   │   │                       └── ai
    │   │   │   │                           └── model
    │   │   │   │                               └── chat
    │   │   │   │                                   └── client
    │   │   │   │                                       └── autoconfigure
    │   │   │   │                                           └── ChatClientObservationAutoConfigurationTests.java
    │   │   ├── memory
    │   │   │   ├── repository
    │   │   │   │   ├── spring-ai-autoconfigure-model-chat-memory-repository-cassandra
    │   │   │   │   │   ├── pom.xml
    │   │   │   │   │   └── src
    │   │   │   │   │   │   ├── main
    │   │   │   │   │   │       ├── java
    │   │   │   │   │   │       │   └── org
    │   │   │   │   │   │       │   │   └── springframework
    │   │   │   │   │   │       │   │       └── ai
    │   │   │   │   │   │       │   │           └── model
    │   │   │   │   │   │       │   │               └── chat
    │   │   │   │   │   │       │   │                   └── memory
    │   │   │   │   │   │       │   │                       └── repository
    │   │   │   │   │   │       │   │                           └── cassandra
    │   │   │   │   │   │       │   │                               └── autoconfigure
    │   │   │   │   │   │       │   │                                   ├── CassandraChatMemoryRepositoryAutoConfiguration.java
    │   │   │   │   │   │       │   │                                   └── CassandraChatMemoryRepositoryProperties.java
    │   │   │   │   │   │       └── resources
    │   │   │   │   │   │       │   └── META-INF
    │   │   │   │   │   │       │       └── spring
    │   │   │   │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   │   │   │   └── test
    │   │   │   │   │   │       └── java
    │   │   │   │   │   │           └── org
    │   │   │   │   │   │               └── springframework
    │   │   │   │   │   │                   └── ai
    │   │   │   │   │   │                       └── model
    │   │   │   │   │   │                           └── chat
    │   │   │   │   │   │                               └── memory
    │   │   │   │   │   │                                   └── repository
    │   │   │   │   │   │                                       └── cassandra
    │   │   │   │   │   │                                           └── autoconfigure
    │   │   │   │   │   │                                               ├── CassandraChatMemoryRepositoryAutoConfigurationIT.java
    │   │   │   │   │   │                                               └── CassandraChatMemoryRepositoryPropertiesTest.java
    │   │   │   │   ├── spring-ai-autoconfigure-model-chat-memory-repository-jdbc
    │   │   │   │   │   ├── pom.xml
    │   │   │   │   │   └── src
    │   │   │   │   │   │   ├── main
    │   │   │   │   │   │       ├── java
    │   │   │   │   │   │       │   └── org
    │   │   │   │   │   │       │   │   └── springframework
    │   │   │   │   │   │       │   │       └── ai
    │   │   │   │   │   │       │   │           └── model
    │   │   │   │   │   │       │   │               └── chat
    │   │   │   │   │   │       │   │                   └── memory
    │   │   │   │   │   │       │   │                       └── repository
    │   │   │   │   │   │       │   │                           └── jdbc
    │   │   │   │   │   │       │   │                               └── autoconfigure
    │   │   │   │   │   │       │   │                                   ├── JdbcChatMemoryRepositoryAutoConfiguration.java
    │   │   │   │   │   │       │   │                                   ├── JdbcChatMemoryRepositoryProperties.java
    │   │   │   │   │   │       │   │                                   └── JdbcChatMemoryRepositorySchemaInitializer.java
    │   │   │   │   │   │       └── resources
    │   │   │   │   │   │       │   └── META-INF
    │   │   │   │   │   │       │       └── spring
    │   │   │   │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   │   │   │   └── test
    │   │   │   │   │   │       ├── java
    │   │   │   │   │   │           └── org
    │   │   │   │   │   │           │   └── springframework
    │   │   │   │   │   │           │       └── ai
    │   │   │   │   │   │           │           └── model
    │   │   │   │   │   │           │               └── chat
    │   │   │   │   │   │           │                   └── memory
    │   │   │   │   │   │           │                       └── repository
    │   │   │   │   │   │           │                           └── jdbc
    │   │   │   │   │   │           │                               └── autoconfigure
    │   │   │   │   │   │           │                                   ├── JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.java
    │   │   │   │   │   │           │                                   ├── JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT.java
    │   │   │   │   │   │           │                                   ├── JdbcChatMemoryRepositoryPropertiesTests.java
    │   │   │   │   │   │           │                                   ├── JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java
    │   │   │   │   │   │           │                                   └── JdbcChatMemoryRepositorySqlServerAutoConfigurationIT.java
    │   │   │   │   │   │       └── resources
    │   │   │   │   │   │           └── schema.sql
    │   │   │   │   └── spring-ai-autoconfigure-model-chat-memory-repository-neo4j
    │   │   │   │   │   ├── pom.xml
    │   │   │   │   │   └── src
    │   │   │   │   │       ├── main
    │   │   │   │   │           ├── java
    │   │   │   │   │           │   └── org
    │   │   │   │   │           │   │   └── springframework
    │   │   │   │   │           │   │       └── ai
    │   │   │   │   │           │   │           └── model
    │   │   │   │   │           │   │               └── chat
    │   │   │   │   │           │   │                   └── memory
    │   │   │   │   │           │   │                       └── repository
    │   │   │   │   │           │   │                           └── neo4j
    │   │   │   │   │           │   │                               └── autoconfigure
    │   │   │   │   │           │   │                                   ├── Neo4jChatMemoryRepositoryAutoConfiguration.java
    │   │   │   │   │           │   │                                   └── Neo4jChatMemoryRepositoryProperties.java
    │   │   │   │   │           └── resources
    │   │   │   │   │           │   └── META-INF
    │   │   │   │   │           │       └── spring
    │   │   │   │   │           │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   │   │       └── test
    │   │   │   │   │           └── java
    │   │   │   │   │               └── org
    │   │   │   │   │                   └── springframework
    │   │   │   │   │                       └── ai
    │   │   │   │   │                           └── model
    │   │   │   │   │                               └── chat
    │   │   │   │   │                                   └── memory
    │   │   │   │   │                                       └── repository
    │   │   │   │   │                                           └── neo4j
    │   │   │   │   │                                               └── autoconfigure
    │   │   │   │   │                                                   ├── Neo4JChatMemoryRepositoryPropertiesTest.java
    │   │   │   │   │                                                   └── Neo4jChatMemoryRepositoryAutoConfigurationIT.java
    │   │   │   └── spring-ai-autoconfigure-model-chat-memory
    │   │   │   │   ├── pom.xml
    │   │   │   │   └── src
    │   │   │   │       ├── main
    │   │   │   │           ├── java
    │   │   │   │           │   └── org
    │   │   │   │           │   │   └── springframework
    │   │   │   │           │   │       └── ai
    │   │   │   │           │   │           └── model
    │   │   │   │           │   │               └── chat
    │   │   │   │           │   │                   └── memory
    │   │   │   │           │   │                       └── autoconfigure
    │   │   │   │           │   │                           └── ChatMemoryAutoConfiguration.java
    │   │   │   │           └── resources
    │   │   │   │           │   └── META-INF
    │   │   │   │           │       └── spring
    │   │   │   │           │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   │       └── test
    │   │   │   │           └── java
    │   │   │   │               └── org
    │   │   │   │                   └── springframework
    │   │   │   │                       └── ai
    │   │   │   │                           └── model
    │   │   │   │                               └── chat
    │   │   │   │                                   └── memory
    │   │   │   │                                       └── autoconfigure
    │   │   │   │                                           └── ChatMemoryAutoConfigurationTests.java
    │   │   └── observation
    │   │   │   └── spring-ai-autoconfigure-model-chat-observation
    │   │   │       ├── pom.xml
    │   │   │       └── src
    │   │   │           ├── main
    │   │   │               ├── java
    │   │   │               │   └── org
    │   │   │               │   │   └── springframework
    │   │   │               │   │       └── ai
    │   │   │               │   │           └── model
    │   │   │               │   │               └── chat
    │   │   │               │   │                   └── observation
    │   │   │               │   │                       └── autoconfigure
    │   │   │               │   │                           ├── ChatObservationAutoConfiguration.java
    │   │   │               │   │                           ├── ChatObservationProperties.java
    │   │   │               │   │                           └── package-info.java
    │   │   │               └── resources
    │   │   │               │   └── META-INF
    │   │   │               │       └── spring
    │   │   │               │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │           └── test
    │   │   │               └── java
    │   │   │                   └── org
    │   │   │                       └── springframework
    │   │   │                           └── ai
    │   │   │                               └── model
    │   │   │                                   └── chat
    │   │   │                                       └── observation
    │   │   │                                           └── autoconfigure
    │   │   │                                               └── ChatObservationAutoConfigurationTests.java
    │   ├── embedding
    │   │   └── observation
    │   │   │   └── spring-ai-autoconfigure-model-embedding-observation
    │   │   │       ├── pom.xml
    │   │   │       └── src
    │   │   │           ├── main
    │   │   │               ├── java
    │   │   │               │   └── org
    │   │   │               │   │   └── springframework
    │   │   │               │   │       └── ai
    │   │   │               │   │           └── model
    │   │   │               │   │               └── embedding
    │   │   │               │   │                   └── observation
    │   │   │               │   │                       └── autoconfigure
    │   │   │               │   │                           ├── EmbeddingObservationAutoConfiguration.java
    │   │   │               │   │                           └── package-info.java
    │   │   │               └── resources
    │   │   │               │   └── META-INF
    │   │   │               │       └── spring
    │   │   │               │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │           └── test
    │   │   │               └── java
    │   │   │                   └── org
    │   │   │                       └── springframework
    │   │   │                           └── ai
    │   │   │                               └── model
    │   │   │                                   └── embedding
    │   │   │                                       └── observation
    │   │   │                                           └── autoconfigure
    │   │   │                                               └── EmbeddingObservationAutoConfigurationTests.java
    │   ├── image
    │   │   └── observation
    │   │   │   └── spring-ai-autoconfigure-model-image-observation
    │   │   │       ├── pom.xml
    │   │   │       └── src
    │   │   │           ├── main
    │   │   │               ├── java
    │   │   │               │   └── org
    │   │   │               │   │   └── springframework
    │   │   │               │   │       └── ai
    │   │   │               │   │           └── model
    │   │   │               │   │               └── image
    │   │   │               │   │                   └── observation
    │   │   │               │   │                       └── autoconfigure
    │   │   │               │   │                           ├── ImageObservationAutoConfiguration.java
    │   │   │               │   │                           ├── ImageObservationProperties.java
    │   │   │               │   │                           └── package-info.java
    │   │   │               └── resources
    │   │   │               │   └── META-INF
    │   │   │               │       └── spring
    │   │   │               │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │           └── test
    │   │   │               └── java
    │   │   │                   └── org
    │   │   │                       └── springframework
    │   │   │                           └── ai
    │   │   │                               └── model
    │   │   │                                   └── image
    │   │   │                                       └── observation
    │   │   │                                           └── autoconfigure
    │   │   │                                               └── ImageObservationAutoConfigurationTests.java
    │   ├── spring-ai-autoconfigure-model-anthropic
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── anthropic
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── AnthropicChatAutoConfiguration.java
    │   │   │       │   │                       ├── AnthropicChatProperties.java
    │   │   │       │   │                       └── AnthropicConnectionProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── anthropic
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── AnthropicChatAutoConfigurationIT.java
    │   │   │                                   ├── AnthropicModelConfigurationTests.java
    │   │   │                                   ├── AnthropicPropertiesTests.java
    │   │   │                                   └── tool
    │   │   │                                       ├── FunctionCallWithFunctionBeanIT.java
    │   │   │                                       ├── FunctionCallWithPromptFunctionIT.java
    │   │   │                                       └── MockWeatherService.java
    │   ├── spring-ai-autoconfigure-model-azure-openai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── azure
    │   │   │       │   │                   └── openai
    │   │   │       │   │                       └── autoconfigure
    │   │   │       │   │                           ├── AzureOpenAIClientBuilderCustomizer.java
    │   │   │       │   │                           ├── AzureOpenAiAudioTranscriptionAutoConfiguration.java
    │   │   │       │   │                           ├── AzureOpenAiAudioTranscriptionProperties.java
    │   │   │       │   │                           ├── AzureOpenAiChatAutoConfiguration.java
    │   │   │       │   │                           ├── AzureOpenAiChatProperties.java
    │   │   │       │   │                           ├── AzureOpenAiClientBuilderConfiguration.java
    │   │   │       │   │                           ├── AzureOpenAiConnectionProperties.java
    │   │   │       │   │                           ├── AzureOpenAiEmbeddingAutoConfiguration.java
    │   │   │       │   │                           ├── AzureOpenAiEmbeddingProperties.java
    │   │   │       │   │                           ├── AzureOpenAiImageAutoConfiguration.java
    │   │   │       │   │                           └── AzureOpenAiImageOptionsProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       ├── additional-spring-configuration-metadata.json
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── springframework
    │   │   │           │       └── ai
    │   │   │           │           └── model
    │   │   │           │               └── azure
    │   │   │           │                   └── openai
    │   │   │           │                       └── autoconfigure
    │   │   │           │                           ├── AzureOpenAiAutoConfigurationEntraIT.java
    │   │   │           │                           ├── AzureOpenAiAutoConfigurationIT.java
    │   │   │           │                           ├── AzureOpenAiAutoConfigurationPropertyTests.java
    │   │   │           │                           ├── AzureOpenAiDirectOpenAiAutoConfigurationIT.java
    │   │   │           │                           ├── AzureOpenAiModelConfigurationTests.java
    │   │   │           │                           └── tool
    │   │   │           │                               ├── DeploymentNameUtil.java
    │   │   │           │                               ├── FunctionCallWithFunctionBeanIT.java
    │   │   │           │                               ├── FunctionCallWithFunctionWrapperIT.java
    │   │   │           │                               ├── FunctionCallWithPromptFunctionIT.java
    │   │   │           │                               └── MockWeatherService.java
    │   │   │       └── resources
    │   │   │           └── speech
    │   │   │               └── jfk.flac
    │   ├── spring-ai-autoconfigure-model-bedrock-ai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── bedrock
    │   │   │       │   │                   ├── autoconfigure
    │   │   │       │   │                       ├── BedrockAwsConnectionConfiguration.java
    │   │   │       │   │                       └── BedrockAwsConnectionProperties.java
    │   │   │       │   │                   ├── cohere
    │   │   │       │   │                       └── autoconfigure
    │   │   │       │   │                       │   ├── BedrockCohereEmbeddingAutoConfiguration.java
    │   │   │       │   │                       │   └── BedrockCohereEmbeddingProperties.java
    │   │   │       │   │                   ├── converse
    │   │   │       │   │                       └── autoconfigure
    │   │   │       │   │                       │   ├── BedrockConverseProxyChatAutoConfiguration.java
    │   │   │       │   │                       │   └── BedrockConverseProxyChatProperties.java
    │   │   │       │   │                   └── titan
    │   │   │       │   │                       └── autoconfigure
    │   │   │       │   │                           ├── BedrockTitanEmbeddingAutoConfiguration.java
    │   │   │       │   │                           └── BedrockTitanEmbeddingProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── springframework
    │   │   │           │       └── ai
    │   │   │           │           └── model
    │   │   │           │               └── bedrock
    │   │   │           │                   ├── autoconfigure
    │   │   │           │                       ├── BedrockAwsConnectionConfigurationIT.java
    │   │   │           │                       ├── BedrockTestUtils.java
    │   │   │           │                       └── RequiresAwsCredentials.java
    │   │   │           │                   ├── cohere
    │   │   │           │                       └── autoconfigure
    │   │   │           │                       │   ├── BedrockCohereEmbeddingAutoConfigurationIT.java
    │   │   │           │                       │   └── BedrockCohereModelConfigurationTests.java
    │   │   │           │                   ├── converse
    │   │   │           │                       └── autoconfigure
    │   │   │           │                       │   ├── BedrockConverseModelConfigurationTests.java
    │   │   │           │                       │   ├── BedrockConverseProxyChatAutoConfigurationIT.java
    │   │   │           │                       │   ├── BedrockConverseProxyChatPropertiesTests.java
    │   │   │           │                       │   └── tool
    │   │   │           │                       │       ├── FunctionCallWithFunctionBeanIT.java
    │   │   │           │                       │       ├── FunctionCallWithPromptFunctionIT.java
    │   │   │           │                       │       └── MockWeatherService.java
    │   │   │           │                   └── titan
    │   │   │           │                       └── autoconfigure
    │   │   │           │                           ├── BedrockTitanEmbeddingAutoConfigurationIT.java
    │   │   │           │                           └── BedrockTitanModelConfigurationTests.java
    │   │   │       └── resources
    │   │   │           └── spring_framework.png
    │   ├── spring-ai-autoconfigure-model-deepseek
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── deepseek
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── DeepSeekChatAutoConfiguration.java
    │   │   │       │   │                       ├── DeepSeekChatProperties.java
    │   │   │       │   │                       ├── DeepSeekConnectionProperties.java
    │   │   │       │   │                       └── DeepSeekParentProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── deepseek
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── DeepSeekAutoConfigurationIT.java
    │   │   │                                   ├── DeepSeekPropertiesTests.java
    │   │   │                                   └── tool
    │   │   │                                       ├── DeepSeekFunctionCallbackIT.java
    │   │   │                                       ├── FunctionCallbackInPromptIT.java
    │   │   │                                       ├── FunctionCallbackWithPlainFunctionBeanIT.java
    │   │   │                                       └── MockWeatherService.java
    │   ├── spring-ai-autoconfigure-model-elevenlabs
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── elevenlabs
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── ElevenLabsAutoConfiguration.java
    │   │   │       │   │                       ├── ElevenLabsConnectionProperties.java
    │   │   │       │   │                       └── ElevenLabsSpeechProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── elevenlabs
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── ElevenLabsAutoConfigurationIT.java
    │   │   │                                   └── ElevenLabsPropertiesTests.java
    │   ├── spring-ai-autoconfigure-model-huggingface
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── huggingface
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── HuggingfaceChatAutoConfiguration.java
    │   │   │       │   │                       └── HuggingfaceChatProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── huggingface
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── HuggingfaceChatAutoConfigurationIT.java
    │   │   │                                   └── HuggingfaceModelConfigurationTests.java
    │   ├── spring-ai-autoconfigure-model-minimax
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── minimax
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── MiniMaxChatAutoConfiguration.java
    │   │   │       │   │                       ├── MiniMaxChatProperties.java
    │   │   │       │   │                       ├── MiniMaxConnectionProperties.java
    │   │   │       │   │                       ├── MiniMaxEmbeddingAutoConfiguration.java
    │   │   │       │   │                       ├── MiniMaxEmbeddingProperties.java
    │   │   │       │   │                       └── MiniMaxParentProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── minimax
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── FunctionCallbackInPromptIT.java
    │   │   │                                   ├── FunctionCallbackWithPlainFunctionBeanIT.java
    │   │   │                                   ├── MiniMaxAutoConfigurationIT.java
    │   │   │                                   ├── MiniMaxFunctionCallbackIT.java
    │   │   │                                   ├── MiniMaxPropertiesTests.java
    │   │   │                                   ├── MinimaxModelConfigurationTests.java
    │   │   │                                   └── MockWeatherService.java
    │   ├── spring-ai-autoconfigure-model-mistral-ai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── mistralai
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── MistralAiChatAutoConfiguration.java
    │   │   │       │   │                       ├── MistralAiChatProperties.java
    │   │   │       │   │                       ├── MistralAiCommonProperties.java
    │   │   │       │   │                       ├── MistralAiEmbeddingAutoConfiguration.java
    │   │   │       │   │                       ├── MistralAiEmbeddingProperties.java
    │   │   │       │   │                       ├── MistralAiModerationAutoConfiguration.java
    │   │   │       │   │                       ├── MistralAiModerationProperties.java
    │   │   │       │   │                       └── MistralAiParentProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       ├── additional-spring-configuration-metadata.json
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── mistralai
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── MistralAiAutoConfigurationIT.java
    │   │   │                                   ├── MistralAiPropertiesTests.java
    │   │   │                                   ├── MistralModelConfigurationTests.java
    │   │   │                                   └── tool
    │   │   │                                       ├── PaymentStatusBeanIT.java
    │   │   │                                       ├── PaymentStatusBeanOpenAiIT.java
    │   │   │                                       ├── PaymentStatusPromptIT.java
    │   │   │                                       └── WeatherServicePromptIT.java
    │   ├── spring-ai-autoconfigure-model-oci-genai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── oci
    │   │   │       │   │                   └── genai
    │   │   │       │   │                       └── autoconfigure
    │   │   │       │   │                           ├── OCICohereChatModelProperties.java
    │   │   │       │   │                           ├── OCIConnectionProperties.java
    │   │   │       │   │                           ├── OCIEmbeddingModelProperties.java
    │   │   │       │   │                           ├── OCIGenAiChatAutoConfiguration.java
    │   │   │       │   │                           ├── OCIGenAiEmbeddingAutoConfiguration.java
    │   │   │       │   │                           ├── OCIGenAiInferenceClientAutoConfiguration.java
    │   │   │       │   │                           └── ServingMode.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── oci
    │   │   │                               └── genai
    │   │   │                                   └── autoconfigure
    │   │   │                                       ├── OCIGenAIAutoConfigurationTest.java
    │   │   │                                       └── OCIGenAiAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-model-ollama
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── ollama
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── OllamaApiAutoConfiguration.java
    │   │   │       │   │                       ├── OllamaChatAutoConfiguration.java
    │   │   │       │   │                       ├── OllamaChatProperties.java
    │   │   │       │   │                       ├── OllamaConnectionDetails.java
    │   │   │       │   │                       ├── OllamaConnectionProperties.java
    │   │   │       │   │                       ├── OllamaEmbeddingAutoConfiguration.java
    │   │   │       │   │                       ├── OllamaEmbeddingProperties.java
    │   │   │       │   │                       └── OllamaInitializationProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── springframework
    │   │   │           │       └── ai
    │   │   │           │           └── model
    │   │   │           │               └── ollama
    │   │   │           │                   └── autoconfigure
    │   │   │           │                       ├── BaseOllamaIT.java
    │   │   │           │                       ├── OllamaChatAutoConfigurationIT.java
    │   │   │           │                       ├── OllamaChatAutoConfigurationTests.java
    │   │   │           │                       ├── OllamaEmbeddingAutoConfigurationIT.java
    │   │   │           │                       ├── OllamaEmbeddingAutoConfigurationTests.java
    │   │   │           │                       ├── OllamaImage.java
    │   │   │           │                       ├── OllamaModelConfigurationTests.java
    │   │   │           │                       └── tool
    │   │   │           │                           ├── FunctionCallbackInPromptIT.java
    │   │   │           │                           ├── MockWeatherService.java
    │   │   │           │                           ├── OllamaFunctionCallbackIT.java
    │   │   │           │                           └── OllamaFunctionToolBeanIT.java
    │   │   │       └── kotlin
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── ollama
    │   │   │                               └── autoconfigure
    │   │   │                                   └── tool
    │   │   │                                       ├── FunctionCallbackContextKotlinIT.kt
    │   │   │                                       ├── MockKotlinWeatherService.kt
    │   │   │                                       └── ToolCallbackKotlinIT.kt
    │   ├── spring-ai-autoconfigure-model-openai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── openai
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── OpenAIAutoConfigurationUtil.java
    │   │   │       │   │                       ├── OpenAiAudioSpeechAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiAudioSpeechProperties.java
    │   │   │       │   │                       ├── OpenAiAudioTranscriptionAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiAudioTranscriptionProperties.java
    │   │   │       │   │                       ├── OpenAiChatAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiChatProperties.java
    │   │   │       │   │                       ├── OpenAiConnectionProperties.java
    │   │   │       │   │                       ├── OpenAiEmbeddingAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiEmbeddingProperties.java
    │   │   │       │   │                       ├── OpenAiImageAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiImageProperties.java
    │   │   │       │   │                       ├── OpenAiModerationAutoConfiguration.java
    │   │   │       │   │                       ├── OpenAiModerationProperties.java
    │   │   │       │   │                       ├── OpenAiParentProperties.java
    │   │   │       │   │                       └── package-info.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       ├── additional-spring-configuration-metadata.json
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── springframework
    │   │   │           │       └── ai
    │   │   │           │           └── model
    │   │   │           │               └── openai
    │   │   │           │                   └── autoconfigure
    │   │   │           │                       ├── ChatClientAutoConfigurationIT.java
    │   │   │           │                       ├── OpenAiAutoConfigurationIT.java
    │   │   │           │                       ├── OpenAiModelConfigurationTests.java
    │   │   │           │                       ├── OpenAiPropertiesTests.java
    │   │   │           │                       ├── OpenAiResponseFormatPropertiesTests.java
    │   │   │           │                       └── tool
    │   │   │           │                           ├── FunctionCallbackInPrompt2IT.java
    │   │   │           │                           ├── FunctionCallbackInPromptIT.java
    │   │   │           │                           ├── FunctionCallbackWithPlainFunctionBeanIT.java
    │   │   │           │                           ├── MockWeatherService.java
    │   │   │           │                           ├── OpenAiFunctionCallback2IT.java
    │   │   │           │                           └── OpenAiFunctionCallbackIT.java
    │   │   │       └── resources
    │   │   │           └── speech
    │   │   │               └── jfk.flac
    │   ├── spring-ai-autoconfigure-model-postgresml-embedding
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── postgresml
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── PostgresMlEmbeddingAutoConfiguration.java
    │   │   │       │   │                       └── PostgresMlEmbeddingProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── postgresml
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── PostgresMlEmbeddingAutoConfigurationIT.java
    │   │   │                                   └── PostgresMlEmbeddingPropertiesTests.java
    │   ├── spring-ai-autoconfigure-model-stability-ai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── stabilityai
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── StabilityAiConnectionProperties.java
    │   │   │       │   │                       ├── StabilityAiImageAutoConfiguration.java
    │   │   │       │   │                       ├── StabilityAiImageProperties.java
    │   │   │       │   │                       └── StabilityAiParentProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── stabilityai
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── StabilityAiAutoConfigurationIT.java
    │   │   │                                   └── StabilityAiImagePropertiesTests.java
    │   ├── spring-ai-autoconfigure-model-transformers
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── transformers
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── TransformersEmbeddingModelAutoConfiguration.java
    │   │   │       │   │                       └── TransformersEmbeddingModelProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── transformers
    │   │   │                               └── autoconfigure
    │   │   │                                   └── TransformersEmbeddingModelAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-model-vertex-ai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── vertexai
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── embedding
    │   │   │       │   │                           ├── VertexAiEmbeddingConnectionAutoConfiguration.java
    │   │   │       │   │                           ├── VertexAiEmbeddingConnectionProperties.java
    │   │   │       │   │                           ├── VertexAiMultiModalEmbeddingAutoConfiguration.java
    │   │   │       │   │                           ├── VertexAiMultimodalEmbeddingProperties.java
    │   │   │       │   │                           ├── VertexAiTextEmbeddingAutoConfiguration.java
    │   │   │       │   │                           └── VertexAiTextEmbeddingProperties.java
    │   │   │       │   │                       └── gemini
    │   │   │       │   │                           ├── VertexAiGeminiChatAutoConfiguration.java
    │   │   │       │   │                           ├── VertexAiGeminiChatProperties.java
    │   │   │       │   │                           └── VertexAiGeminiConnectionProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── vertexai
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── embedding
    │   │   │                                       └── VertexAiTextEmbeddingModelAutoConfigurationIT.java
    │   │   │                                   └── gemini
    │   │   │                                       ├── VertexAiGeminiChatAutoConfigurationIT.java
    │   │   │                                       ├── VertexAiModelConfigurationTests.java
    │   │   │                                       └── tool
    │   │   │                                           ├── FunctionCallWithFunctionBeanIT.java
    │   │   │                                           ├── FunctionCallWithFunctionWrapperIT.java
    │   │   │                                           ├── FunctionCallWithPromptFunctionIT.java
    │   │   │                                           └── MockWeatherService.java
    │   ├── spring-ai-autoconfigure-model-zhipuai
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── springframework
    │   │   │       │   │       └── ai
    │   │   │       │   │           └── model
    │   │   │       │   │               └── zhipuai
    │   │   │       │   │                   └── autoconfigure
    │   │   │       │   │                       ├── ZhiPuAiChatAutoConfiguration.java
    │   │   │       │   │                       ├── ZhiPuAiChatProperties.java
    │   │   │       │   │                       ├── ZhiPuAiConnectionProperties.java
    │   │   │       │   │                       ├── ZhiPuAiEmbeddingAutoConfiguration.java
    │   │   │       │   │                       ├── ZhiPuAiEmbeddingProperties.java
    │   │   │       │   │                       ├── ZhiPuAiImageAutoConfiguration.java
    │   │   │       │   │                       ├── ZhiPuAiImageProperties.java
    │   │   │       │   │                       └── ZhiPuAiParentProperties.java
    │   │   │       └── resources
    │   │   │       │   └── META-INF
    │   │   │       │       └── spring
    │   │   │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── springframework
    │   │   │                   └── ai
    │   │   │                       └── model
    │   │   │                           └── zhipuai
    │   │   │                               └── autoconfigure
    │   │   │                                   ├── ZhiPuAiAutoConfigurationIT.java
    │   │   │                                   ├── ZhiPuAiPropertiesTests.java
    │   │   │                                   └── tool
    │   │   │                                       ├── FunctionCallbackInPromptIT.java
    │   │   │                                       ├── FunctionCallbackWithPlainFunctionBeanIT.java
    │   │   │                                       ├── MockWeatherService.java
    │   │   │                                       └── ZhipuAiFunctionCallbackIT.java
    │   └── tool
    │   │   └── spring-ai-autoconfigure-model-tool
    │   │       ├── pom.xml
    │   │       └── src
    │   │           ├── main
    │   │               ├── java
    │   │               │   └── org
    │   │               │   │   └── springframework
    │   │               │   │       └── ai
    │   │               │   │           └── model
    │   │               │   │               └── tool
    │   │               │   │                   └── autoconfigure
    │   │               │   │                       ├── ToolCallingAutoConfiguration.java
    │   │               │   │                       └── ToolCallingProperties.java
    │   │               └── resources
    │   │               │   └── META-INF
    │   │               │       └── spring
    │   │               │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │   │           └── test
    │   │               └── java
    │   │                   └── org
    │   │                       └── springframework
    │   │                           └── ai
    │   │                               └── model
    │   │                                   └── tool
    │   │                                       └── autoconfigure
    │   │                                           └── ToolCallingAutoConfigurationTests.java
    └── vector-stores
    │   ├── spring-ai-autoconfigure-vector-store-azure-cosmos-db
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── cosmosdb
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── CosmosDBVectorStoreAutoConfiguration.java
    │       │       │   │                       └── CosmosDBVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── cosmosdb
    │       │                               └── autoconfigure
    │       │                                   └── CosmosDBVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-azure
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── azure
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── AzureVectorStoreAutoConfiguration.java
    │       │       │   │                       └── AzureVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── azure
    │       │                               └── autoconfigure
    │       │                                   └── AzureVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-cassandra
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── cassandra
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── CassandraVectorStoreAutoConfiguration.java
    │       │       │   │                       └── CassandraVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── cassandra
    │       │                               └── autoconfigure
    │       │                                   ├── CassandraVectorStoreAutoConfigurationIT.java
    │       │                                   └── CassandraVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-chroma
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── chroma
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── ChromaApiProperties.java
    │       │       │   │                       ├── ChromaConnectionDetails.java
    │       │       │   │                       ├── ChromaVectorStoreAutoConfiguration.java
    │       │       │   │                       └── ChromaVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── chroma
    │       │                               └── autoconfigure
    │       │                                   └── ChromaVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-couchbase
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── couchbase
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── CouchbaseSearchVectorStoreAutoConfiguration.java
    │       │       │   │                       └── CouchbaseSearchVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── couchbase
    │       │                               └── autoconfigure
    │       │                                   ├── CouchbaseContainerMetadata.java
    │       │                                   └── CouchbaseSearchVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-elasticsearch
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── elasticsearch
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── ElasticsearchVectorStoreAutoConfiguration.java
    │       │       │   │                       └── ElasticsearchVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── elasticsearch
    │       │                               └── autoconfigure
    │       │                                   └── ElasticsearchVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-gemfire
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── gemfire
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── GemFireConnectionDetails.java
    │       │       │   │                       ├── GemFireVectorStoreAutoConfiguration.java
    │       │       │   │                       └── GemFireVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── gemfire
    │       │                               └── autoconfigure
    │       │                                   ├── GemFireVectorStoreAutoConfigurationIT.java
    │       │                                   └── GemFireVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-mariadb
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── mariadb
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── MariaDbStoreAutoConfiguration.java
    │       │       │   │                       └── MariaDbStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── mariadb
    │       │                               └── autoconfigure
    │       │                                   ├── MariaDbStoreAutoConfigurationIT.java
    │       │                                   └── MariaDbStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-milvus
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── milvus
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── MilvusServiceClientConnectionDetails.java
    │       │       │   │                       ├── MilvusServiceClientProperties.java
    │       │       │   │                       ├── MilvusVectorStoreAutoConfiguration.java
    │       │       │   │                       └── MilvusVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── milvus
    │       │                               └── autoconfigure
    │       │                                   └── MilvusVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-mongodb-atlas
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── mongodb
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── MongoDBAtlasVectorStoreAutoConfiguration.java
    │       │       │   │                       └── MongoDBAtlasVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── mongodb
    │       │                               └── autoconfigure
    │       │                                   └── MongoDBAtlasVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-neo4j
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── neo4j
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── Neo4jVectorStoreAutoConfiguration.java
    │       │       │   │                       └── Neo4jVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── neo4j
    │       │                               └── autoconfigure
    │       │                                   └── Neo4jVectorStoreAutoConfigurationIT.java
    │   ├── spring-ai-autoconfigure-vector-store-observation
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── observation
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── VectorStoreObservationAutoConfiguration.java
    │       │       │   │                       └── VectorStoreObservationProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── observation
    │       │                               └── autoconfigure
    │       │                                   └── VectorStoreObservationAutoConfigurationTests.java
    │   ├── spring-ai-autoconfigure-vector-store-opensearch
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── opensearch
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── AwsOpenSearchConnectionDetails.java
    │       │       │   │                       ├── OpenSearchConnectionDetails.java
    │       │       │   │                       ├── OpenSearchNonAwsCondition.java
    │       │       │   │                       ├── OpenSearchVectorStoreAutoConfiguration.java
    │       │       │   │                       └── OpenSearchVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── opensearch
    │       │                               └── autoconfigure
    │       │                                   ├── AwsOpenSearchVectorStoreAutoConfigurationIT.java
    │       │                                   ├── OpenSearchVectorStoreAutoConfigurationIT.java
    │       │                                   └── OpenSearchVectorStoreNonAwsFallbackIT.java
    │   ├── spring-ai-autoconfigure-vector-store-oracle
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── oracle
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── OracleVectorStoreAutoConfiguration.java
    │       │       │   │                       └── OracleVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       ├── java
    │       │           └── org
    │       │           │   └── springframework
    │       │           │       └── ai
    │       │           │           └── vectorstore
    │       │           │               └── oracle
    │       │           │                   └── autoconfigure
    │       │           │                       ├── OracleVectorStoreAutoConfigurationIT.java
    │       │           │                       └── OracleVectorStorePropertiesTests.java
    │       │       └── resources
    │       │           └── oracle
    │       │               └── initialize.sql
    │   ├── spring-ai-autoconfigure-vector-store-pgvector
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── pgvector
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── PgVectorStoreAutoConfiguration.java
    │       │       │   │                       └── PgVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── pgvector
    │       │                               └── autoconfigure
    │       │                                   ├── PgVectorStoreAutoConfigurationIT.java
    │       │                                   └── PgVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-pinecone
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── pinecone
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── PineconeVectorStoreAutoConfiguration.java
    │       │       │   │                       └── PineconeVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── pinecone
    │       │                               └── autoconfigure
    │       │                                   ├── PineconeVectorStoreAutoConfigurationIT.java
    │       │                                   └── PineconeVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-qdrant
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── qdrant
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── QdrantConnectionDetails.java
    │       │       │   │                       ├── QdrantVectorStoreAutoConfiguration.java
    │       │       │   │                       └── QdrantVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── qdrant
    │       │                               └── autoconfigure
    │       │                                   ├── QdrantVectorStoreAutoConfigurationIT.java
    │       │                                   ├── QdrantVectorStoreCloudAutoConfigurationIT.java
    │       │                                   └── QdrantVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-redis
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── redis
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── RedisVectorStoreAutoConfiguration.java
    │       │       │   │                       └── RedisVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── redis
    │       │                               └── autoconfigure
    │       │                                   ├── RedisVectorStoreAutoConfigurationIT.java
    │       │                                   └── RedisVectorStorePropertiesTests.java
    │   ├── spring-ai-autoconfigure-vector-store-typesense
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── vectorstore
    │       │       │   │               └── typesense
    │       │       │   │                   └── autoconfigure
    │       │       │   │                       ├── TypesenseConnectionDetails.java
    │       │       │   │                       ├── TypesenseServiceClientProperties.java
    │       │       │   │                       ├── TypesenseVectorStoreAutoConfiguration.java
    │       │       │   │                       └── TypesenseVectorStoreProperties.java
    │       │       └── resources
    │       │       │   └── META-INF
    │       │       │       └── spring
    │       │       │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── vectorstore
    │       │                           └── typesense
    │       │                               └── autoconfigure
    │       │                                   └── TypesenseVectorStoreAutoConfigurationIT.java
    │   └── spring-ai-autoconfigure-vector-store-weaviate
    │       ├── pom.xml
    │       └── src
    │           ├── main
    │               ├── java
    │               │   └── org
    │               │   │   └── springframework
    │               │   │       └── ai
    │               │   │           └── vectorstore
    │               │   │               └── weaviate
    │               │   │                   └── autoconfigure
    │               │   │                       ├── WeaviateConnectionDetails.java
    │               │   │                       ├── WeaviateVectorStoreAutoConfiguration.java
    │               │   │                       └── WeaviateVectorStoreProperties.java
    │               └── resources
    │               │   └── META-INF
    │               │       └── spring
    │               │           └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
    │           └── test
    │               └── java
    │                   └── org
    │                       └── springframework
    │                           └── ai
    │                               └── vectorstore
    │                                   └── weaviate
    │                                       └── autoconfigure
    │                                           └── WeaviateVectorStoreAutoConfigurationIT.java
├── document-readers
    ├── jsoup-reader
    │   ├──  README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── reader
    │   │       │                   └── jsoup
    │   │       │                       ├── JsoupDocumentReader.java
    │   │       │                       └── config
    │   │       │                           └── JsoupDocumentReaderConfig.java
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── reader
    │   │           │               └── jsoup
    │   │           │                   └── JsoupDocumentReaderTests.java
    │   │       └── resources
    │   │           ├── test-group-by.html
    │   │           └── test.html
    ├── markdown-reader
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── reader
    │   │       │                   └── markdown
    │   │       │                       ├── MarkdownDocumentReader.java
    │   │       │                       └── config
    │   │       │                           └── MarkdownDocumentReaderConfig.java
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── reader
    │   │           │               └── markdown
    │   │           │                   └── MarkdownDocumentReaderTest.java
    │   │       └── resources
    │   │           ├── blockquote.md
    │   │           ├── code.md
    │   │           ├── horizontal-rules.md
    │   │           ├── lists.md
    │   │           ├── only-headers.md
    │   │           ├── simple.md
    │   │           └── with-formatting.md
    ├── pdf-reader
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── reader
    │   │       │   │               └── pdf
    │   │       │   │                   ├── PagePdfDocumentReader.java
    │   │       │   │                   ├── ParagraphPdfDocumentReader.java
    │   │       │   │                   ├── aot
    │   │       │   │                       └── PdfReaderRuntimeHints.java
    │   │       │   │                   ├── config
    │   │       │   │                       ├── ParagraphManager.java
    │   │       │   │                       └── PdfDocumentReaderConfig.java
    │   │       │   │                   └── layout
    │   │       │   │                       ├── Character.java
    │   │       │   │                       ├── CharacterFactory.java
    │   │       │   │                       ├── ForkPDFLayoutTextStripper.java
    │   │       │   │                       ├── PDFLayoutTextStripperByArea.java
    │   │       │   │                       └── TextLine.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── reader
    │   │           │               └── pdf
    │   │           │                   ├── PagePdfDocumentReaderTests.java
    │   │           │                   ├── ParagraphPdfDocumentReaderTests.java
    │   │           │                   ├── aot
    │   │           │                       └── PdfReaderRuntimeHintsTests.java
    │   │           │                   └── layout
    │   │           │                       └── TextLineTest.java
    │   │       └── resources
    │   │           ├── sample1.pdf
    │   │           ├── sample2.pdf
    │   │           └── sample3.pdf
    └── tika-reader
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │           └── java
    │           │   └── org
    │           │       └── springframework
    │           │           └── ai
    │           │               └── reader
    │           │                   └── tika
    │           │                       └── TikaDocumentReader.java
    │       └── test
    │           ├── java
    │               └── org
    │               │   └── springframework
    │               │       └── ai
    │               │           └── reader
    │               │               └── tika
    │               │                   └── TikaDocumentReaderTests.java
    │           └── resources
    │               ├── sample.ppt
    │               ├── sample.pptx
    │               ├── sample2.pdf
    │               ├── word-sample.doc
    │               └── word-sample.docx
├── mcp
    └── common
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │           ├── java
    │           │   └── org
    │           │   │   └── springframework
    │           │   │       └── ai
    │           │   │           └── mcp
    │           │   │               ├── AsyncMcpToolCallback.java
    │           │   │               ├── AsyncMcpToolCallbackProvider.java
    │           │   │               ├── McpToolUtils.java
    │           │   │               ├── SyncMcpToolCallback.java
    │           │   │               ├── SyncMcpToolCallbackProvider.java
    │           │   │               ├── aot
    │           │   │                   └── McpHints.java
    │           │   │               ├── customizer
    │           │   │                   ├── McpAsyncClientCustomizer.java
    │           │   │                   └── McpSyncClientCustomizer.java
    │           │   │               └── package-info.java
    │           └── resources
    │           │   └── META-INF
    │           │       └── spring
    │           │           └── aot.factories
    │       └── test
    │           └── java
    │               └── org
    │                   └── springframework
    │                       └── ai
    │                           └── mcp
    │                               ├── AsyncMcpToolCallbackTest.java
    │                               ├── SyncMcpToolCallbackProviderTests.java
    │                               ├── SyncMcpToolCallbackTests.java
    │                               └── ToolUtilsTests.java
├── memory
    └── repository
    │   ├── spring-ai-model-chat-memory-repository-cassandra
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       └── java
    │       │       │   └── org
    │       │       │       └── springframework
    │       │       │           └── ai
    │       │       │               └── chat
    │       │       │                   └── memory
    │       │       │                       └── repository
    │       │       │                           └── cassandra
    │       │       │                               ├── CassandraChatMemoryRepository.java
    │       │       │                               ├── CassandraChatMemoryRepositoryConfig.java
    │       │       │                               └── SchemaUtil.java
    │       │   └── test
    │       │       └── java
    │       │           └── org
    │       │               └── springframework
    │       │                   └── ai
    │       │                       └── chat
    │       │                           └── memory
    │       │                               └── repository
    │       │                                   └── cassandra
    │       │                                       ├── CassandraChatMemoryRepositoryIT.java
    │       │                                       └── CassandraImage.java
    │   ├── spring-ai-model-chat-memory-repository-jdbc
    │       ├── README.md
    │       ├── pom.xml
    │       └── src
    │       │   ├── main
    │       │       ├── java
    │       │       │   └── org
    │       │       │   │   └── springframework
    │       │       │   │       └── ai
    │       │       │   │           └── chat
    │       │       │   │               └── memory
    │       │       │   │                   └── repository
    │       │       │   │                       └── jdbc
    │       │       │   │                           ├── HsqldbChatMemoryRepositoryDialect.java
    │       │       │   │                           ├── JdbcChatMemoryRepository.java
    │       │       │   │                           ├── JdbcChatMemoryRepositoryDialect.java
    │       │       │   │                           ├── MysqlChatMemoryRepositoryDialect.java
    │       │       │   │                           ├── PostgresChatMemoryRepositoryDialect.java
    │       │       │   │                           ├── SqlServerChatMemoryRepositoryDialect.java
    │       │       │   │                           ├── aot
    │       │       │   │                               └── hint
    │       │       │   │                               │   └── JdbcChatMemoryRepositoryRuntimeHints.java
    │       │       │   │                           └── package-info.java
    │       │       └── resources
    │       │       │   ├── META-INF
    │       │       │       └── spring
    │       │       │       │   └── aot.factories
    │       │       │   └── org
    │       │       │       └── springframework
    │       │       │           └── ai
    │       │       │               └── chat
    │       │       │                   └── memory
    │       │       │                       └── repository
    │       │       │                           └── jdbc
    │       │       │                               ├── schema-hsqldb.sql
    │       │       │                               ├── schema-mariadb.sql
    │       │       │                               ├── schema-mysql.sql
    │       │       │                               ├── schema-postgresql.sql
    │       │       │                               └── schema-sqlserver.sql
    │       │   └── test
    │       │       ├── java
    │       │           └── org
    │       │           │   └── springframework
    │       │           │       └── ai
    │       │           │           └── chat
    │       │           │               └── memory
    │       │           │                   └── repository
    │       │           │                       └── jdbc
    │       │           │                           ├── AbstractJdbcChatMemoryRepositoryIT.java
    │       │           │                           ├── JdbcChatMemoryRepositoryBuilderTests.java
    │       │           │                           ├── JdbcChatMemoryRepositoryMariaDbIT.java
    │       │           │                           ├── JdbcChatMemoryRepositoryMysqlIT.java
    │       │           │                           ├── JdbcChatMemoryRepositoryPostgresqlIT.java
    │       │           │                           ├── JdbcChatMemoryRepositorySqlServerIT.java
    │       │           │                           └── aot
    │       │           │                               └── hint
    │       │           │                                   └── JdbcChatMemoryRepositoryRuntimeHintsTest.java
    │       │       └── resources
    │       │           └── container-license-acceptance.txt
    │   └── spring-ai-model-chat-memory-repository-neo4j
    │       ├── pom.xml
    │       └── src
    │           ├── main
    │               └── java
    │               │   └── org
    │               │       └── springframework
    │               │           └── ai
    │               │               └── chat
    │               │                   └── memory
    │               │                       └── repository
    │               │                           └── neo4j
    │               │                               ├── MediaAttributes.java
    │               │                               ├── MessageAttributes.java
    │               │                               ├── Neo4jChatMemoryRepository.java
    │               │                               ├── Neo4jChatMemoryRepositoryConfig.java
    │               │                               ├── ToolCallAttributes.java
    │               │                               └── ToolResponseAttributes.java
    │           └── test
    │               └── java
    │                   └── org
    │                       └── springframework
    │                           └── ai
    │                               └── chat
    │                                   └── memory
    │                                       └── repository
    │                                           └── neo4j
    │                                               ├── Neo4JChatMemoryRepositoryConfigIT.java
    │                                               └── Neo4jChatMemoryRepositoryIT.java
├── models
    ├── spring-ai-anthropic
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── anthropic
    │   │       │   │               ├── AnthropicChatModel.java
    │   │       │   │               ├── AnthropicChatOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── AnthropicRuntimeHints.java
    │   │       │   │               ├── api
    │   │       │   │                   ├── AnthropicApi.java
    │   │       │   │                   └── StreamHelper.java
    │   │       │   │               └── metadata
    │   │       │   │                   └── AnthropicRateLimit.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── anthropic
    │   │           │               ├── AnthropicChatModelAdditionalHttpHeadersIT.java
    │   │           │               ├── AnthropicChatModelIT.java
    │   │           │               ├── AnthropicChatModelObservationIT.java
    │   │           │               ├── AnthropicChatOptionsTests.java
    │   │           │               ├── AnthropicTestConfiguration.java
    │   │           │               ├── ChatCompletionRequestTests.java
    │   │           │               ├── EventParsingTests.java
    │   │           │               ├── aot
    │   │           │                   └── AnthropicRuntimeHintsTests.java
    │   │           │               ├── api
    │   │           │                   ├── AnthropicApiBuilderTests.java
    │   │           │                   ├── AnthropicApiIT.java
    │   │           │                   ├── StreamHelperTests.java
    │   │           │                   └── tool
    │   │           │                   │   ├── AnthropicApiLegacyToolIT.java
    │   │           │                   │   ├── AnthropicApiToolIT.java
    │   │           │                   │   ├── MockWeatherService.java
    │   │           │                   │   └── XmlHelper.java
    │   │           │               └── client
    │   │           │                   ├── AnthropicChatClientIT.java
    │   │           │                   ├── AnthropicChatClientMethodInvokingFunctionCallbackIT.java
    │   │           │                   └── ChatClientToolsWithGenericArgumentTypesIT.java
    │   │       └── resources
    │   │           ├── application-logging-test.properties
    │   │           ├── prompts
    │   │               └── system-message.st
    │   │           ├── sample_events.json
    │   │           ├── spring-ai-reference-overview.pdf
    │   │           └── test.png
    ├── spring-ai-azure-openai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── azure
    │   │       │   │               └── openai
    │   │       │   │                   ├── AzureOpenAiAudioTranscriptionModel.java
    │   │       │   │                   ├── AzureOpenAiAudioTranscriptionOptions.java
    │   │       │   │                   ├── AzureOpenAiChatModel.java
    │   │       │   │                   ├── AzureOpenAiChatOptions.java
    │   │       │   │                   ├── AzureOpenAiEmbeddingModel.java
    │   │       │   │                   ├── AzureOpenAiEmbeddingOptions.java
    │   │       │   │                   ├── AzureOpenAiImageModel.java
    │   │       │   │                   ├── AzureOpenAiImageOptions.java
    │   │       │   │                   ├── AzureOpenAiResponseFormat.java
    │   │       │   │                   ├── MergeUtils.java
    │   │       │   │                   ├── aot
    │   │       │   │                       └── AzureOpenAiRuntimeHints.java
    │   │       │   │                   └── metadata
    │   │       │   │                       ├── AzureOpenAiAudioTranscriptionResponseMetadata.java
    │   │       │   │                       ├── AzureOpenAiImageGenerationMetadata.java
    │   │       │   │                       └── AzureOpenAiImageResponseMetadata.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── azure
    │   │           │               └── openai
    │   │           │                   ├── AzureChatCompletionsOptionsTests.java
    │   │           │                   ├── AzureEmbeddingsOptionsTests.java
    │   │           │                   ├── AzureOpenAiAudioTranscriptionModelIT.java
    │   │           │                   ├── AzureOpenAiChatClientIT.java
    │   │           │                   ├── AzureOpenAiChatModelIT.java
    │   │           │                   ├── AzureOpenAiChatModelObservationIT.java
    │   │           │                   ├── AzureOpenAiChatOptionsTests.java
    │   │           │                   ├── AzureOpenAiEmbeddingModelIT.java
    │   │           │                   ├── AzureOpenAiEmbeddingModelObservationIT.java
    │   │           │                   ├── MockAiTestConfiguration.java
    │   │           │                   ├── MockAzureOpenAiTestConfiguration.java
    │   │           │                   ├── RequiresAzureCredentials.java
    │   │           │                   ├── aot
    │   │           │                       └── AzureOpenAiRuntimeHintsTests.java
    │   │           │                   ├── function
    │   │           │                       ├── AzureOpenAiChatModelFunctionCallIT.java
    │   │           │                       └── MockWeatherService.java
    │   │           │                   ├── image
    │   │           │                       └── AzureOpenAiImageModelIT.java
    │   │           │                   └── metadata
    │   │           │                       └── AzureOpenAiChatModelMetadataTests.java
    │   │       └── resources
    │   │           ├── multimodality
    │   │               └── multimodal.test.png
    │   │           ├── prompts
    │   │               └── system-message.st
    │   │           └── speech
    │   │               └── jfk.flac
    ├── spring-ai-bedrock-converse
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── bedrock
    │   │       │                   └── converse
    │   │       │                       ├── BedrockProxyChatModel.java
    │   │       │                       └── api
    │   │       │                           ├── BedrockMediaFormat.java
    │   │       │                           ├── ConverseApiUtils.java
    │   │       │                           └── URLValidator.java
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── bedrock
    │   │           │               └── converse
    │   │           │                   ├── BedrockConverseChatClientIT.java
    │   │           │                   ├── BedrockConverseTestConfiguration.java
    │   │           │                   ├── BedrockConverseUsageAggregationTests.java
    │   │           │                   ├── BedrockProxyChatModelIT.java
    │   │           │                   ├── BedrockProxyChatModelObservationIT.java
    │   │           │                   ├── BedrockProxyChatModelTest.java
    │   │           │                   ├── MockWeatherService.java
    │   │           │                   ├── RequiresAwsCredentials.java
    │   │           │                   ├── api
    │   │           │                       └── BedrockMediaFormatTest.java
    │   │           │                   ├── client
    │   │           │                       └── BedrockNovaChatClientIT.java
    │   │           │                   └── experiments
    │   │           │                       ├── BedrockConverseChatModelMain.java
    │   │           │                       └── BedrockConverseChatModelMain3.java
    │   │       └── resources
    │   │           ├── prompts
    │   │               └── system-message.st
    │   │           ├── spring-ai-reference-overview.pdf
    │   │           ├── test.png
    │   │           └── test.video.mp4
    ├── spring-ai-bedrock
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── bedrock
    │   │       │   │               ├── MessageToPromptConverter.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── BedrockRuntimeHints.java
    │   │       │   │               ├── api
    │   │       │   │                   └── AbstractBedrockApi.java
    │   │       │   │               ├── cohere
    │   │       │   │                   ├── BedrockCohereEmbeddingModel.java
    │   │       │   │                   ├── BedrockCohereEmbeddingOptions.java
    │   │       │   │                   └── api
    │   │       │   │                   │   └── CohereEmbeddingBedrockApi.java
    │   │       │   │               └── titan
    │   │       │   │                   ├── BedrockTitanEmbeddingModel.java
    │   │       │   │                   ├── BedrockTitanEmbeddingOptions.java
    │   │       │   │                   └── api
    │   │       │   │                       └── TitanEmbeddingBedrockApi.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── bedrock
    │   │           │               ├── RequiresAwsCredentials.java
    │   │           │               ├── aot
    │   │           │                   └── BedrockRuntimeHintsTests.java
    │   │           │               ├── api
    │   │           │                   └── AbstractBedrockApiTest.java
    │   │           │               ├── cohere
    │   │           │                   ├── BedrockCohereEmbeddingModelIT.java
    │   │           │                   └── api
    │   │           │                   │   └── CohereEmbeddingBedrockApiIT.java
    │   │           │               └── titan
    │   │           │                   ├── BedrockTitanEmbeddingModelIT.java
    │   │           │                   └── api
    │   │           │                       └── TitanEmbeddingBedrockApiIT.java
    │   │       └── resources
    │   │           ├── prompts
    │   │               └── system-message.st
    │   │           ├── spring_framework.png
    │   │           └── test.png
    ├── spring-ai-deepseek
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── deepseek
    │   │       │   │               ├── DeepSeekAssistantMessage.java
    │   │       │   │               ├── DeepSeekChatModel.java
    │   │       │   │               ├── DeepSeekChatOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── DeepSeekRuntimeHints.java
    │   │       │   │               └── api
    │   │       │   │                   ├── DeepSeekApi.java
    │   │       │   │                   ├── DeepSeekStreamFunctionCallingHelper.java
    │   │       │   │                   ├── ResponseFormat.java
    │   │       │   │                   └── common
    │   │       │   │                       └── DeepSeekConstants.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── deepseek
    │   │           │               ├── DeepSeekChatCompletionRequestTests.java
    │   │           │               ├── DeepSeekRetryTests.java
    │   │           │               ├── DeepSeekTestConfiguration.java
    │   │           │               ├── aot
    │   │           │                   └── DeepSeekRuntimeHintsTests.java
    │   │           │               ├── api
    │   │           │                   ├── DeepSeekApiIT.java
    │   │           │                   └── MockWeatherService.java
    │   │           │               └── chat
    │   │           │                   ├── ActorsFilms.java
    │   │           │                   ├── DeepSeekChatModelFunctionCallingIT.java
    │   │           │                   ├── DeepSeekChatModelIT.java
    │   │           │                   └── DeepSeekChatModelObservationIT.java
    │   │       └── resources
    │   │           └── prompts
    │   │               └── system-message.st
    ├── spring-ai-elevenlabs
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── elevenlabs
    │   │       │   │               ├── ElevenLabsTextToSpeechModel.java
    │   │       │   │               ├── ElevenLabsTextToSpeechOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── ElevenLabsRuntimeHints.java
    │   │       │   │               └── api
    │   │       │   │                   ├── ElevenLabsApi.java
    │   │       │   │                   └── ElevenLabsVoicesApi.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── elevenlabs
    │   │           │               ├── ElevenLabsTestConfiguration.java
    │   │           │               ├── ElevenLabsTextToSpeechModelIT.java
    │   │           │               ├── ElevenLabsTextToSpeechOptionsTests.java
    │   │           │               └── api
    │   │           │                   ├── ElevenLabsApiIT.java
    │   │           │                   └── ElevenLabsVoicesApiIT.java
    │   │       └── resources
    │   │           └── voices.json
    ├── spring-ai-huggingface
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── huggingface
    │   │       │   │               └── HuggingfaceChatModel.java
    │   │       └── resources
    │   │       │   ├── handlebars
    │   │       │       └── Java
    │   │       │       │   └── libraries
    │   │       │       │       └── resttemplate
    │   │       │       │           └── auth
    │   │       │       │               └── HttpBasicAuth.mustache
    │   │       │   └── openapi.json
    │   │   └── test
    │   │       └── java
    │   │           └── org
    │   │               └── springframework
    │   │                   └── ai
    │   │                       └── huggingface
    │   │                           ├── HuggingfaceTestConfiguration.java
    │   │                           └── client
    │   │                               └── ClientIT.java
    ├── spring-ai-minimax
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── minimax
    │   │       │   │               ├── MiniMaxChatModel.java
    │   │       │   │               ├── MiniMaxChatOptions.java
    │   │       │   │               ├── MiniMaxEmbeddingModel.java
    │   │       │   │               ├── MiniMaxEmbeddingOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── MiniMaxRuntimeHints.java
    │   │       │   │               └── api
    │   │       │   │                   ├── MiniMaxApi.java
    │   │       │   │                   ├── MiniMaxApiConstants.java
    │   │       │   │                   └── MiniMaxStreamFunctionCallingHelper.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── minimax
    │   │           │               ├── ChatCompletionRequestTests.java
    │   │           │               ├── MiniMaxChatOptionsTests.java
    │   │           │               ├── MiniMaxTestConfiguration.java
    │   │           │               ├── api
    │   │           │                   ├── MiniMaxApiIT.java
    │   │           │                   ├── MiniMaxApiToolFunctionCallIT.java
    │   │           │                   ├── MiniMaxRetryTests.java
    │   │           │                   └── MockWeatherService.java
    │   │           │               ├── chat
    │   │           │                   ├── MiniMaxChatModelObservationIT.java
    │   │           │                   └── MiniMaxChatOptionsTests.java
    │   │           │               └── embedding
    │   │           │                   ├── EmbeddingIT.java
    │   │           │                   └── MiniMaxEmbeddingModelObservationIT.java
    │   │       └── resources
    │   │           └── prompts
    │   │               └── system-message.st
    ├── spring-ai-mistral-ai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── mistralai
    │   │       │   │               ├── MistralAiChatModel.java
    │   │       │   │               ├── MistralAiChatOptions.java
    │   │       │   │               ├── MistralAiEmbeddingModel.java
    │   │       │   │               ├── MistralAiEmbeddingOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── MistralAiRuntimeHints.java
    │   │       │   │               ├── api
    │   │       │   │                   ├── MistralAiApi.java
    │   │       │   │                   ├── MistralAiModerationApi.java
    │   │       │   │                   └── MistralAiStreamFunctionCallingHelper.java
    │   │       │   │               └── moderation
    │   │       │   │                   ├── MistralAiModerationModel.java
    │   │       │   │                   └── MistralAiModerationOptions.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── mistralai
    │   │           │               ├── MistralAiChatClientIT.java
    │   │           │               ├── MistralAiChatCompletionRequestTest.java
    │   │           │               ├── MistralAiChatModelIT.java
    │   │           │               ├── MistralAiChatModelObservationIT.java
    │   │           │               ├── MistralAiChatOptionsTests.java
    │   │           │               ├── MistralAiEmbeddingIT.java
    │   │           │               ├── MistralAiEmbeddingModelObservationIT.java
    │   │           │               ├── MistralAiModerationModelIT.java
    │   │           │               ├── MistralAiRetryTests.java
    │   │           │               ├── MistralAiTestConfiguration.java
    │   │           │               ├── MockWeatherService.java
    │   │           │               ├── aot
    │   │           │                   └── MistralAiRuntimeHintsTests.java
    │   │           │               └── api
    │   │           │                   ├── MistralAiApiIT.java
    │   │           │                   └── tool
    │   │           │                       ├── MistralAiApiToolFunctionCallIT.java
    │   │           │                       ├── MockWeatherService.java
    │   │           │                       └── PaymentStatusFunctionCallingIT.java
    │   │       └── resources
    │   │           ├── prompts
    │   │               ├── acme
    │   │               │   └── system-qa.st
    │   │               ├── eval
    │   │               │   ├── qa-evaluator-accurate-answer.st
    │   │               │   ├── qa-evaluator-fact-based-answer.st
    │   │               │   ├── qa-evaluator-not-related-message.st
    │   │               │   └── user-evaluator-message.st
    │   │               └── system-message.st
    │   │           └── test.png
    ├── spring-ai-oci-genai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── oci
    │   │       │                   ├── OCIEmbeddingModel.java
    │   │       │                   ├── OCIEmbeddingOptions.java
    │   │       │                   ├── ServingModeHelper.java
    │   │       │                   └── cohere
    │   │       │                       ├── OCICohereChatModel.java
    │   │       │                       └── OCICohereChatOptions.java
    │   │   └── test
    │   │       └── java
    │   │           └── org
    │   │               └── springframework
    │   │                   └── ai
    │   │                       └── oci
    │   │                           ├── BaseEmbeddingModelTest.java
    │   │                           ├── BaseOCIGenAITest.java
    │   │                           ├── OCIEmbeddingModelIT.java
    │   │                           └── cohere
    │   │                               ├── OCICohereChatModelIT.java
    │   │                               └── OCICohereChatOptionsTests.java
    ├── spring-ai-ollama
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── ollama
    │   │       │   │               ├── OllamaChatModel.java
    │   │       │   │               ├── OllamaEmbeddingModel.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── OllamaRuntimeHints.java
    │   │       │   │               ├── api
    │   │       │   │                   ├── OllamaApi.java
    │   │       │   │                   ├── OllamaApiHelper.java
    │   │       │   │                   ├── OllamaModel.java
    │   │       │   │                   ├── OllamaOptions.java
    │   │       │   │                   └── common
    │   │       │   │                   │   └── OllamaApiConstants.java
    │   │       │   │               └── management
    │   │       │   │                   ├── ModelManagementOptions.java
    │   │       │   │                   ├── OllamaModelManager.java
    │   │       │   │                   ├── PullModelStrategy.java
    │   │       │   │                   └── package-info.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── ollama
    │   │           │               ├── BaseOllamaIT.java
    │   │           │               ├── OllamaChatModelFunctionCallingIT.java
    │   │           │               ├── OllamaChatModelIT.java
    │   │           │               ├── OllamaChatModelMultimodalIT.java
    │   │           │               ├── OllamaChatModelObservationIT.java
    │   │           │               ├── OllamaChatModelTests.java
    │   │           │               ├── OllamaChatRequestTests.java
    │   │           │               ├── OllamaEmbeddingModelIT.java
    │   │           │               ├── OllamaEmbeddingModelObservationIT.java
    │   │           │               ├── OllamaEmbeddingModelTests.java
    │   │           │               ├── OllamaEmbeddingRequestTests.java
    │   │           │               ├── OllamaImage.java
    │   │           │               ├── OllamaRetryTests.java
    │   │           │               ├── aot
    │   │           │                   └── OllamaRuntimeHintsTests.java
    │   │           │               ├── api
    │   │           │                   ├── OllamaApiIT.java
    │   │           │                   ├── OllamaApiModelsIT.java
    │   │           │                   ├── OllamaDurationFieldsTests.java
    │   │           │                   ├── OllamaModelOptionsTests.java
    │   │           │                   └── tool
    │   │           │                   │   ├── MockWeatherService.java
    │   │           │                   │   └── OllamaApiToolFunctionCallIT.java
    │   │           │               └── management
    │   │           │                   └── OllamaModelManagerIT.java
    │   │       └── resources
    │   │           ├── doc
    │   │               └── Ollama Chat API.jpg
    │   │           ├── norway.webp
    │   │           └── test.png
    ├── spring-ai-openai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── openai
    │   │       │   │               ├── ImageResponseMetadata.java
    │   │       │   │               ├── OpenAiAudioSpeechModel.java
    │   │       │   │               ├── OpenAiAudioSpeechOptions.java
    │   │       │   │               ├── OpenAiAudioTranscriptionModel.java
    │   │       │   │               ├── OpenAiAudioTranscriptionOptions.java
    │   │       │   │               ├── OpenAiChatModel.java
    │   │       │   │               ├── OpenAiChatOptions.java
    │   │       │   │               ├── OpenAiEmbeddingModel.java
    │   │       │   │               ├── OpenAiEmbeddingOptions.java
    │   │       │   │               ├── OpenAiImageModel.java
    │   │       │   │               ├── OpenAiImageOptions.java
    │   │       │   │               ├── OpenAiModerationModel.java
    │   │       │   │               ├── OpenAiModerationOptions.java
    │   │       │   │               ├── aot
    │   │       │   │                   └── OpenAiRuntimeHints.java
    │   │       │   │               ├── api
    │   │       │   │                   ├── OpenAiApi.java
    │   │       │   │                   ├── OpenAiAudioApi.java
    │   │       │   │                   ├── OpenAiImageApi.java
    │   │       │   │                   ├── OpenAiModerationApi.java
    │   │       │   │                   ├── OpenAiStreamFunctionCallingHelper.java
    │   │       │   │                   ├── ResponseFormat.java
    │   │       │   │                   └── common
    │   │       │   │                   │   ├── OpenAiApiClientErrorException.java
    │   │       │   │                   │   └── OpenAiApiConstants.java
    │   │       │   │               ├── audio
    │   │       │   │                   └── speech
    │   │       │   │                   │   ├── Speech.java
    │   │       │   │                   │   ├── SpeechMessage.java
    │   │       │   │                   │   ├── SpeechModel.java
    │   │       │   │                   │   ├── SpeechPrompt.java
    │   │       │   │                   │   ├── SpeechResponse.java
    │   │       │   │                   │   └── StreamingSpeechModel.java
    │   │       │   │               └── metadata
    │   │       │   │                   ├── OpenAiImageGenerationMetadata.java
    │   │       │   │                   ├── OpenAiModerationGenerationMetadata.java
    │   │       │   │                   ├── OpenAiRateLimit.java
    │   │       │   │                   ├── audio
    │   │       │   │                       ├── OpenAiAudioSpeechMetadata.java
    │   │       │   │                       ├── OpenAiAudioSpeechResponseMetadata.java
    │   │       │   │                       └── OpenAiAudioTranscriptionResponseMetadata.java
    │   │       │   │                   └── support
    │   │       │   │                       ├── OpenAiApiResponseHeaders.java
    │   │       │   │                       └── OpenAiResponseHeaderExtractor.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── openai
    │   │           │               ├── ChatCompletionRequestTests.java
    │   │           │               ├── OpenAiChatOptionsTests.java
    │   │           │               ├── OpenAiImageOptionsTests.java
    │   │           │               ├── OpenAiTestConfiguration.java
    │   │           │               ├── TranscriptionRequestTests.java
    │   │           │               ├── acme
    │   │           │                   └── AcmeIT.java
    │   │           │               ├── aot
    │   │           │                   └── OpenAiRuntimeHintsTests.java
    │   │           │               ├── api
    │   │           │                   ├── OpenAiApiBuilderTests.java
    │   │           │                   ├── OpenAiApiIT.java
    │   │           │                   ├── OpenAiChatModelMutateTests.java
    │   │           │                   ├── OpenAiStreamFunctionCallingHelperTest.java
    │   │           │                   └── tool
    │   │           │                   │   ├── MockWeatherService.java
    │   │           │                   │   └── OpenAiApiToolFunctionCallIT.java
    │   │           │               ├── audio
    │   │           │                   ├── api
    │   │           │                   │   ├── OpenAiAudioApiBuilderTests.java
    │   │           │                   │   ├── OpenAiAudioApiIT.java
    │   │           │                   │   └── OpenAiAudioModelNoOpApiKeysIT.java
    │   │           │                   ├── speech
    │   │           │                   │   ├── OpenAiSpeechModelIT.java
    │   │           │                   │   └── OpenAiSpeechModelWithSpeechResponseMetadataTests.java
    │   │           │                   └── transcription
    │   │           │                   │   ├── OpenAiAudioTranscriptionModelTests.java
    │   │           │                   │   ├── OpenAiTranscriptionModelIT.java
    │   │           │                   │   └── OpenAiTranscriptionModelWithTranscriptionResponseMetadataTests.java
    │   │           │               ├── chat
    │   │           │                   ├── ActorsFilms.java
    │   │           │                   ├── MessageTypeContentTests.java
    │   │           │                   ├── OpenAiChatModelAdditionalHttpHeadersIT.java
    │   │           │                   ├── OpenAiChatModelFunctionCallingIT.java
    │   │           │                   ├── OpenAiChatModelIT.java
    │   │           │                   ├── OpenAiChatModelNoOpApiKeysIT.java
    │   │           │                   ├── OpenAiChatModelObservationIT.java
    │   │           │                   ├── OpenAiChatModelResponseFormatIT.java
    │   │           │                   ├── OpenAiChatModelTypeReferenceBeanOutputConverterIT.java
    │   │           │                   ├── OpenAiChatModelWithChatResponseMetadataTests.java
    │   │           │                   ├── OpenAiCompatibleChatModelIT.java
    │   │           │                   ├── OpenAiPaymentTransactionIT.java
    │   │           │                   ├── OpenAiRetryTests.java
    │   │           │                   ├── client
    │   │           │                   │   ├── ChatClientToolsWithGenericArgumentTypesIT.java
    │   │           │                   │   ├── OpenAiChatClientIT.java
    │   │           │                   │   ├── OpenAiChatClientMemoryAdvisorReproIT.java
    │   │           │                   │   ├── OpenAiChatClientMethodInvokingFunctionCallbackIT.java
    │   │           │                   │   ├── OpenAiChatClientMultipleFunctionCallsIT.java
    │   │           │                   │   ├── ReReadingAdvisor.java
    │   │           │                   │   └── advisor
    │   │           │                   │   │   ├── AbstractChatMemoryAdvisorIT.java
    │   │           │                   │   │   ├── MessageChatMemoryAdvisorIT.java
    │   │           │                   │   │   └── PromptChatMemoryAdvisorIT.java
    │   │           │                   └── proxy
    │   │           │                   │   ├── DeepSeekWithOpenAiChatModelIT.java
    │   │           │                   │   ├── DockerModelRunnerWithOpenAiChatModelIT.java
    │   │           │                   │   ├── GroqWithOpenAiChatModelIT.java
    │   │           │                   │   ├── MistralWithOpenAiChatModelIT.java
    │   │           │                   │   ├── MultiOpenAiClientIT.java
    │   │           │                   │   ├── NvidiaWithOpenAiChatModelIT.java
    │   │           │                   │   ├── OllamaWithOpenAiChatModelIT.java
    │   │           │                   │   ├── PerplexityWithOpenAiChatModelIT.java
    │   │           │                   │   └── VertexAIGeminiWithOpenAiChatModelIT.java
    │   │           │               ├── embedding
    │   │           │                   ├── EmbeddingIT.java
    │   │           │                   └── OpenAiEmbeddingModelObservationIT.java
    │   │           │               ├── image
    │   │           │                   ├── OpenAiImageModelIT.java
    │   │           │                   ├── OpenAiImageModelNoOpApiKeysIT.java
    │   │           │                   ├── OpenAiImageModelObservationIT.java
    │   │           │                   ├── OpenAiImageModelWithImageResponseMetadataTests.java
    │   │           │                   └── api
    │   │           │                   │   └── OpenAiImageApiBuilderTests.java
    │   │           │               ├── metadata
    │   │           │                   ├── OpenAiUsageTests.java
    │   │           │                   └── support
    │   │           │                   │   └── OpenAiResponseHeaderExtractorTests.java
    │   │           │               ├── moderation
    │   │           │                   ├── OpenAiModerationModelIT.java
    │   │           │                   ├── OpenAiModerationModelNoOpApiKeysIT.java
    │   │           │                   ├── OpenAiModerationModelTests.java
    │   │           │                   └── api
    │   │           │                   │   └── OpenAiModerationApiBuilderTests.java
    │   │           │               ├── testutils
    │   │           │                   └── AbstractIT.java
    │   │           │               ├── transformer
    │   │           │                   └── MetadataTransformerIT.java
    │   │           │               └── vectorstore
    │   │           │                   └── SimplePersistentVectorStoreIT.java
    │   │       └── resources
    │   │           ├── application-logging-test.properties
    │   │           ├── data
    │   │               └── acme
    │   │               │   └── bikes.json
    │   │           ├── prompts
    │   │               ├── acme
    │   │               │   └── system-qa.st
    │   │               ├── eval
    │   │               │   ├── qa-evaluator-accurate-answer.st
    │   │               │   ├── qa-evaluator-fact-based-answer.st
    │   │               │   ├── qa-evaluator-not-related-message.st
    │   │               │   └── user-evaluator-message.st
    │   │               └── system-message.st
    │   │           ├── speech.flac
    │   │           ├── speech
    │   │               ├── jfk.flac
    │   │               └── speech1.mp3
    │   │           ├── test.png
    │   │           └── text_source.txt
    ├── spring-ai-postgresml
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── postgresml
    │   │       │                   ├── PostgresMlEmbeddingModel.java
    │   │       │                   └── PostgresMlEmbeddingOptions.java
    │   │   └── test
    │   │       └── java
    │   │           └── org
    │   │               └── springframework
    │   │                   └── ai
    │   │                       └── postgresml
    │   │                           ├── PostgresMlEmbeddingModelIT.java
    │   │                           └── PostgresMlEmbeddingOptionsTests.java
    ├── spring-ai-stability-ai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── stabilityai
    │   │       │                   ├── StabilityAiImageGenerationMetadata.java
    │   │       │                   ├── StabilityAiImageModel.java
    │   │       │                   ├── StyleEnum.java
    │   │       │                   └── api
    │   │       │                       ├── StabilityAiApi.java
    │   │       │                       └── StabilityAiImageOptions.java
    │   │   └── test
    │   │       └── java
    │   │           └── org
    │   │               └── springframework
    │   │                   └── ai
    │   │                       └── stabilityai
    │   │                           ├── StabilityAiApiIT.java
    │   │                           ├── StabilityAiImageModelIT.java
    │   │                           ├── StabilityAiImageOptionsTests.java
    │   │                           └── StabilityAiImageTestConfiguration.java
    ├── spring-ai-transformers
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── transformers
    │   │       │   │               ├── ResourceCacheService.java
    │   │       │   │               └── TransformersEmbeddingModel.java
    │   │       └── resources
    │   │       │   └── onnx
    │   │       │       └── all-MiniLM-L6-v2
    │   │       │           ├── model.onnx
    │   │       │           ├── model.png
    │   │       │           └── tokenizer.json
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── transformers
    │   │           │               ├── ResourceCacheServiceTests.java
    │   │           │               ├── TransformersEmbeddingModelObservationTests.java
    │   │           │               ├── TransformersEmbeddingModelTests.java
    │   │           │               └── samples
    │   │           │                   └── ONNXSample.java
    │   │       └── resources
    │   │           └── Test.py
    ├── spring-ai-vertex-ai-embedding
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       └── java
    │   │       │   └── org
    │   │       │       └── springframework
    │   │       │           └── ai
    │   │       │               └── vertexai
    │   │       │                   └── embedding
    │   │       │                       ├── VertexAiEmbeddingConnectionDetails.java
    │   │       │                       ├── VertexAiEmbeddingUtils.java
    │   │       │                       ├── multimodal
    │   │       │                           ├── VertexAiMultimodalEmbeddingModel.java
    │   │       │                           ├── VertexAiMultimodalEmbeddingModelName.java
    │   │       │                           └── VertexAiMultimodalEmbeddingOptions.java
    │   │       │                       └── text
    │   │       │                           ├── VertexAiTextEmbeddingModel.java
    │   │       │                           ├── VertexAiTextEmbeddingModelName.java
    │   │       │                           └── VertexAiTextEmbeddingOptions.java
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── vertexai
    │   │           │               └── embedding
    │   │           │                   ├── multimodal
    │   │           │                       └── VertexAiMultimodalEmbeddingModelIT.java
    │   │           │                   └── text
    │   │           │                       ├── TestVertexAiTextEmbeddingModel.java
    │   │           │                       ├── VertexAiTextEmbeddingModelIT.java
    │   │           │                       ├── VertexAiTextEmbeddingModelObservationIT.java
    │   │           │                       └── VertexAiTextEmbeddingRetryTests.java
    │   │       └── resources
    │   │           ├── test.image.png
    │   │           └── test.video.mp4
    ├── spring-ai-vertex-ai-gemini
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── springframework
    │   │       │   │       └── ai
    │   │       │   │           └── vertexai
    │   │       │   │               └── gemini
    │   │       │   │                   ├── MimeTypeDetector.java
    │   │       │   │                   ├── VertexAiGeminiChatModel.java
    │   │       │   │                   ├── VertexAiGeminiChatOptions.java
    │   │       │   │                   ├── aot
    │   │       │   │                       └── VertexAiGeminiRuntimeHints.java
    │   │       │   │                   ├── common
    │   │       │   │                       ├── VertexAiGeminiConstants.java
    │   │       │   │                       └── VertexAiGeminiSafetySetting.java
    │   │       │   │                   └── schema
    │   │       │   │                       ├── JsonSchemaConverter.java
    │   │       │   │                       └── VertexToolCallingManager.java
    │   │       └── resources
    │   │       │   └── META-INF
    │   │       │       └── spring
    │   │       │           └── aot.factories
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── springframework
    │   │           │       └── ai
    │   │           │           └── vertexai
    │   │           │               └── gemini
    │   │           │                   ├── CreateGeminiRequestTests.java
    │   │           │                   ├── MimeTypeDetectorTests.java
    │   │           │                   ├── TestVertexAiGeminiChatModel.java
    │   │           │                   ├── VertexAiChatModelObservationIT.java
    │   │           │                   ├── VertexAiGeminiChatModelIT.java
    │   │           │                   ├── VertexAiGeminiRetryTests.java
    │   │           │                   ├── aot
    │   │           │                       └── VertexAiGeminiRuntimeHintsTests.java
    │   │           │                   ├── schema
    │   │           │                       └── JsonSchemaConverterTests.java
    │   │           │                   └── tool
    │   │           │                       ├── MockWeatherService.java
    │   │           │                       ├── VertexAiGeminiChatModelToolCallingIT.java
    │   │           │                       ├── VertexAiGeminiPaymentTransactionIT.java
    │   │           │                       ├── VertexAiGeminiPaymentTransactionMethodIT.java
    │   │           │                       └── VertexAiGeminiPaymentTransactionToolsIT.java
    │   │       └── resources
    │   │           ├── prompts
    │   │               └── system-message.st
    │   │           ├── spring-ai-reference-overview.pdf
    │   │           └── vertex.test.png
    └── spring-ai-zhipuai
    │   ├── README.md
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │           ├── java
    │           │   └── org
    │           │   │   └── springframework
    │           │   │       └── ai
    │           │   │           └── zhipuai
    │           │   │               ├── ZhiPuAiChatModel.java
    │           │   │               ├── ZhiPuAiChatOptions.java
    │           │   │               ├── ZhiPuAiEmbeddingModel.java
    │           │   │               ├── ZhiPuAiEmbeddingOptions.java
    │           │   │               ├── ZhiPuAiImageModel.java
    │           │   │               ├── ZhiPuAiImageOptions.java
    │           │   │               ├── aot
    │           │   │                   └── ZhiPuAiRuntimeHints.java
    │           │   │               └── api
    │           │   │                   ├── ZhiPuAiApi.java
    │           │   │                   ├── ZhiPuAiImageApi.java
    │           │   │                   ├── ZhiPuAiStreamFunctionCallingHelper.java
    │           │   │                   └── ZhiPuApiConstants.java
    │           └── resources
    │           │   └── META-INF
    │           │       └── spring
    │           │           └── aot.factories
    │       └── test
    │           ├── java
    │               └── org
    │               │   └── springframework
    │               │       └── ai
    │               │           └── zhipuai
    │               │               ├── ChatCompletionRequestTests.java
    │               │               ├── ZhiPuAiTestConfiguration.java
    │               │               ├── api
    │               │                   ├── MockWeatherService.java
    │               │                   ├── ZhiPuAiApiBuilderTests.java
    │               │                   ├── ZhiPuAiApiIT.java
    │               │                   ├── ZhiPuAiApiToolFunctionCallIT.java
    │               │                   └── ZhiPuAiRetryTests.java
    │               │               ├── chat
    │               │                   ├── ActorsFilms.java
    │               │                   ├── ZhiPuAiChatModelIT.java
    │               │                   └── ZhiPuAiChatModelObservationIT.java
    │               │               ├── embedding
    │               │                   ├── EmbeddingIT.java
    │               │                   └── ZhiPuAiEmbeddingModelObservationIT.java
    │               │               └── image
    │               │                   └── ZhiPuAiImageModelIT.java
    │           └── resources
    │               ├── prompts
    │                   └── system-message.st
    │               └── test.png
├── mvnw
├── mvnw.cmd
├── pom.xml
├── settings.xml
├── spring-ai-bom
    └── pom.xml
├── spring-ai-client-chat
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           └── chat
    │       │   │               ├── client
    │       │   │                   ├── ChatClient.java
    │       │   │                   ├── ChatClientAttributes.java
    │       │   │                   ├── ChatClientCustomizer.java
    │       │   │                   ├── ChatClientMessageAggregator.java
    │       │   │                   ├── ChatClientRequest.java
    │       │   │                   ├── ChatClientResponse.java
    │       │   │                   ├── DefaultChatClient.java
    │       │   │                   ├── DefaultChatClientBuilder.java
    │       │   │                   ├── DefaultChatClientUtils.java
    │       │   │                   ├── ResponseEntity.java
    │       │   │                   ├── advisor
    │       │   │                   │   ├── AdvisorUtils.java
    │       │   │                   │   ├── ChatModelCallAdvisor.java
    │       │   │                   │   ├── ChatModelStreamAdvisor.java
    │       │   │                   │   ├── DefaultAroundAdvisorChain.java
    │       │   │                   │   ├── LastMaxTokenSizeContentPurger.java
    │       │   │                   │   ├── MessageChatMemoryAdvisor.java
    │       │   │                   │   ├── PromptChatMemoryAdvisor.java
    │       │   │                   │   ├── SafeGuardAdvisor.java
    │       │   │                   │   ├── SimpleLoggerAdvisor.java
    │       │   │                   │   ├── api
    │       │   │                   │   │   ├── Advisor.java
    │       │   │                   │   │   ├── AdvisorChain.java
    │       │   │                   │   │   ├── BaseAdvisor.java
    │       │   │                   │   │   ├── BaseAdvisorChain.java
    │       │   │                   │   │   ├── BaseChatMemoryAdvisor.java
    │       │   │                   │   │   ├── CallAdvisor.java
    │       │   │                   │   │   ├── CallAdvisorChain.java
    │       │   │                   │   │   ├── StreamAdvisor.java
    │       │   │                   │   │   ├── StreamAdvisorChain.java
    │       │   │                   │   │   └── package-info.java
    │       │   │                   │   ├── observation
    │       │   │                   │   │   ├── AdvisorObservationContext.java
    │       │   │                   │   │   ├── AdvisorObservationConvention.java
    │       │   │                   │   │   ├── AdvisorObservationDocumentation.java
    │       │   │                   │   │   ├── DefaultAdvisorObservationConvention.java
    │       │   │                   │   │   └── package-info.java
    │       │   │                   │   └── package-info.java
    │       │   │                   ├── observation
    │       │   │                   │   ├── ChatClientObservationContext.java
    │       │   │                   │   ├── ChatClientObservationConvention.java
    │       │   │                   │   ├── ChatClientObservationDocumentation.java
    │       │   │                   │   ├── ChatClientPromptContentObservationHandler.java
    │       │   │                   │   ├── DefaultChatClientObservationConvention.java
    │       │   │                   │   └── package-info.java
    │       │   │                   └── package-info.java
    │       │   │               ├── evaluation
    │       │   │                   ├── FactCheckingEvaluator.java
    │       │   │                   └── RelevancyEvaluator.java
    │       │   │               └── package-info.java
    │       └── kotlin
    │       │   └── org
    │       │       └── springframework
    │       │           └── ai
    │       │               └── chat
    │       │                   └── client
    │       │                       └── ChatClientExtensions.kt
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           ├── TestConfiguration.java
    │           │           ├── chat
    │           │               ├── client
    │           │               │   ├── ChatClientAdvisorTests.java
    │           │               │   ├── ChatClientRequestTests.java
    │           │               │   ├── ChatClientResponseEntityTests.java
    │           │               │   ├── ChatClientResponseTests.java
    │           │               │   ├── ChatClientTest.java
    │           │               │   ├── DefaultChatClientBuilderTests.java
    │           │               │   ├── DefaultChatClientTests.java
    │           │               │   ├── DefaultChatClientUtilsTests.java
    │           │               │   ├── advisor
    │           │               │   │   ├── AdvisorUtilsTests.java
    │           │               │   │   ├── AdvisorsTests.java
    │           │               │   │   ├── ChatModelCallAdvisorTests.java
    │           │               │   │   ├── ChatModelStreamAdvisorTests.java
    │           │               │   │   ├── DefaultAroundAdvisorChainTests.java
    │           │               │   │   ├── MessageChatMemoryAdvisorTests.java
    │           │               │   │   ├── PromptChatMemoryAdvisorTests.java
    │           │               │   │   ├── SimpleLoggerAdvisorTests.java
    │           │               │   │   └── observation
    │           │               │   │   │   ├── AdvisorObservationContextTests.java
    │           │               │   │   │   └── DefaultAdvisorObservationConventionTests.java
    │           │               │   └── observation
    │           │               │   │   ├── ChatClientObservationContextTests.java
    │           │               │   │   ├── ChatClientPromptContentObservationHandlerTests.java
    │           │               │   │   └── DefaultChatClientObservationConventionTests.java
    │           │               └── evaluation
    │           │               │   └── RelevancyEvaluatorTests.java
    │           │           ├── metadata
    │           │               └── PromptMetadataTests.java
    │           │           └── prompt
    │           │               ├── PromptTemplateTest.java
    │           │               └── PromptTests.java
    │       ├── kotlin
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           └── chat
    │           │               └── client
    │           │                   └── ChatClientExtensionsTests.kt
    │       └── resources
    │           ├── application-logging-test.properties
    │           ├── bikes.json
    │           ├── logback.xml
    │           ├── system-prompt.txt
    │           ├── tabby-cat.png
    │           ├── text_source.txt
    │           └── user-prompt.txt
├── spring-ai-commons
    ├── pom.xml
    └── src
    │   ├── main
    │       └── java
    │       │   └── org
    │       │       └── springframework
    │       │           └── ai
    │       │               ├── content
    │       │                   ├── Content.java
    │       │                   ├── Media.java
    │       │                   ├── MediaContent.java
    │       │                   └── package-info.java
    │       │               ├── document
    │       │                   ├── ContentFormatter.java
    │       │                   ├── DefaultContentFormatter.java
    │       │                   ├── Document.java
    │       │                   ├── DocumentMetadata.java
    │       │                   ├── DocumentReader.java
    │       │                   ├── DocumentTransformer.java
    │       │                   ├── DocumentWriter.java
    │       │                   ├── MetadataMode.java
    │       │                   ├── id
    │       │                   │   ├── IdGenerator.java
    │       │                   │   ├── JdkSha256HexIdGenerator.java
    │       │                   │   └── RandomIdGenerator.java
    │       │                   └── package-info.java
    │       │               ├── embedding
    │       │                   ├── BatchingStrategy.java
    │       │                   └── TokenCountBatchingStrategy.java
    │       │               ├── evaluation
    │       │                   ├── EvaluationRequest.java
    │       │                   ├── EvaluationResponse.java
    │       │                   └── Evaluator.java
    │       │               ├── observation
    │       │                   ├── AiOperationMetadata.java
    │       │                   ├── ObservabilityHelper.java
    │       │                   ├── TracingAwareLoggingObservationHandler.java
    │       │                   ├── conventions
    │       │                   │   ├── AiObservationAttributes.java
    │       │                   │   ├── AiObservationMetricAttributes.java
    │       │                   │   ├── AiObservationMetricNames.java
    │       │                   │   ├── AiOperationType.java
    │       │                   │   ├── AiProvider.java
    │       │                   │   ├── AiTokenType.java
    │       │                   │   ├── SpringAiKind.java
    │       │                   │   ├── VectorStoreObservationAttributes.java
    │       │                   │   ├── VectorStoreProvider.java
    │       │                   │   ├── VectorStoreSimilarityMetric.java
    │       │                   │   └── package-info.java
    │       │                   └── package-info.java
    │       │               ├── reader
    │       │                   ├── EmptyJsonMetadataGenerator.java
    │       │                   ├── ExtractedTextFormatter.java
    │       │                   ├── JsonMetadataGenerator.java
    │       │                   ├── JsonReader.java
    │       │                   └── TextReader.java
    │       │               ├── template
    │       │                   ├── NoOpTemplateRenderer.java
    │       │                   ├── TemplateRenderer.java
    │       │                   └── ValidationMode.java
    │       │               ├── tokenizer
    │       │                   ├── JTokkitTokenCountEstimator.java
    │       │                   └── TokenCountEstimator.java
    │       │               ├── transformer
    │       │                   ├── ContentFormatTransformer.java
    │       │                   └── splitter
    │       │                   │   ├── TextSplitter.java
    │       │                   │   └── TokenTextSplitter.java
    │       │               ├── util
    │       │                   ├── JacksonUtils.java
    │       │                   ├── LoggingMarkers.java
    │       │                   ├── ParsingUtils.java
    │       │                   └── ResourceUtils.java
    │       │               └── writer
    │       │                   └── FileDocumentWriter.java
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           ├── TestConfiguration.java
    │           │           ├── document
    │           │               ├── ContentFormatterTests.java
    │           │               ├── DocumentBuilderTests.java
    │           │               ├── DocumentTests.java
    │           │               ├── TextBlockAssertion.java
    │           │               └── id
    │           │               │   ├── IdGeneratorProviderTest.java
    │           │               │   └── JdkSha256HexIdGeneratorTest.java
    │           │           ├── embedding
    │           │               └── TokenCountBatchingStrategyTests.java
    │           │           ├── observation
    │           │               ├── AiOperationMetadataTests.java
    │           │               ├── ObservabilityHelperTests.java
    │           │               └── TracingAwareLoggingObservationHandlerTests.java
    │           │           ├── reader
    │           │               ├── JsonReaderTests.java
    │           │               └── TextReaderTests.java
    │           │           ├── template
    │           │               └── NoOpTemplateRendererTests.java
    │           │           ├── transformer
    │           │               └── splitter
    │           │               │   ├── TextSplitterTests.java
    │           │               │   └── TokenTextSplitterTest.java
    │           │           └── writer
    │           │               └── FileDocumentWriterTest.java
    │       ├── kotlin
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           └── utils
    │           │               └── JacksonUtilsKotlinTests.kt
    │       └── resources
    │           ├── bikes.json
    │           ├── events.json
    │           ├── person.json
    │           └── text_source.txt
├── spring-ai-docs
    ├── pom.xml
    └── src
    │   ├── assembly
    │       └── javadocs.xml
    │   └── main
    │       ├── antora
    │           ├── antora-playbook.yml
    │           ├── antora.yml
    │           ├── modules
    │           │   └── ROOT
    │           │   │   ├── images
    │           │   │       ├── advisors-api-classes.jpg
    │           │   │       ├── advisors-flow.jpg
    │           │   │       ├── advisors-non-stream-vs-stream.jpg
    │           │   │       ├── anthropic-claude3-class-diagram.jpg
    │           │   │       ├── anthropic-claude3-events-model.jpg
    │           │   │       ├── bedrock
    │           │   │       │   ├── bedrock-anthropic-chat-api.png
    │           │   │       │   ├── bedrock-cohere-chat-low-level-api.jpg
    │           │   │       │   ├── bedrock-cohere-embedding-low-level-api.jpg
    │           │   │       │   ├── bedrock-llama-chat-api.jpg
    │           │   │       │   ├── bedrock-titan-chat-low-level-api.jpg
    │           │   │       │   └── bedrock-titan-embedding-low-level-api.jpg
    │           │   │       ├── chat-options-flow.jpg
    │           │   │       ├── deepseek_r1_multiround_example.png
    │           │   │       ├── embeddings-api.jpg
    │           │   │       ├── etl-class-diagram.jpg
    │           │   │       ├── etl-pipeline.jpg
    │           │   │       ├── function-calling-basic-flow.jpg
    │           │   │       ├── function-calling-tool-context.jpg
    │           │   │       ├── hanadb
    │           │   │       │   ├── 0.png
    │           │   │       │   ├── 1.png
    │           │   │       │   ├── 10.png
    │           │   │       │   ├── 11.png
    │           │   │       │   ├── 13.png
    │           │   │       │   ├── 14.png
    │           │   │       │   ├── 15.png
    │           │   │       │   ├── 16.png
    │           │   │       │   ├── 17.png
    │           │   │       │   ├── 18.png
    │           │   │       │   ├── 19.png
    │           │   │       │   ├── 2.png
    │           │   │       │   ├── 20.1.png
    │           │   │       │   ├── 20.2.png
    │           │   │       │   ├── 21.png
    │           │   │       │   ├── 22.png
    │           │   │       │   ├── 23.png
    │           │   │       │   ├── 24.png
    │           │   │       │   ├── 25.png
    │           │   │       │   ├── 26.png
    │           │   │       │   ├── 27.png
    │           │   │       │   ├── 28.png
    │           │   │       │   ├── 29.png
    │           │   │       │   ├── 3.png
    │           │   │       │   ├── 30.png
    │           │   │       │   ├── 31.png
    │           │   │       │   ├── 32.png
    │           │   │       │   ├── 33.png
    │           │   │       │   ├── 34.1.png
    │           │   │       │   ├── 34.2.png
    │           │   │       │   ├── 35.png
    │           │   │       │   ├── 36.png
    │           │   │       │   ├── 37.png
    │           │   │       │   ├── 38.png
    │           │   │       │   ├── 39.png
    │           │   │       │   ├── 4.png
    │           │   │       │   ├── 40.png
    │           │   │       │   ├── 5.png
    │           │   │       │   ├── 6.png
    │           │   │       │   ├── 7.png
    │           │   │       │   ├── 8.png
    │           │   │       │   ├── 9.png
    │           │   │       │   └── wikipedia.png
    │           │   │       ├── lawofcosines.png
    │           │   │       ├── mcp
    │           │   │       │   ├── java-mcp-client-architecture.jpg
    │           │   │       │   ├── java-mcp-server-architecture.jpg
    │           │   │       │   ├── java-mcp-uml-classdiagram.svg
    │           │   │       │   └── mcp-stack.svg
    │           │   │       ├── mistral-ai-function-calling-flow.jpg
    │           │   │       ├── model-hierarchy.jpg
    │           │   │       ├── multimodal.test.png
    │           │   │       ├── no.svg
    │           │   │       ├── ollama-chat-completion-api.jpg
    │           │   │       ├── ollama-chatmodel-function-call.jpg
    │           │   │       ├── ollama-function-calling-flow.jpg
    │           │   │       ├── openai-chat-api.jpg
    │           │   │       ├── openai-chatclient-function-call.jpg
    │           │   │       ├── openai-function-calling-flow.jpg
    │           │   │       ├── orbis-sensualium-pictus2.jpg
    │           │   │       ├── pythagorean-triangle.png
    │           │   │       ├── spring-ai-chat-api.jpg
    │           │   │       ├── spring-ai-chat-completions-clients.jpg
    │           │   │       ├── spring-ai-concepts-model-types.jpg
    │           │   │       ├── spring-ai-concepts-tokens.png
    │           │   │       ├── spring-ai-deepseek-integration.jpg
    │           │   │       ├── spring-ai-dependencies.png
    │           │   │       ├── spring-ai-document1-api.jpg
    │           │   │       ├── spring-ai-embeddings.jpg
    │           │   │       ├── spring-ai-generic-model-api.jpg
    │           │   │       ├── spring-ai-groq-functions-2.jpg
    │           │   │       ├── spring-ai-groq-integration.jpg
    │           │   │       ├── spring-ai-integration-diagram-3.svg
    │           │   │       ├── spring-ai-mcp-architecture.jpg
    │           │   │       ├── spring-ai-message-api.jpg
    │           │   │       ├── spring-ai-nvidia-function-calling.jpg
    │           │   │       ├── spring-ai-nvidia-llm-api-1.jpg
    │           │   │       ├── spring-ai-nvidia-registration.jpg
    │           │   │       ├── spring-ai-ollama-over-openai.jpg
    │           │   │       ├── spring-ai-perplexity-integration.jpg
    │           │   │       ├── spring-ai-prompt-stuffing.jpg
    │           │   │       ├── spring-ai-rag.jpg
    │           │   │       ├── spring_ai_logo_with_text.svg
    │           │   │       ├── structured-output-api.jpg
    │           │   │       ├── structured-output-architecture.jpg
    │           │   │       ├── structured-output-hierarchy4.jpg
    │           │   │       ├── test.pdf.png
    │           │   │       ├── test.video.jpeg
    │           │   │       ├── tools
    │           │   │       │   ├── framework-manager.jpg
    │           │   │       │   ├── framework-manager.png
    │           │   │       │   ├── return-direct.jpg
    │           │   │       │   ├── return-direct.png
    │           │   │       │   ├── tool-calling-01.jpg
    │           │   │       │   ├── tool-context.jpg
    │           │   │       │   └── tool-context.png
    │           │   │       ├── vector_2d_coordinates.png
    │           │   │       ├── vector_similarity.png
    │           │   │       ├── vertex-ai-chat-low-level-api.jpg
    │           │   │       ├── vertex-ai-gemini-native-api.jpg
    │           │   │       └── yes.svg
    │           │   │   ├── nav.adoc
    │           │   │   └── pages
    │           │   │       ├── api
    │           │   │           ├── advisors.adoc
    │           │   │           ├── aimetadata.adoc
    │           │   │           ├── audio
    │           │   │           │   ├── speech.adoc
    │           │   │           │   ├── speech
    │           │   │           │   │   ├── elevenlabs-speech.adoc
    │           │   │           │   │   └── openai-speech.adoc
    │           │   │           │   ├── transcriptions.adoc
    │           │   │           │   └── transcriptions
    │           │   │           │   │   ├── azure-openai-transcriptions.adoc
    │           │   │           │   │   └── openai-transcriptions.adoc
    │           │   │           ├── bedrock-chat.adoc
    │           │   │           ├── bedrock.adoc
    │           │   │           ├── chat-memory.adoc
    │           │   │           ├── chat
    │           │   │           │   ├── anthropic-chat.adoc
    │           │   │           │   ├── azure-openai-chat.adoc
    │           │   │           │   ├── bedrock-converse.adoc
    │           │   │           │   ├── comparison.adoc
    │           │   │           │   ├── deepseek-chat.adoc
    │           │   │           │   ├── dmr-chat.adoc
    │           │   │           │   ├── google-vertexai.adoc
    │           │   │           │   ├── groq-chat.adoc
    │           │   │           │   ├── huggingface.adoc
    │           │   │           │   ├── minimax-chat.adoc
    │           │   │           │   ├── mistralai-chat.adoc
    │           │   │           │   ├── moonshot-chat.adoc
    │           │   │           │   ├── nvidia-chat.adoc
    │           │   │           │   ├── oci-genai
    │           │   │           │   │   └── cohere-chat.adoc
    │           │   │           │   ├── ollama-chat.adoc
    │           │   │           │   ├── openai-chat.adoc
    │           │   │           │   ├── perplexity-chat.adoc
    │           │   │           │   ├── prompt-engineering-patterns.adoc
    │           │   │           │   ├── qianfan-chat.adoc
    │           │   │           │   ├── vertexai-gemini-chat.adoc
    │           │   │           │   └── zhipuai-chat.adoc
    │           │   │           ├── chatclient.adoc
    │           │   │           ├── chatmodel.adoc
    │           │   │           ├── cloud-bindings.adoc
    │           │   │           ├── docker-compose.adoc
    │           │   │           ├── effective-agents.adoc
    │           │   │           ├── embeddings.adoc
    │           │   │           ├── embeddings
    │           │   │           │   ├── azure-openai-embeddings.adoc
    │           │   │           │   ├── bedrock-cohere-embedding.adoc
    │           │   │           │   ├── bedrock-titan-embedding.adoc
    │           │   │           │   ├── minimax-embeddings.adoc
    │           │   │           │   ├── mistralai-embeddings.adoc
    │           │   │           │   ├── oci-genai-embeddings.adoc
    │           │   │           │   ├── ollama-embeddings.adoc
    │           │   │           │   ├── onnx.adoc
    │           │   │           │   ├── openai-embeddings.adoc
    │           │   │           │   ├── postgresml-embeddings.adoc
    │           │   │           │   ├── qianfan-embeddings.adoc
    │           │   │           │   ├── vertexai-embeddings-multimodal.adoc
    │           │   │           │   ├── vertexai-embeddings-text.adoc
    │           │   │           │   └── zhipuai-embeddings.adoc
    │           │   │           ├── etl-pipeline.adoc
    │           │   │           ├── generic-model.adoc
    │           │   │           ├── image
    │           │   │           │   ├── azure-openai-image.adoc
    │           │   │           │   ├── openai-image.adoc
    │           │   │           │   ├── qianfan-image.adoc
    │           │   │           │   ├── stabilityai-image.adoc
    │           │   │           │   └── zhipuai-image.adoc
    │           │   │           ├── imageclient.adoc
    │           │   │           ├── index.adoc
    │           │   │           ├── mcp
    │           │   │           │   ├── mcp-client-boot-starter-docs.adoc
    │           │   │           │   ├── mcp-helpers.adoc
    │           │   │           │   ├── mcp-overview.adoc
    │           │   │           │   └── mcp-server-boot-starter-docs.adoc
    │           │   │           ├── moderation
    │           │   │           │   ├── mistral-ai-moderation.adoc
    │           │   │           │   └── openai-moderation.adoc
    │           │   │           ├── multimodality.adoc
    │           │   │           ├── prompt.adoc
    │           │   │           ├── retrieval-augmented-generation.adoc
    │           │   │           ├── speech.adoc
    │           │   │           ├── structured-output-converter.adoc
    │           │   │           ├── testcontainers.adoc
    │           │   │           ├── testing.adoc
    │           │   │           ├── tools-migration.adoc
    │           │   │           ├── tools.adoc
    │           │   │           ├── transcriptions.adoc
    │           │   │           ├── usage-handling.adoc
    │           │   │           ├── vectordbs.adoc
    │           │   │           └── vectordbs
    │           │   │           │   ├── apache-cassandra.adoc
    │           │   │           │   ├── azure-cosmos-db.adoc
    │           │   │           │   ├── azure.adoc
    │           │   │           │   ├── chroma.adoc
    │           │   │           │   ├── coherence.adoc
    │           │   │           │   ├── couchbase.adoc
    │           │   │           │   ├── elasticsearch.adoc
    │           │   │           │   ├── gemfire.adoc
    │           │   │           │   ├── hana.adoc
    │           │   │           │   ├── hanadb-provision-a-trial-account.adoc
    │           │   │           │   ├── mariadb.adoc
    │           │   │           │   ├── milvus.adoc
    │           │   │           │   ├── mongodb.adoc
    │           │   │           │   ├── neo4j.adoc
    │           │   │           │   ├── opensearch.adoc
    │           │   │           │   ├── oracle.adoc
    │           │   │           │   ├── pgvector.adoc
    │           │   │           │   ├── pinecone.adoc
    │           │   │           │   ├── qdrant.adoc
    │           │   │           │   ├── redis.adoc
    │           │   │           │   ├── typesense.adoc
    │           │   │           │   ├── understand-vectordbs.adoc
    │           │   │           │   └── weaviate.adoc
    │           │   │       ├── concepts.adoc
    │           │   │       ├── contribution-guidelines.adoc
    │           │   │       ├── getting-started.adoc
    │           │   │       ├── glossary.adoc
    │           │   │       ├── index.adoc
    │           │   │       ├── observability
    │           │   │           └── index.adoc
    │           │   │       ├── providers
    │           │   │           └── huggingface
    │           │   │           │   └── index.adoc
    │           │   │       └── upgrade-notes.adoc
    │           └── resources
    │           │   └── antora-resources
    │           │       └── antora.yml
    │       ├── asciidoc
    │           └── mcp.md
    │       └── javadoc
    │           └── overview.html
├── spring-ai-integration-tests
    ├── pom.xml
    └── src
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           └── integration
    │           │               └── tests
    │           │                   ├── TestApplication.java
    │           │                   ├── TestcontainersConfiguration.java
    │           │                   ├── client
    │           │                       └── advisor
    │           │                       │   ├── QuestionAnswerAdvisorIT.java
    │           │                       │   ├── QuestionAnswerAdvisorStreamIT.java
    │           │                       │   └── RetrievalAugmentationAdvisorIT.java
    │           │                   ├── rag
    │           │                       ├── generation
    │           │                       │   └── augmentation
    │           │                       │   │   └── ContextualQueryAugmenterIT.java
    │           │                       ├── preretrieval
    │           │                       │   └── query
    │           │                       │   │   ├── expansion
    │           │                       │   │       └── MultiQueryExpanderIT.java
    │           │                       │   │   └── transformation
    │           │                       │   │       ├── CompressionQueryTransformerIT.java
    │           │                       │   │       ├── RewriteQueryTransformerIT.java
    │           │                       │   │       └── TranslationQueryTransformerIT.java
    │           │                       └── retrieval
    │           │                       │   └── search
    │           │                       │       └── VectorStoreDocumentRetrieverIT.java
    │           │                   ├── tool
    │           │                       ├── FunctionToolCallbackTests.java
    │           │                       ├── MethodToolCallbackTests.java
    │           │                       ├── ToolCallingManagerTests.java
    │           │                       └── domain
    │           │                       │   ├── Author.java
    │           │                       │   ├── Book.java
    │           │                       │   └── BookService.java
    │           │                   └── vectorstore
    │           │                       └── SimpleVectorStoreIT.java
    │       └── resources
    │           ├── application.yml
    │           └── documents
    │               └── knowledge-base.md
├── spring-ai-model
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           ├── aot
    │       │   │               ├── AiRuntimeHints.java
    │       │   │               ├── KnuddelsRuntimeHints.java
    │       │   │               ├── SpringAiCoreRuntimeHints.java
    │       │   │               ├── ToolBeanRegistrationAotProcessor.java
    │       │   │               ├── ToolRuntimeHints.java
    │       │   │               └── package-info.java
    │       │   │           ├── audio
    │       │   │               ├── transcription
    │       │   │               │   ├── AudioTranscription.java
    │       │   │               │   ├── AudioTranscriptionMetadata.java
    │       │   │               │   ├── AudioTranscriptionOptions.java
    │       │   │               │   ├── AudioTranscriptionPrompt.java
    │       │   │               │   ├── AudioTranscriptionResponse.java
    │       │   │               │   ├── AudioTranscriptionResponseMetadata.java
    │       │   │               │   └── TranscriptionModel.java
    │       │   │               └── tts
    │       │   │               │   ├── DefaultTextToSpeechOptions.java
    │       │   │               │   ├── Speech.java
    │       │   │               │   ├── StreamingTextToSpeechModel.java
    │       │   │               │   ├── TextToSpeechMessage.java
    │       │   │               │   ├── TextToSpeechModel.java
    │       │   │               │   ├── TextToSpeechOptions.java
    │       │   │               │   ├── TextToSpeechPrompt.java
    │       │   │               │   ├── TextToSpeechResponse.java
    │       │   │               │   └── TextToSpeechResponseMetadata.java
    │       │   │           ├── chat
    │       │   │               ├── memory
    │       │   │               │   ├── ChatMemory.java
    │       │   │               │   ├── ChatMemoryRepository.java
    │       │   │               │   ├── InMemoryChatMemoryRepository.java
    │       │   │               │   ├── MessageWindowChatMemory.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── messages
    │       │   │               │   ├── AbstractMessage.java
    │       │   │               │   ├── AssistantMessage.java
    │       │   │               │   ├── Message.java
    │       │   │               │   ├── MessageType.java
    │       │   │               │   ├── MessageUtils.java
    │       │   │               │   ├── SystemMessage.java
    │       │   │               │   ├── ToolResponseMessage.java
    │       │   │               │   ├── UserMessage.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── metadata
    │       │   │               │   ├── ChatGenerationMetadata.java
    │       │   │               │   ├── ChatResponseMetadata.java
    │       │   │               │   ├── DefaultChatGenerationMetadata.java
    │       │   │               │   ├── DefaultChatGenerationMetadataBuilder.java
    │       │   │               │   ├── DefaultUsage.java
    │       │   │               │   ├── EmptyRateLimit.java
    │       │   │               │   ├── EmptyUsage.java
    │       │   │               │   ├── PromptMetadata.java
    │       │   │               │   ├── RateLimit.java
    │       │   │               │   └── Usage.java
    │       │   │               ├── model
    │       │   │               │   ├── ChatModel.java
    │       │   │               │   ├── ChatResponse.java
    │       │   │               │   ├── Generation.java
    │       │   │               │   ├── MessageAggregator.java
    │       │   │               │   ├── StreamingChatModel.java
    │       │   │               │   └── ToolContext.java
    │       │   │               ├── observation
    │       │   │               │   ├── ChatModelCompletionObservationHandler.java
    │       │   │               │   ├── ChatModelMeterObservationHandler.java
    │       │   │               │   ├── ChatModelObservationContext.java
    │       │   │               │   ├── ChatModelObservationConvention.java
    │       │   │               │   ├── ChatModelObservationDocumentation.java
    │       │   │               │   ├── ChatModelPromptContentObservationHandler.java
    │       │   │               │   ├── DefaultChatModelObservationConvention.java
    │       │   │               │   └── package-info.java
    │       │   │               └── prompt
    │       │   │               │   ├── AssistantPromptTemplate.java
    │       │   │               │   ├── ChatOptions.java
    │       │   │               │   ├── ChatPromptTemplate.java
    │       │   │               │   ├── DefaultChatOptions.java
    │       │   │               │   ├── DefaultChatOptionsBuilder.java
    │       │   │               │   ├── FunctionPromptTemplate.java
    │       │   │               │   ├── Prompt.java
    │       │   │               │   ├── PromptTemplate.java
    │       │   │               │   ├── PromptTemplateActions.java
    │       │   │               │   ├── PromptTemplateChatActions.java
    │       │   │               │   ├── PromptTemplateMessageActions.java
    │       │   │               │   ├── PromptTemplateStringActions.java
    │       │   │               │   └── SystemPromptTemplate.java
    │       │   │           ├── converter
    │       │   │               ├── AbstractConversionServiceOutputConverter.java
    │       │   │               ├── AbstractMessageOutputConverter.java
    │       │   │               ├── BeanOutputConverter.java
    │       │   │               ├── FormatProvider.java
    │       │   │               ├── ListOutputConverter.java
    │       │   │               ├── MapOutputConverter.java
    │       │   │               ├── README.md
    │       │   │               └── StructuredOutputConverter.java
    │       │   │           ├── embedding
    │       │   │               ├── AbstractEmbeddingModel.java
    │       │   │               ├── DocumentEmbeddingModel.java
    │       │   │               ├── DocumentEmbeddingRequest.java
    │       │   │               ├── Embedding.java
    │       │   │               ├── EmbeddingModel.java
    │       │   │               ├── EmbeddingOptions.java
    │       │   │               ├── EmbeddingOptionsBuilder.java
    │       │   │               ├── EmbeddingRequest.java
    │       │   │               ├── EmbeddingResponse.java
    │       │   │               ├── EmbeddingResponseMetadata.java
    │       │   │               ├── EmbeddingResultMetadata.java
    │       │   │               ├── observation
    │       │   │               │   ├── DefaultEmbeddingModelObservationConvention.java
    │       │   │               │   ├── EmbeddingModelMeterObservationHandler.java
    │       │   │               │   ├── EmbeddingModelObservationContext.java
    │       │   │               │   ├── EmbeddingModelObservationConvention.java
    │       │   │               │   ├── EmbeddingModelObservationDocumentation.java
    │       │   │               │   └── package-info.java
    │       │   │               └── package-info.java
    │       │   │           ├── image
    │       │   │               ├── Image.java
    │       │   │               ├── ImageGeneration.java
    │       │   │               ├── ImageGenerationMetadata.java
    │       │   │               ├── ImageMessage.java
    │       │   │               ├── ImageModel.java
    │       │   │               ├── ImageOptions.java
    │       │   │               ├── ImageOptionsBuilder.java
    │       │   │               ├── ImagePrompt.java
    │       │   │               ├── ImageResponse.java
    │       │   │               ├── ImageResponseMetadata.java
    │       │   │               └── observation
    │       │   │               │   ├── DefaultImageModelObservationConvention.java
    │       │   │               │   ├── ImageModelObservationContext.java
    │       │   │               │   ├── ImageModelObservationConvention.java
    │       │   │               │   ├── ImageModelObservationDocumentation.java
    │       │   │               │   ├── ImageModelPromptContentObservationHandler.java
    │       │   │               │   └── package-info.java
    │       │   │           ├── model
    │       │   │               ├── AbstractResponseMetadata.java
    │       │   │               ├── ApiKey.java
    │       │   │               ├── ChatModelDescription.java
    │       │   │               ├── EmbeddingModelDescription.java
    │       │   │               ├── EmbeddingUtils.java
    │       │   │               ├── KotlinModule.java
    │       │   │               ├── Model.java
    │       │   │               ├── ModelDescription.java
    │       │   │               ├── ModelOptions.java
    │       │   │               ├── ModelOptionsUtils.java
    │       │   │               ├── ModelRequest.java
    │       │   │               ├── ModelResponse.java
    │       │   │               ├── ModelResult.java
    │       │   │               ├── MutableResponseMetadata.java
    │       │   │               ├── NoopApiKey.java
    │       │   │               ├── ResponseMetadata.java
    │       │   │               ├── ResultMetadata.java
    │       │   │               ├── SimpleApiKey.java
    │       │   │               ├── SpringAIModelProperties.java
    │       │   │               ├── SpringAIModels.java
    │       │   │               ├── StreamingModel.java
    │       │   │               ├── observation
    │       │   │               │   ├── ErrorLoggingObservationHandler.java
    │       │   │               │   ├── ModelObservationContext.java
    │       │   │               │   ├── ModelUsageMetricsGenerator.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── package-info.java
    │       │   │               ├── tool
    │       │   │               │   ├── DefaultToolCallingChatOptions.java
    │       │   │               │   ├── DefaultToolCallingManager.java
    │       │   │               │   ├── DefaultToolExecutionEligibilityPredicate.java
    │       │   │               │   ├── DefaultToolExecutionResult.java
    │       │   │               │   ├── ToolCallingChatOptions.java
    │       │   │               │   ├── ToolCallingManager.java
    │       │   │               │   ├── ToolExecutionEligibilityChecker.java
    │       │   │               │   ├── ToolExecutionEligibilityPredicate.java
    │       │   │               │   ├── ToolExecutionResult.java
    │       │   │               │   ├── internal
    │       │   │               │   │   └── ToolCallReactiveContextHolder.java
    │       │   │               │   └── package-info.java
    │       │   │               └── transformer
    │       │   │               │   ├── KeywordMetadataEnricher.java
    │       │   │               │   └── SummaryMetadataEnricher.java
    │       │   │           ├── moderation
    │       │   │               ├── Categories.java
    │       │   │               ├── CategoryScores.java
    │       │   │               ├── Generation.java
    │       │   │               ├── Moderation.java
    │       │   │               ├── ModerationGenerationMetadata.java
    │       │   │               ├── ModerationMessage.java
    │       │   │               ├── ModerationModel.java
    │       │   │               ├── ModerationOptions.java
    │       │   │               ├── ModerationOptionsBuilder.java
    │       │   │               ├── ModerationPrompt.java
    │       │   │               ├── ModerationResponse.java
    │       │   │               ├── ModerationResponseMetadata.java
    │       │   │               └── ModerationResult.java
    │       │   │           ├── support
    │       │   │               ├── ToolCallbacks.java
    │       │   │               └── UsageCalculator.java
    │       │   │           ├── tool
    │       │   │               ├── StaticToolCallbackProvider.java
    │       │   │               ├── ToolCallback.java
    │       │   │               ├── ToolCallbackProvider.java
    │       │   │               ├── annotation
    │       │   │               │   ├── Tool.java
    │       │   │               │   ├── ToolParam.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── definition
    │       │   │               │   ├── DefaultToolDefinition.java
    │       │   │               │   ├── ToolDefinition.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── execution
    │       │   │               │   ├── DefaultToolCallResultConverter.java
    │       │   │               │   ├── DefaultToolExecutionExceptionProcessor.java
    │       │   │               │   ├── ToolCallResultConverter.java
    │       │   │               │   ├── ToolExecutionException.java
    │       │   │               │   ├── ToolExecutionExceptionProcessor.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── function
    │       │   │               │   ├── FunctionToolCallback.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── metadata
    │       │   │               │   ├── DefaultToolMetadata.java
    │       │   │               │   ├── ToolMetadata.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── method
    │       │   │               │   ├── MethodToolCallback.java
    │       │   │               │   ├── MethodToolCallbackProvider.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── observation
    │       │   │               │   ├── DefaultToolCallingObservationConvention.java
    │       │   │               │   ├── ToolCallingContentObservationFilter.java
    │       │   │               │   ├── ToolCallingObservationContext.java
    │       │   │               │   ├── ToolCallingObservationConvention.java
    │       │   │               │   ├── ToolCallingObservationDocumentation.java
    │       │   │               │   └── package-info.java
    │       │   │               ├── package-info.java
    │       │   │               ├── resolution
    │       │   │               │   ├── DelegatingToolCallbackResolver.java
    │       │   │               │   ├── SpringBeanToolCallbackResolver.java
    │       │   │               │   ├── StaticToolCallbackResolver.java
    │       │   │               │   ├── ToolCallbackResolver.java
    │       │   │               │   ├── TypeResolverHelper.java
    │       │   │               │   └── package-info.java
    │       │   │               └── support
    │       │   │               │   ├── ToolDefinitions.java
    │       │   │               │   ├── ToolUtils.java
    │       │   │               │   └── package-info.java
    │       │   │           └── util
    │       │   │               └── json
    │       │   │                   ├── JsonParser.java
    │       │   │                   ├── package-info.java
    │       │   │                   └── schema
    │       │   │                       ├── JsonSchemaGenerator.java
    │       │   │                       ├── SchemaType.java
    │       │   │                       ├── SpringAiSchemaModule.java
    │       │   │                       └── package-info.java
    │       └── resources
    │       │   ├── META-INF
    │       │       └── spring
    │       │       │   └── aot.factories
    │       │   └── embedding
    │       │       └── embedding-model-dimensions.properties
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           ├── aot
    │           │               ├── AiRuntimeHintsTests.java
    │           │               ├── KnuddelsRuntimeHintsTest.java
    │           │               ├── SpringAiCoreRuntimeHintsTest.java
    │           │               ├── ToolBeanRegistrationAotProcessorTests.java
    │           │               └── ToolRuntimeHintsTests.java
    │           │           ├── audio
    │           │               └── tts
    │           │               │   └── DefaultTextToSpeechOptionsTests.java
    │           │           ├── chat
    │           │               ├── ChatModelTests.java
    │           │               ├── memory
    │           │               │   ├── InMemoryChatMemoryRepositoryTests.java
    │           │               │   └── MessageWindowChatMemoryTests.java
    │           │               ├── messages
    │           │               │   ├── MessageUtilsTests.java
    │           │               │   ├── SystemMessageTests.java
    │           │               │   └── UserMessageTests.java
    │           │               ├── metadata
    │           │               │   └── DefaultUsageTests.java
    │           │               ├── model
    │           │               │   ├── ChatResponseTests.java
    │           │               │   └── GenerationTests.java
    │           │               ├── observation
    │           │               │   ├── ChatModelCompletionObservationHandlerTests.java
    │           │               │   ├── ChatModelMeterObservationHandlerTests.java
    │           │               │   ├── ChatModelObservationContextTests.java
    │           │               │   ├── ChatModelPromptContentObservationHandlerTests.java
    │           │               │   └── DefaultChatModelObservationConventionTests.java
    │           │               └── prompt
    │           │               │   ├── ChatOptionsBuilderTests.java
    │           │               │   ├── PromptTemplateBuilderTests.java
    │           │               │   ├── PromptTemplateTests.java
    │           │               │   ├── PromptTests.java
    │           │               │   └── SystemPromptTemplateTests.java
    │           │           ├── converter
    │           │               ├── BeanOutputConverterTest.java
    │           │               └── ListOutputConverterTest.java
    │           │           ├── embedding
    │           │               ├── AbstractEmbeddingModelTests.java
    │           │               └── observation
    │           │               │   ├── DefaultEmbeddingModelObservationConventionTests.java
    │           │               │   ├── EmbeddingModelMeterObservationHandlerTests.java
    │           │               │   └── EmbeddingModelObservationContextTests.java
    │           │           ├── image
    │           │               └── observation
    │           │               │   ├── DefaultImageModelObservationConventionTests.java
    │           │               │   ├── ImageModelObservationContextTests.java
    │           │               │   └── ImageModelPromptContentObservationHandlerTests.java
    │           │           ├── metadata
    │           │               └── UsageTests.java
    │           │           ├── model
    │           │               ├── MediaTests.java
    │           │               ├── ModelOptionsUtilsTests.java
    │           │               ├── observation
    │           │               │   ├── ModelObservationContextTests.java
    │           │               │   └── ModelUsageMetricsGeneratorTests.java
    │           │               └── tool
    │           │               │   ├── DefaultToolCallingChatOptionsTests.java
    │           │               │   ├── DefaultToolCallingManagerIT.java
    │           │               │   ├── DefaultToolCallingManagerTests.java
    │           │               │   ├── DefaultToolExecutionEligibilityPredicateTests.java
    │           │               │   ├── DefaultToolExecutionResultTests.java
    │           │               │   ├── ToolCallingChatOptionsTests.java
    │           │               │   ├── ToolExecutionEligibilityPredicateTests.java
    │           │               │   └── ToolExecutionResultTests.java
    │           │           ├── tool
    │           │               ├── execution
    │           │               │   ├── DefaultToolCallResultConverterTests.java
    │           │               │   └── DefaultToolExecutionExceptionProcessorTests.java
    │           │               ├── method
    │           │               │   ├── MethodToolCallbackGenericTypesTest.java
    │           │               │   └── MethodToolCallbackProviderTests.java
    │           │               └── observation
    │           │               │   ├── DefaultToolCallingObservationConventionTests.java
    │           │               │   ├── ToolCallingContentObservationFilterTests.java
    │           │               │   └── ToolCallingObservationContextTests.java
    │           │           └── util
    │           │               ├── TextBlockAssertion.java
    │           │               └── json
    │           │                   ├── JsonParserTests.java
    │           │                   └── JsonSchemaGeneratorTests.java
    │       ├── kotlin
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           ├── model
    │           │               └── ModelOptionsUtilsTests.kt
    │           │           └── tool
    │           │               └── resolution
    │           │                   ├── SpringBeanToolCallbackResolverKotlinTests.kt
    │           │                   ├── StandaloneWeatherKotlinFunction.kt
    │           │                   ├── TypeResolverHelperKotlinIT.kt
    │           │                   └── kotlinconfig
    │           │                       └── TypeResolverHelperKotlinConfiguration.kt
    │       └── resources
    │           ├── logback.xml
    │           ├── prompt-system.txt
    │           └── prompt-user.txt
├── spring-ai-rag
    ├── pom.xml
    └── src
    │   ├── main
    │       └── java
    │       │   └── org
    │       │       └── springframework
    │       │           └── ai
    │       │               └── rag
    │       │                   ├── Query.java
    │       │                   ├── advisor
    │       │                       ├── RetrievalAugmentationAdvisor.java
    │       │                       └── package-info.java
    │       │                   ├── generation
    │       │                       ├── augmentation
    │       │                       │   ├── ContextualQueryAugmenter.java
    │       │                       │   ├── QueryAugmenter.java
    │       │                       │   └── package-info.java
    │       │                       └── package-info.java
    │       │                   ├── package-info.java
    │       │                   ├── postretrieval
    │       │                       ├── document
    │       │                       │   ├── DocumentPostProcessor.java
    │       │                       │   └── package-info.java
    │       │                       └── package-info.java
    │       │                   ├── preretrieval
    │       │                       ├── package-info.java
    │       │                       └── query
    │       │                       │   ├── expansion
    │       │                       │       ├── MultiQueryExpander.java
    │       │                       │       ├── QueryExpander.java
    │       │                       │       └── package-info.java
    │       │                       │   └── transformation
    │       │                       │       ├── CompressionQueryTransformer.java
    │       │                       │       ├── QueryTransformer.java
    │       │                       │       ├── RewriteQueryTransformer.java
    │       │                       │       ├── TranslationQueryTransformer.java
    │       │                       │       └── package-info.java
    │       │                   ├── retrieval
    │       │                       ├── join
    │       │                       │   ├── ConcatenationDocumentJoiner.java
    │       │                       │   ├── DocumentJoiner.java
    │       │                       │   └── package-info.java
    │       │                       └── search
    │       │                       │   ├── DocumentRetriever.java
    │       │                       │   ├── VectorStoreDocumentRetriever.java
    │       │                       │   └── package-info.java
    │       │                   └── util
    │       │                       └── PromptAssert.java
    │   └── test
    │       └── java
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       ├── chat
    │                           └── client
    │                           │   └── advisor
    │                           │       └── RetrievalAugmentationAdvisorTests.java
    │                       └── rag
    │                           ├── QueryTests.java
    │                           ├── generation
    │                               └── augmentation
    │                               │   └── ContextualQueryAugmenterTests.java
    │                           ├── preretrieval
    │                               └── query
    │                               │   ├── expansion
    │                               │       └── MultiQueryExpanderTests.java
    │                               │   └── transformation
    │                               │       ├── CompressionQueryTransformerTests.java
    │                               │       ├── RewriteQueryTransformerTests.java
    │                               │       └── TranslationQueryTransformerTests.java
    │                           ├── retrieval
    │                               ├── join
    │                               │   └── ConcatenationDocumentJoinerTests.java
    │                               └── search
    │                               │   └── VectorStoreDocumentRetrieverTests.java
    │                           └── util
    │                               └── PromptAssertTests.java
├── spring-ai-retry
    ├── pom.xml
    └── src
    │   └── main
    │       └── java
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       └── retry
    │                           ├── NonTransientAiException.java
    │                           ├── RetryUtils.java
    │                           └── TransientAiException.java
├── spring-ai-spring-boot-docker-compose
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           └── docker
    │       │   │               └── compose
    │       │   │                   └── service
    │       │   │                       └── connection
    │       │   │                           ├── chroma
    │       │   │                               ├── ChromaDockerComposeConnectionDetailsFactory.java
    │       │   │                               └── ChromaEnvironment.java
    │       │   │                           ├── mongo
    │       │   │                               └── MongoDbAtlasLocalDockerComposeConnectionDetailsFactory.java
    │       │   │                           ├── ollama
    │       │   │                               └── OllamaDockerComposeConnectionDetailsFactory.java
    │       │   │                           ├── opensearch
    │       │   │                               ├── AwsOpenSearchDockerComposeConnectionDetailsFactory.java
    │       │   │                               ├── AwsOpenSearchEnvironment.java
    │       │   │                               ├── OpenSearchDockerComposeConnectionDetailsFactory.java
    │       │   │                               └── OpenSearchEnvironment.java
    │       │   │                           ├── qdrant
    │       │   │                               ├── QdrantDockerComposeConnectionDetailsFactory.java
    │       │   │                               └── QdrantEnvironment.java
    │       │   │                           ├── typesense
    │       │   │                               ├── TypesenseDockerComposeConnectionDetailsFactory.java
    │       │   │                               └── TypesenseEnvironment.java
    │       │   │                           └── weaviate
    │       │   │                               └── WeaviateDockerComposeConnectionDetailsFactory.java
    │       └── resources
    │       │   └── META-INF
    │       │       └── spring.factories
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       ├── ai
    │           │           └── docker
    │           │           │   └── compose
    │           │           │       └── service
    │           │           │           └── connection
    │           │           │               ├── chroma
    │           │           │                   ├── ChromaDockerComposeConnectionDetailsFactoryIT.java
    │           │           │                   ├── ChromaEnvironmentTests.java
    │           │           │                   └── ChromaWithTokenDockerComposeConnectionDetailsFactoryIT.java
    │           │           │               ├── mongo
    │           │           │                   └── MongoDbAtlasLocalDockerComposeConnectionDetailsFactoryIT.java
    │           │           │               ├── ollama
    │           │           │                   └── OllamaDockerComposeConnectionDetailsFactoryIT.java
    │           │           │               ├── opensearch
    │           │           │                   ├── AwsOpenSearchDockerComposeConnectionDetailsFactoryIT.java
    │           │           │                   ├── OpenSearchDockerComposeConnectionDetailsFactoryIT.java
    │           │           │                   └── OpenSearchEnvironmentTests.java
    │           │           │               ├── qdrant
    │           │           │                   └── QdrantDockerComposeConnectionDetailsFactoryIT.java
    │           │           │               ├── typesense
    │           │           │                   ├── TypesenseDockerComposeConnectionDetailsFactoryIT.java
    │           │           │                   └── TypesenseEnvironmentTests.java
    │           │           │               └── weaviate
    │           │           │                   └── WeaviateDockerComposeConnectionDetailsFactoryIT.java
    │           │       └── boot
    │           │           ├── docker
    │           │               └── compose
    │           │               │   └── service
    │           │               │       └── connection
    │           │               │           └── test
    │           │               │               └── AbstractDockerComposeIT.java
    │           │           └── testsupport
    │           │               ├── DisabledIfProcessUnavailable.java
    │           │               ├── DisabledIfProcessUnavailableCondition.java
    │           │               └── DisabledIfProcessUnavailables.java
    │       └── resources
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       └── docker
    │                           └── compose
    │                               └── service
    │                                   └── connection
    │                                       ├── chroma
    │                                           ├── chroma-compose.yaml
    │                                           └── chroma-with-token-compose.yaml
    │                                       ├── mongo
    │                                           └── mongo-compose.yaml
    │                                       ├── ollama
    │                                           └── ollama-compose.yaml
    │                                       ├── opensearch
    │                                           ├── localstack-compose.yaml
    │                                           └── opensearch-compose.yaml
    │                                       ├── qdrant
    │                                           └── qdrant-compose.yaml
    │                                       ├── typesense
    │                                           └── typesense-compose.yaml
    │                                       └── weaviate
    │                                           └── weaviate-compose.yaml
├── spring-ai-spring-boot-starters
    ├── spring-ai-starter-mcp-client-webflux
    │   └── pom.xml
    ├── spring-ai-starter-mcp-client
    │   └── pom.xml
    ├── spring-ai-starter-mcp-server-webflux
    │   └── pom.xml
    ├── spring-ai-starter-mcp-server-webmvc
    │   └── pom.xml
    ├── spring-ai-starter-mcp-server
    │   └── pom.xml
    ├── spring-ai-starter-model-anthropic
    │   └── pom.xml
    ├── spring-ai-starter-model-azure-openai
    │   └── pom.xml
    ├── spring-ai-starter-model-bedrock-converse
    │   └── pom.xml
    ├── spring-ai-starter-model-bedrock
    │   └── pom.xml
    ├── spring-ai-starter-model-chat-memory-repository-cassandra
    │   └── pom.xml
    ├── spring-ai-starter-model-chat-memory-repository-jdbc
    │   └── pom.xml
    ├── spring-ai-starter-model-chat-memory-repository-neo4j
    │   └── pom.xml
    ├── spring-ai-starter-model-chat-memory
    │   └── pom.xml
    ├── spring-ai-starter-model-deepseek
    │   └── pom.xml
    ├── spring-ai-starter-model-elevenlabs
    │   └── pom.xml
    ├── spring-ai-starter-model-huggingface
    │   └── pom.xml
    ├── spring-ai-starter-model-minimax
    │   └── pom.xml
    ├── spring-ai-starter-model-mistral-ai
    │   └── pom.xml
    ├── spring-ai-starter-model-oci-genai
    │   └── pom.xml
    ├── spring-ai-starter-model-ollama
    │   └── pom.xml
    ├── spring-ai-starter-model-openai
    │   └── pom.xml
    ├── spring-ai-starter-model-postgresml-embedding
    │   └── pom.xml
    ├── spring-ai-starter-model-stability-ai
    │   └── pom.xml
    ├── spring-ai-starter-model-transformers
    │   └── pom.xml
    ├── spring-ai-starter-model-vertex-ai-embedding
    │   └── pom.xml
    ├── spring-ai-starter-model-vertex-ai-gemini
    │   └── pom.xml
    ├── spring-ai-starter-model-zhipuai
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-aws-opensearch
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-azure-cosmos-db
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-azure
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-cassandra
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-chroma
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-couchbase
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-elasticsearch
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-gemfire
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-mariadb
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-milvus
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-mongodb-atlas
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-neo4j
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-opensearch
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-oracle
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-pgvector
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-pinecone
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-qdrant
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-redis
    │   └── pom.xml
    ├── spring-ai-starter-vector-store-typesense
    │   └── pom.xml
    └── spring-ai-starter-vector-store-weaviate
    │   └── pom.xml
├── spring-ai-spring-boot-testcontainers
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           └── testcontainers
    │       │   │               └── service
    │       │   │                   └── connection
    │       │   │                       ├── chroma
    │       │   │                           └── ChromaContainerConnectionDetailsFactory.java
    │       │   │                       ├── milvus
    │       │   │                           └── MilvusContainerConnectionDetailsFactory.java
    │       │   │                       ├── mongo
    │       │   │                           └── MongoDbAtlasLocalContainerConnectionDetailsFactory.java
    │       │   │                       ├── ollama
    │       │   │                           └── OllamaContainerConnectionDetailsFactory.java
    │       │   │                       ├── opensearch
    │       │   │                           ├── AwsOpenSearchContainerConnectionDetailsFactory.java
    │       │   │                           └── OpenSearchContainerConnectionDetailsFactory.java
    │       │   │                       ├── qdrant
    │       │   │                           └── QdrantContainerConnectionDetailsFactory.java
    │       │   │                       ├── typesense
    │       │   │                           └── TypesenseContainerConnectionDetailsFactory.java
    │       │   │                       └── weaviate
    │       │   │                           └── WeaviateContainerConnectionDetailsFactory.java
    │       └── resources
    │       │   └── META-INF
    │       │       └── spring.factories
    │   └── test
    │       └── java
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       └── testcontainers
    │                           └── service
    │                               └── connection
    │                                   ├── chroma
    │                                       ├── ChromaContainerConnectionDetailsFactoryIT.java
    │                                       ├── ChromaImage.java
    │                                       ├── ChromaWithToken2ContainerConnectionDetailsFactoryIT.java
    │                                       └── ChromaWithTokenContainerConnectionDetailsFactoryIT.java
    │                                   ├── milvus
    │                                       ├── MilvusContainerConnectionDetailsFactoryIT.java
    │                                       └── MilvusImage.java
    │                                   ├── mongo
    │                                       ├── MongoDbAtlasLocalContainerConnectionDetailsFactoryIT.java
    │                                       └── MongoDbImage.java
    │                                   ├── ollama
    │                                       ├── OllamaContainerConnectionDetailsFactoryIT.java
    │                                       └── OllamaImage.java
    │                                   ├── opensearch
    │                                       ├── AwsOpenSearchContainerConnectionDetailsFactoryIT.java
    │                                       ├── OpenSearchContainerConnectionDetailsFactoryIT.java
    │                                       └── OpenSearchImage.java
    │                                   ├── qdrant
    │                                       ├── QdrantContainerConnectionDetailsFactoryIT.java
    │                                       ├── QdrantContainerWithApiKeyConnectionDetailsFactoryIT.java
    │                                       └── QdrantImage.java
    │                                   ├── typesense
    │                                       ├── TypesenseContainerConnectionDetailsFactoryIT.java
    │                                       └── TypesenseImage.java
    │                                   └── weaviate
    │                                       ├── WeaviateContainerConnectionDetailsFactoryIT.java
    │                                       └── WeaviateImage.java
├── spring-ai-spring-cloud-bindings
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           └── bindings
    │       │   │               ├── BindingsValidator.java
    │       │   │               ├── ChromaBindingsPropertiesProcessor.java
    │       │   │               ├── MistralAiBindingsPropertiesProcessor.java
    │       │   │               ├── OllamaBindingsPropertiesProcessor.java
    │       │   │               ├── OpenAiBindingsPropertiesProcessor.java
    │       │   │               ├── TanzuBindingsPropertiesProcessor.java
    │       │   │               └── WeaviateBindingsPropertiesProcessor.java
    │       └── resources
    │       │   └── META-INF
    │       │       └── spring.factories
    │   └── test
    │       └── java
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       └── bindings
    │                           ├── ChromaBindingsPropertiesProcessorTests.java
    │                           ├── MistralAiBindingsPropertiesProcessorTests.java
    │                           ├── OllamaBindingsPropertiesProcessorTests.java
    │                           ├── OpenAiBindingsPropertiesProcessorTests.java
    │                           ├── TanzuBindingsPropertiesProcessorTests.java
    │                           └── WeaviateBindingsPropertiesProcessorTests.java
├── spring-ai-template-st
    ├── pom.xml
    └── src
    │   ├── main
    │       └── java
    │       │   └── org
    │       │       └── springframework
    │       │           └── ai
    │       │               └── template
    │       │                   └── st
    │       │                       ├── StTemplateRenderer.java
    │       │                       └── package-info.java
    │   └── test
    │       └── java
    │           └── org
    │               └── springframework
    │                   └── ai
    │                       └── template
    │                           └── st
    │                               ├── StTemplateRendererEdgeTests.java
    │                               └── StTemplateRendererTests.java
├── spring-ai-test
    ├── README.md
    ├── pom.xml
    └── src
    │   └── main
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           ├── evaluation
    │           │               └── BasicEvaluationTest.java
    │           │           ├── test
    │           │               ├── CurlyBracketEscaper.java
    │           │               └── vectorstore
    │           │               │   ├── BaseVectorStoreTests.java
    │           │               │   └── ObservationTestUtil.java
    │           │           └── utils
    │           │               └── AudioPlayer.java
    │       └── resources
    │           ├── prompts
    │               └── spring
    │               │   └── test
    │               │       └── evaluation
    │               │           ├── qa-evaluator-accurate-answer.st
    │               │           ├── qa-evaluator-fact-based-answer.st
    │               │           ├── qa-evaluator-not-related-message.st
    │               │           └── user-evaluator-message.st
    │           └── test
    │               └── data
    │                   ├── great.depression.txt
    │                   ├── spring.ai.txt
    │                   └── time.shelter.txt
├── spring-ai-vector-store
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── springframework
    │       │   │       └── ai
    │       │   │           └── vectorstore
    │       │   │               ├── AbstractVectorStoreBuilder.java
    │       │   │               ├── SearchRequest.java
    │       │   │               ├── SimpleVectorStore.java
    │       │   │               ├── SimpleVectorStoreContent.java
    │       │   │               ├── SpringAIVectorStoreTypes.java
    │       │   │               ├── VectorStore.java
    │       │   │               ├── aot
    │       │   │                   └── VectorStoreRuntimeHints.java
    │       │   │               ├── filter
    │       │   │                   ├── Filter.java
    │       │   │                   ├── FilterExpressionBuilder.java
    │       │   │                   ├── FilterExpressionConverter.java
    │       │   │                   ├── FilterExpressionTextParser.java
    │       │   │                   ├── FilterHelper.java
    │       │   │                   ├── antlr4
    │       │   │                   │   ├── Filters.interp
    │       │   │                   │   ├── FiltersBaseListener.java
    │       │   │                   │   ├── FiltersBaseVisitor.java
    │       │   │                   │   ├── FiltersLexer.interp
    │       │   │                   │   ├── FiltersLexer.java
    │       │   │                   │   ├── FiltersListener.java
    │       │   │                   │   ├── FiltersParser.java
    │       │   │                   │   └── FiltersVisitor.java
    │       │   │                   └── converter
    │       │   │                   │   ├── AbstractFilterExpressionConverter.java
    │       │   │                   │   ├── PineconeFilterExpressionConverter.java
    │       │   │                   │   ├── PrintFilterExpressionConverter.java
    │       │   │                   │   └── SimpleVectorStoreFilterExpressionConverter.java
    │       │   │               ├── observation
    │       │   │                   ├── AbstractObservationVectorStore.java
    │       │   │                   ├── DefaultVectorStoreObservationConvention.java
    │       │   │                   ├── VectorStoreObservationContext.java
    │       │   │                   ├── VectorStoreObservationConvention.java
    │       │   │                   ├── VectorStoreObservationDocumentation.java
    │       │   │                   ├── VectorStoreQueryResponseObservationHandler.java
    │       │   │                   └── package-info.java
    │       │   │               ├── package-info.java
    │       │   │               └── properties
    │       │   │                   └── CommonVectorStoreProperties.java
    │       └── resources
    │       │   ├── META-INF
    │       │       └── additional-spring-configuration-metadata.json
    │       │   └── antlr4
    │       │       └── org
    │       │           └── springframework
    │       │               └── ai
    │       │                   └── vectorstore
    │       │                       └── filter
    │       │                           └── antlr4
    │       │                               └── Filters.g4
    │   └── test
    │       ├── java
    │           └── org
    │           │   └── springframework
    │           │       └── ai
    │           │           └── vectorstore
    │           │               ├── SimpleVectorStoreSimilarityTests.java
    │           │               ├── SimpleVectorStoreTests.java
    │           │               ├── SimpleVectorStoreWithFilterTests.java
    │           │               ├── aot
    │           │                   └── VectorStoreRuntimeHintsTests.java
    │           │               ├── filter
    │           │                   ├── FilterExpressionBuilderTests.java
    │           │                   ├── FilterExpressionTextParserTests.java
    │           │                   ├── FilterHelperTests.java
    │           │                   ├── SearchRequestTests.java
    │           │                   └── converter
    │           │                   │   ├── PineconeFilterExpressionConverterTests.java
    │           │                   │   └── SimpleVectorStoreFilterExpressionConverterTests.java
    │           │               └── observation
    │           │                   ├── DefaultVectorStoreObservationConventionTests.java
    │           │                   ├── VectorStoreObservationContextTests.java
    │           │                   └── VectorStoreQueryResponseObservationHandlerTests.java
    │       └── resources
    │           └── logback.xml
├── src
    ├── checkstyle
    │   ├── checkstyle-header.txt
    │   ├── checkstyle-suppressions.xml
    │   └── checkstyle.xml
    └── prompts
    │   ├── update-to-m7.txt
    │   └── update-to-snapshot.txt
└── vector-stores
    ├── spring-ai-azure-cosmos-db-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── cosmosdb
        │       │                       ├── CosmosDBFilterExpressionConverter.java
        │       │                       ├── CosmosDBVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── vectorstore
        │           │               └── cosmosdb
        │           │                   ├── CosmosDBVectorStoreIT.java
        │           │                   ├── CosmosDBVectorStoreWithMetadataPartitionKeyIT.java
        │           │                   └── CosmosDbImage.java
        │       └── resources
        │           └── application.properties
    ├── spring-ai-azure-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── azure
        │       │                       ├── AzureAiSearchFilterExpressionConverter.java
        │       │                       ├── AzureVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── azure
        │                               ├── AzureAiSearchFilterExpressionConverterTests.java
        │                               ├── AzureVectorStoreIT.java
        │                               └── AzureVectorStoreObservationIT.java
    ├── spring-ai-cassandra-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       ├── java
        │       │   └── org
        │       │   │   └── springframework
        │       │   │       └── ai
        │       │   │           └── vectorstore
        │       │   │               └── cassandra
        │       │   │                   ├── CassandraFilterExpressionConverter.java
        │       │   │                   ├── CassandraVectorStore.java
        │       │   │                   ├── SchemaUtil.java
        │       │   │                   └── package-info.java
        │       └── resources
        │       │   └── application.conf
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── vectorstore
        │           │               └── cassandra
        │           │                   ├── CassandraFilterExpressionConverterTests.java
        │           │                   ├── CassandraImage.java
        │           │                   ├── CassandraRichSchemaVectorStoreIT.java
        │           │                   ├── CassandraVectorStoreIT.java
        │           │                   ├── CassandraVectorStoreObservationIT.java
        │           │                   └── WikiVectorStoreExample.java
        │       └── resources
        │           ├── application.conf
        │           ├── test_wiki_full_schema.cql
        │           ├── test_wiki_partial_0_schema.cql
        │           ├── test_wiki_partial_1_schema.cql
        │           ├── test_wiki_partial_2_schema.cql
        │           ├── test_wiki_partial_3_schema.cql
        │           └── test_wiki_partial_4_schema.cql
    ├── spring-ai-chroma-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── chroma
        │       │                   └── vectorstore
        │       │                       ├── ChromaApi.java
        │       │                       ├── ChromaFilterExpressionConverter.java
        │       │                       ├── ChromaVectorStore.java
        │       │                       ├── common
        │       │                           └── ChromaApiConstants.java
        │       │                       └── package-info.java
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── chroma
        │           │               ├── ChromaImage.java
        │           │               └── vectorstore
        │           │                   ├── BasicAuthChromaWhereIT.java
        │           │                   ├── ChromaApiIT.java
        │           │                   ├── ChromaVectorStoreIT.java
        │           │                   ├── ChromaVectorStoreObservationIT.java
        │           │                   └── TokenSecuredChromaWhereIT.java
        │       └── resources
        │           └── server.htpasswd
    ├── spring-ai-coherence-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── coherence
        │       │                       ├── CoherenceFilterExpressionConverter.java
        │       │                       ├── CoherenceVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── coherence
        │                               ├── CoherenceFilterExpressionConverterTests.java
        │                               └── CoherenceVectorStoreIT.java
    ├── spring-ai-couchbase-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   ├── CouchbaseAiSearchFilterExpressionConverter.java
        │       │                   ├── CouchbaseIndexOptimization.java
        │       │                   ├── CouchbaseSearchVectorStore.java
        │       │                   └── CouchbaseSimilarityFunction.java
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── vectorstore
        │           │               ├── CouchbaseSearchVectorStoreIT.java
        │           │               └── testcontainer
        │           │                   └── CouchbaseContainerMetadata.java
        │       └── resources
        │           └── application.properties
    ├── spring-ai-elasticsearch-store
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── elasticsearch
        │       │                       ├── ElasticsearchAiSearchFilterExpressionConverter.java
        │       │                       ├── ElasticsearchVectorStore.java
        │       │                       ├── ElasticsearchVectorStoreOptions.java
        │       │                       ├── SimilarityFunction.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── elasticsearch
        │                               ├── ElasticsearchAiSearchFilterExpressionConverterTest.java
        │                               ├── ElasticsearchImage.java
        │                               ├── ElasticsearchVectorStoreIT.java
        │                               └── ElasticsearchVectorStoreObservationIT.java
    ├── spring-ai-gemfire-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── gemfire
        │       │                       ├── GemFireVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── gemfire
        │                               ├── GemFireImage.java
        │                               ├── GemFireVectorStoreIT.java
        │                               └── GemFireVectorStoreObservationIT.java
    ├── spring-ai-hanadb-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── hanadb
        │       │                       ├── HanaCloudVectorStore.java
        │       │                       ├── HanaVectorEntity.java
        │       │                       ├── HanaVectorRepository.java
        │       │                       └── package-info.java
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── vectorstore
        │           │               └── hanadb
        │           │                   ├── CricketWorldCup.java
        │           │                   ├── CricketWorldCupHanaController.java
        │           │                   ├── CricketWorldCupRepository.java
        │           │                   ├── HanaCloudVectorStoreIT.java
        │           │                   └── HanaVectorStoreObservationIT.java
        │       └── resources
        │           ├── Cricket_World_Cup.pdf
        │           └── application.properties
    ├── spring-ai-mariadb-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── mariadb
        │       │                       ├── MariaDBFilterExpressionConverter.java
        │       │                       ├── MariaDBSchemaValidator.java
        │       │                       ├── MariaDBVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── mariadb
        │                               ├── MariaDBEmbeddingDimensionsTests.java
        │                               ├── MariaDBFilterExpressionConverterTests.java
        │                               ├── MariaDBImage.java
        │                               ├── MariaDBStoreCustomNamesIT.java
        │                               ├── MariaDBStoreIT.java
        │                               ├── MariaDBStoreObservationIT.java
        │                               ├── MariaDBStoreTests.java
        │                               └── MariaDBVectorStoreBuilderTests.java
    ├── spring-ai-milvus-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── milvus
        │       │                       ├── MilvusFilterExpressionConverter.java
        │       │                       ├── MilvusSearchRequest.java
        │       │                       ├── MilvusVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── milvus
        │                               ├── MilvusEmbeddingDimensionsTests.java
        │                               ├── MilvusFilterExpressionConverterTests.java
        │                               ├── MilvusImage.java
        │                               ├── MilvusSearchRequestTest.java
        │                               ├── MilvusVectorStoreCustomFieldNamesIT.java
        │                               ├── MilvusVectorStoreIT.java
        │                               ├── MilvusVectorStoreObservationIT.java
        │                               └── MilvusVectorStoreTest.java
    ├── spring-ai-mongodb-atlas-store
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── mongodb
        │       │                       └── atlas
        │       │                           ├── MongoDBAtlasFilterExpressionConverter.java
        │       │                           ├── MongoDBAtlasVectorStore.java
        │       │                           ├── VectorSearchAggregation.java
        │       │                           └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── mongodb
        │                               └── atlas
        │                                   ├── MongoDBAtlasFilterConverterTest.java
        │                                   ├── MongoDBAtlasVectorStoreIT.java
        │                                   ├── MongoDbImage.java
        │                                   ├── MongoDbVectorStoreObservationIT.java
        │                                   └── VectorSearchAggregationTest.java
    ├── spring-ai-neo4j-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── neo4j
        │       │                       ├── Neo4jVectorStore.java
        │       │                       ├── filter
        │       │                           └── Neo4jVectorFilterExpressionConverter.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── neo4j
        │                               ├── Neo4jImage.java
        │                               ├── Neo4jVectorStoreIT.java
        │                               ├── Neo4jVectorStoreObservationIT.java
        │                               └── filter
        │                                   └── Neo4jVectorFilterExpressionConverterTests.java
    ├── spring-ai-opensearch-store
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── opensearch
        │       │                       ├── OpenSearchAiSearchFilterExpressionConverter.java
        │       │                       ├── OpenSearchVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── opensearch
        │                               ├── OpenSearchAiSearchFilterExpressionConverterTest.java
        │                               ├── OpenSearchImage.java
        │                               ├── OpenSearchVectorStoreIT.java
        │                               ├── OpenSearchVectorStoreObservationIT.java
        │                               └── OpenSearchVectorStoreWithOllamaIT.java
    ├── spring-ai-oracle-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── oracle
        │       │                       ├── OracleVectorStore.java
        │       │                       ├── SqlJsonPathFilterExpressionConverter.java
        │       │                       └── package-info.java
        │   └── test
        │       ├── java
        │           └── org
        │           │   └── springframework
        │           │       └── ai
        │           │           └── vectorstore
        │           │               └── oracle
        │           │                   ├── OracleImage.java
        │           │                   ├── OracleVectorStoreIT.java
        │           │                   ├── OracleVectorStoreObservationIT.java
        │           │                   └── SqlJsonPathFilterExpressionConverterTests.java
        │       └── resources
        │           └── initialize.sql
    ├── spring-ai-pgvector-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── pgvector
        │       │                       ├── PgVectorFilterExpressionConverter.java
        │       │                       ├── PgVectorSchemaValidator.java
        │       │                       ├── PgVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── pgvector
        │                               ├── PgVectorEmbeddingDimensionsTests.java
        │                               ├── PgVectorFilterExpressionConverterTests.java
        │                               ├── PgVectorImage.java
        │                               ├── PgVectorStoreAutoTruncationIT.java
        │                               ├── PgVectorStoreCustomNamesIT.java
        │                               ├── PgVectorStoreIT.java
        │                               ├── PgVectorStoreObservationIT.java
        │                               ├── PgVectorStoreTests.java
        │                               ├── PgVectorStoreVectorStoreChatMemoryAdvisorIT.java
        │                               └── PgVectorStoreWithChatMemoryAdvisorIT.java
    ├── spring-ai-pinecone-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       ├── java
        │       │   └── org
        │       │   │   └── springframework
        │       │   │       └── ai
        │       │   │           └── vectorstore
        │       │   │               └── pinecone
        │       │   │                   ├── PineconeVectorStore.java
        │       │   │                   ├── PineconeVectorStoreHints.java
        │       │   │                   └── package-info.java
        │       └── resources
        │       │   └── META-INF
        │       │       └── spring
        │       │           └── aot.factories
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── pinecone
        │                               ├── PineconeVectorStoreIT.java
        │                               └── PineconeVectorStoreObservationIT.java
    ├── spring-ai-qdrant-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── qdrant
        │       │                       ├── QdrantFilterExpressionConverter.java
        │       │                       ├── QdrantObjectFactory.java
        │       │                       ├── QdrantValueFactory.java
        │       │                       ├── QdrantVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── qdrant
        │                               ├── QdrantImage.java
        │                               ├── QdrantObjectFactoryTests.java
        │                               ├── QdrantVectorStoreBuilderTests.java
        │                               ├── QdrantVectorStoreIT.java
        │                               └── QdrantVectorStoreObservationIT.java
    ├── spring-ai-redis-store
        ├── README.md
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── redis
        │       │                       ├── RedisFilterExpressionConverter.java
        │       │                       ├── RedisVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── redis
        │                               ├── RedisFilterExpressionConverterTests.java
        │                               ├── RedisVectorStoreIT.java
        │                               └── RedisVectorStoreObservationIT.java
    ├── spring-ai-typesense-store
        ├── pom.xml
        └── src
        │   ├── main
        │       └── java
        │       │   └── org
        │       │       └── springframework
        │       │           └── ai
        │       │               └── vectorstore
        │       │                   └── typesense
        │       │                       ├── TypesenseFilterExpressionConverter.java
        │       │                       ├── TypesenseVectorStore.java
        │       │                       └── package-info.java
        │   └── test
        │       └── java
        │           └── org
        │               └── springframework
        │                   └── ai
        │                       └── vectorstore
        │                           └── typesense
        │                               ├── TypesenseImage.java
        │                               ├── TypesenseVectorStoreBuilderTests.java
        │                               ├── TypesenseVectorStoreIT.java
        │                               └── TypesenseVectorStoreObservationIT.java
    └── spring-ai-weaviate-store
        ├── README.md
        ├── pom.xml
        └── src
            ├── main
                └── java
                │   └── org
                │       └── springframework
                │           └── ai
                │               └── vectorstore
                │                   └── weaviate
                │                       ├── WeaviateFilterExpressionConverter.java
                │                       ├── WeaviateVectorStore.java
                │                       ├── WeaviateVectorStoreOptions.java
                │                       └── package-info.java
            └── test
                ├── java
                    └── org
                    │   └── springframework
                    │       └── ai
                    │           └── vectorstore
                    │               └── weaviate
                    │                   ├── WeaviateFilterExpressionConverterTests.java
                    │                   ├── WeaviateImage.java
                    │                   ├── WeaviateVectorStoreBuilderTests.java
                    │                   ├── WeaviateVectorStoreIT.java
                    │                   ├── WeaviateVectorStoreObservationIT.java
                    │                   └── WeaviateVectorStoreOptionsTests.java
                └── resources
                    └── docker-compose.yml


/.editorconfig:
--------------------------------------------------------------------------------
 1 | root = true
 2 | 
 3 | [*.{adoc,bat,groovy,html,java,js,jsp,kt,kts,md,properties,py,rb,sh,sql,svg,txt,xml,xsd}]
 4 | charset = utf-8
 5 | 
 6 | [*.{groovy,java,kt,kts,xml,xsd}]
 7 | indent_style = tab
 8 | indent_size = 4
 9 | continuation_indent_size = 8
10 | end_of_line = lf
11 | 
12 | insert_final_newline = true
13 | 


--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.onnx filter=lfs diff=lfs merge=lfs -text
2 | 


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 |   - name: Questions and Community Support
4 |     url: https://stackoverflow.com/questions/tagged/spring-ai
5 |     about: Please ask and answer questions on StackOverflow with the spring-ai tag
6 | 


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
 1 | ---
 2 | name: Feature request
 3 | about: Suggest an idea for this project
 4 | title: ''
 5 | labels: 'status: waiting-for-triage, type: feature'
 6 | assignees: ''
 7 | 
 8 | ---
 9 | 
10 | Please do a quick search on GitHub issues first, the feature you are about to request might have already been requested.
11 | 
12 | **Expected Behavior**
13 | 
14 | <!--- Tell us how it should work. Add a code example to explain what you think the feature should look like. This is optional, but it would help up understand your expectations. -->
15 | 
16 | **Current Behavior**
17 | 
18 | <!--- Explain the difference from current behavior and why do you need this feature (aka why it is not possible to implement the desired functionality with the current version) -->
19 | 
20 | **Context**
21 | 
22 | <!--- 
23 | How has this issue affected you?
24 | What are you trying to accomplish?
25 | What other alternatives have you considered?
26 | Are you aware of any workarounds?
27 | -->
28 | 


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/miscellaneous.md:
--------------------------------------------------------------------------------
 1 | ---
 2 | name: Miscellaneous
 3 | about: Suggest an improvement for this project
 4 | title: ''
 5 | labels: 'status: waiting-for-triage'
 6 | assignees: ''
 7 | 
 8 | ---
 9 | 
10 | For anything other than bug reports and feature requests (performance, refactoring, etc),
11 | just go ahead and file the issue. Please provide as many details as possible.
12 | 
13 | If you have a question or a support request, please open a new discussion on [GitHub Discussions](https://github.com/spring-projects/spring-ai/discussions)
14 | or ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/spring-ai).
15 | 
16 | Please do **not** create issues on the [Issue Tracker](https://github.com/spring-projects/spring-ai/issues) for questions or support requests.
17 | We would like to keep the issue tracker **exclusively** for bug reports and feature requests.
18 | 


--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
 1 | Thank you for taking time to contribute this pull request!
 2 | You might have already read the [contributor guide][1], but as a reminder, please make sure to:
 3 | 
 4 | * Add a Signed-off-by line to each commit (`git commit -s`) per the [DCO](https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring#how-to-use-developer-certificate-of-origin)
 5 | * Rebase your changes on the latest `main` branch and squash your commits
 6 | * Add/Update unit tests as needed
 7 | * Run a build and make sure all tests pass prior to submission
 8 | 
 9 | For more details, please check the [contributor guide][1].
10 | Thank you upfront!
11 | 
12 | [1]: https://github.com/spring-projects/spring-ai/blob/main/CONTRIBUTING.adoc


--------------------------------------------------------------------------------
/.github/dco.yml:
--------------------------------------------------------------------------------
1 | require:
2 |   members: false


--------------------------------------------------------------------------------
/.github/release-files-spec.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "files": [
 3 |     {
 4 |       "aql": {
 5 |         "items.find": {
 6 |           "$and": [
 7 |             {
 8 |               "@build.name": "${buildname}",
 9 |               "@build.number": "${buildnumber}",
10 |               "path": {"$match": "org*"}
11 |             },
12 |             {
13 |               "$or": [
14 |                 {
15 |                   "name": {"$match": "*.pom"}
16 |                 },
17 |                 {
18 |                   "name": {"$match": "*.jar"}
19 |                 }
20 |               ]
21 |             }
22 |           ]
23 |         }
24 |       },
25 |       "target": "nexus/"
26 |     }
27 |   ]
28 | }


--------------------------------------------------------------------------------
/.github/workflows/auto-cherry-pick.yml:
--------------------------------------------------------------------------------
 1 | name: Auto Cherry-Pick
 2 | 
 3 | on:
 4 |   push:
 5 |     branches:
 6 |       - main
 7 |       - '*.x'
 8 | 
 9 | jobs:
10 |   cherry-pick-commit:
11 |     uses: spring-io/spring-github-workflows/.github/workflows/spring-cherry-pick.yml@v5
12 |     secrets:
13 |       GH_ACTIONS_REPO_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
14 | 


--------------------------------------------------------------------------------
/.github/workflows/backport-issue.yml:
--------------------------------------------------------------------------------
 1 | name: Backport Issue
 2 | 
 3 | on:
 4 |   push:
 5 |     branches:
 6 |       - '*.x'
 7 | 
 8 | jobs:
 9 |   backport-issue:
10 |     uses: spring-io/spring-github-workflows/.github/workflows/spring-backport-issue.yml@main
11 |     secrets:
12 |       GH_ACTIONS_REPO_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
13 | 


--------------------------------------------------------------------------------
/.github/workflows/deploy-docs.yml:
--------------------------------------------------------------------------------
 1 | name: Deploy Docs
 2 | on:
 3 |   workflow_dispatch:
 4 |   push:
 5 |     branches: [main, '[0-9].[0-9].x' ]
 6 |     tags: ['v[0-9].[0-9].[0-9]', 'v[0-9].[0-9].[0-9]-*']
 7 | permissions:
 8 |   actions: write
 9 | jobs:
10 |   build:
11 |     runs-on: ubuntu-latest
12 |     if: ${{ github.repository_owner == 'spring-projects' }}
13 |     steps:
14 |       - name: Checkout
15 |         uses: actions/checkout@v4
16 |         with:
17 |           ref: docs-build
18 |           fetch-depth: 1
19 |       - name: Dispatch (partial build)
20 |         if: github.ref_type == 'branch'
21 |         env:
22 |           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23 |         run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) -f build-refname=${{ github.ref_name }}
24 |       - name: Dispatch (full build)
25 |         if: github.ref_type == 'tag'
26 |         env:
27 |           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28 |         run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD)
29 | 


--------------------------------------------------------------------------------
/.github/workflows/pr-check.yml:
--------------------------------------------------------------------------------
 1 | name: PR Check
 2 | 
 3 | on:
 4 |   pull_request:
 5 |     branches:
 6 |       - main
 7 | 
 8 | jobs:
 9 |   build:
10 |     name: Build branch
11 |     runs-on: ubuntu-latest
12 |     if: ${{ github.repository_owner == 'spring-projects' }}
13 |     steps:
14 |       - name: Checkout source code
15 |         uses: actions/checkout@v4
16 | 
17 |       - name: Set up JDK 17
18 |         uses: actions/setup-java@v4
19 |         with:
20 |           java-version: '17'
21 |           distribution: 'temurin'
22 |           cache: 'maven'
23 | 
24 |       - name: Run tests
25 |         run: |
26 |           ./mvnw test
27 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
 1 | target
 2 | .classpath
 3 | .project
 4 | .settings
 5 | bin
 6 | build.log
 7 | integration-repo
 8 | ivy-cache
 9 | spring-build
10 | derby-home
11 | derbydb
12 | derby.log
13 | com.springsource.sts.config.flow.prefs
14 | s3.properties
15 | .idea
16 | *.iml
17 | *.ipr
18 | *.iws
19 | .*.swp
20 | .DS_Store
21 | .springBeans
22 | build
23 | .gradle
24 | out
25 | *~
26 | 
27 | /.gradletasknamecache
28 | **/*.flattened-pom.xml
29 | 
30 | vscode
31 | settings.json
32 | 
33 | node
34 | node_modules
35 | package-lock.json
36 | package.json
37 | .vscode
38 | .antlr
39 | 
40 | shell.log
41 | 
42 | .profiler
43 | /spring-ai-spring-boot-autoconfigure/nbproject/
44 | /vector-stores/spring-ai-cassandra-store/nbproject/
45 | 
46 | **/.claude/settings.local.json
47 | .devcontainer
48 | 
49 | qodana.yaml


--------------------------------------------------------------------------------
/.mvn/extensions.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!--
 3 |   ~ Copyright 2023-2024 the original author or authors.
 4 |   ~
 5 |   ~ Licensed under the Apache License, Version 2.0 (the "License");
 6 |   ~ you may not use this file except in compliance with the License.
 7 |   ~ You may obtain a copy of the License at
 8 |   ~
 9 |   ~      https://www.apache.org/licenses/LICENSE-2.0
10 |   ~
11 |   ~ Unless required by applicable law or agreed to in writing, software
12 |   ~ distributed under the License is distributed on an "AS IS" BASIS,
13 |   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |   ~ See the License for the specific language governing permissions and
15 |   ~ limitations under the License.
16 |   -->
17 | 
18 | <extensions>
19 |     <extension>
20 |       <groupId>fr.jcgay.maven</groupId>
21 |       <artifactId>maven-profiler</artifactId>
22 |       <version>3.2</version>
23 |     </extension>
24 | </extensions>


--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/.mvn/wrapper/maven-wrapper.jar


--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2023-2024 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
17 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
18 | 


--------------------------------------------------------------------------------
/auto-configurations/common/spring-ai-autoconfigure-retry/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/mcp/spring-ai-autoconfigure-mcp-client/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.mcp.client.autoconfigure.aot.McpClientAutoConfigurationRuntimeHints
3 | 


--------------------------------------------------------------------------------
/auto-configurations/mcp/spring-ai-autoconfigure-mcp-client/src/test/resources/application-test.properties:
--------------------------------------------------------------------------------
 1 | # Test MCP STDIO client configuration
 2 | spring.ai.mcp.client.stdio.enabled=true
 3 | spring.ai.mcp.client.stdio.version=test-version
 4 | spring.ai.mcp.client.stdio.request-timeout=15s
 5 | spring.ai.mcp.client.stdio.root-change-notification=false
 6 | 
 7 | # Test server configuration
 8 | spring.ai.mcp.client.stdio.stdio-connections.test-server.command=echo
 9 | spring.ai.mcp.client.stdio.stdio-connections.test-server.args[0]=test
10 | spring.ai.mcp.client.stdio.stdio-connections.test-server.env.TEST_ENV=test-value
11 | 


--------------------------------------------------------------------------------
/auto-configurations/mcp/spring-ai-autoconfigure-mcp-client/src/test/resources/nested/nested-config.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "nested-config",
3 |   "description": "Test JSON file in nested subfolder of test resources",
4 |   "version": "1.0.0",
5 |   "nestedProperties": {
6 | 	"nestedProperty1": "nestedValue1"
7 |   }
8 | }
9 | 


--------------------------------------------------------------------------------
/auto-configurations/mcp/spring-ai-autoconfigure-mcp-client/src/test/resources/test-config.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "test-config",
3 |   "description": "Test JSON file in root test resources folder",
4 |   "version": "1.0.0",
5 |   "properties": {
6 | 	"testProperty1": "value1"
7 |   }
8 | }
9 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/client/spring-ai-autoconfigure-model-chat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.chat.client.autoconfigure.ChatClientAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.chat.memory.repository.cassandra.autoconfigure.CassandraChatMemoryRepositoryAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2024-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.chat.memory.repository.jdbc.autoconfigure.JdbcChatMemoryRepositoryAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/resources/schema.sql:
--------------------------------------------------------------------------------
 1 | -- Test-specific schema initialization for HSQLDB
 2 | CREATE TABLE IF NOT EXISTS SPRING_AI_CHAT_MEMORY (
 3 |     conversation_id VARCHAR(36) NOT NULL,
 4 |     content LONGVARCHAR NOT NULL,
 5 |     type VARCHAR(10) NOT NULL,
 6 |     timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
 7 | );
 8 | 
 9 | CREATE INDEX IF NOT EXISTS SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX ON SPRING_AI_CHAT_MEMORY(conversation_id, timestamp DESC);
10 | 
11 | -- Add constraint if it doesn't exist
12 | ALTER TABLE SPRING_AI_CHAT_MEMORY ADD CONSTRAINT TYPE_CHECK CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL'));
13 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure.Neo4jChatMemoryRepositoryAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
1 | org.springframework.ai.model.chat.memory.autoconfigure.ChatMemoryAutoConfiguration
2 | 


--------------------------------------------------------------------------------
/auto-configurations/models/chat/observation/spring-ai-autoconfigure-model-chat-observation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.chat.observation.autoconfigure.ChatObservationAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/embedding/observation/spring-ai-autoconfigure-model-embedding-observation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.embedding.observation.autoconfigure.EmbeddingObservationAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/image/observation/spring-ai-autoconfigure-model-image-observation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.image.observation.autoconfigure.ImageObservationAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-anthropic/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.anthropic.autoconfigure.AnthropicChatAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "groups": [
 3 | 	{
 4 | 	  "name": "spring.ai.azure.openai.chat.options.enhancements",
 5 | 	  "type": "com.azure.ai.openai.models.AzureChatEnhancementConfiguration",
 6 | 	  "sourceType": "org.springframework.ai.azure.openai.AzureOpenAiChatOptions",
 7 | 	  "sourceMethod": "getEnhancements()"
 8 | 	}
 9 |   ],
10 |   "properties": [
11 | 	{
12 | 	  "name": "spring.ai.azure.openai.chat.options.enhancements.grounding",
13 | 	  "type": "com.azure.ai.openai.models.AzureChatGroundingEnhancementConfiguration",
14 | 	  "sourceType": "com.azure.ai.openai.models.AzureChatEnhancementConfiguration"
15 | 	},
16 | 	{
17 | 	  "name": "spring.ai.azure.openai.chat.options.enhancements.ocr",
18 | 	  "type": "com.azure.ai.openai.models.AzureChatOCREnhancementConfiguration",
19 | 	  "sourceType": "com.azure.ai.openai.models.AzureChatEnhancementConfiguration"
20 | 	}
21 |   ],
22 |   "hints": []
23 | }
24 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/test/resources/speech/jfk.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/test/resources/speech/jfk.flac


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/test/resources/spring_framework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/test/resources/spring_framework.png


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-deepseek/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.deepseek.autoconfigure.DeepSeekChatAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-elevenlabs/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.elevenlabs.autoconfigure.ElevenLabsAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-huggingface/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.huggingface.autoconfigure.HuggingfaceChatAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-minimax/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.minimax.autoconfigure.MiniMaxChatAutoConfiguration
17 | org.springframework.ai.model.minimax.autoconfigure.MiniMaxEmbeddingAutoConfiguration
18 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-mistral-ai/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "groups": [
 3 | 	{
 4 | 	  "name": "spring.ai.mistralai.chat.options.tool-choice",
 5 | 	  "type": "org.springframework.ai.mistralai.api.MistralAiApi$ChatCompletionRequest$ToolChoice",
 6 | 	  "sourceType": "org.springframework.ai.mistralai.MistralAiChatOptions"
 7 | 	}
 8 |   ],
 9 |   "properties": [],
10 |   "hints": []
11 | }
12 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-oci-genai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.oci.genai.autoconfigure.OCIGenAiChatAutoConfiguration
17 | org.springframework.ai.model.oci.genai.autoconfigure.OCIGenAiEmbeddingAutoConfiguration
18 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.ollama.autoconfigure.OllamaChatAutoConfiguration
17 | org.springframework.ai.model.ollama.autoconfigure.OllamaEmbeddingAutoConfiguration
18 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-openai/src/main/java/org/springframework/ai/model/openai/autoconfigure/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2025-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.model.openai.autoconfigure;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-openai/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "groups": [
 3 | 	{
 4 | 	  "name": "spring.ai.openai.chat.output-audio",
 5 | 	  "type": "org.springframework.ai.openai.api.OpenAiApi$ChatCompletionRequest$AudioParameters",
 6 | 	  "sourceType": "org.springframework.ai.openai.OpenAiChatOptions"
 7 | 	}
 8 |   ],
 9 |   "properties": [
10 | 	{
11 | 	  "name": "spring.ai.openai.chat.output-audio.voice",
12 | 	  "type": "org.springframework.ai.openai.api.OpenAiApi$ChatCompletionRequest$AudioParameters$Voice",
13 | 	  "sourceType": "org.springframework.ai.openai.api.OpenAiApi$ChatCompletionRequest$AudioParameters"
14 | 	},
15 | 	{
16 | 	  "name": "spring.ai.openai.chat.output-audio.format",
17 | 	  "type": "org.springframework.ai.openai.api.OpenAiApi$ChatCompletionRequest$AudioParameters$AudioResponseFormat",
18 | 	  "sourceType": "org.springframework.ai.openai.api.OpenAiApi$ChatCompletionRequest$AudioParameters"
19 | 	}
20 |   ],
21 |   "hints": []
22 | }
23 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-openai/src/test/resources/speech/jfk.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/auto-configurations/models/spring-ai-autoconfigure-model-openai/src/test/resources/speech/jfk.flac


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-postgresml-embedding/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.postgresml.autoconfigure.PostgresMlEmbeddingAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-stability-ai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.stabilityai.autoconfigure.StabilityAiImageAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/spring-ai-autoconfigure-model-transformers/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.transformers.autoconfigure.TransformersEmbeddingModelAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/models/tool/spring-ai-autoconfigure-model-tool/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.cosmosdb.autoconfigure.CosmosDBVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.azure.autoconfigure.AzureVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.cassandra.autoconfigure.CassandraVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-chroma/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.chroma.autoconfigure.ChromaVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseSearchVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.elasticsearch.autoconfigure.ElasticsearchVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-gemfire/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.gemfire.autoconfigure.GemFireVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-mariadb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.mariadb.autoconfigure.MariaDbStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-mongodb-atlas/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.mongodb.autoconfigure.MongoDBAtlasVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.neo4j.autoconfigure.Neo4jVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-observation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.observation.autoconfigure.VectorStoreObservationAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-opensearch/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.opensearch.autoconfigure.OpenSearchVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-oracle/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.oracle.autoconfigure.OracleVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pgvector/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.pgvector.autoconfigure.PgVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.pinecone.autoconfigure.PineconeVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.redis.autoconfigure.RedisVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.typesense.autoconfigure.TypesenseVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2025-2025 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateVectorStoreAutoConfiguration
17 | 


--------------------------------------------------------------------------------
/document-readers/jsoup-reader/src/test/resources/test-group-by.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html>
 2 | <html>
 3 | <head>
 4 |     <title>Group By Element Test</title>
 5 | </head>
 6 | <body>
 7 | <section>
 8 |     <p>Section 1 content</p>
 9 | </section>
10 | <section>
11 |     <p>Section 2 content</p>
12 | </section>
13 | </body>
14 | </html>


--------------------------------------------------------------------------------
/document-readers/jsoup-reader/src/test/resources/test.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html>
 2 | <html>
 3 | <head>
 4 |     <title>Test HTML</title>
 5 |     <meta name="description" content="A test document for Spring AI">
 6 |     <meta name="keywords" content="test,html,spring ai">
 7 |     <meta name="custom1" content="value1">
 8 |     <meta name="custom2" content="value2">
 9 | </head>
10 | <body>
11 | <h1>This is a test HTML document.</h1>
12 | <p>Some paragraph text.</p>
13 | <a href="https://spring.io/">Spring</a>
14 | </body>
15 | </html>


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/blockquote.md:
--------------------------------------------------------------------------------
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur diam eros, laoreet sit amet cursus vitae, varius sed
2 | nisi. Cras sit amet quam quis velit commodo porta consectetur id nisi. Phasellus tincidunt pulvinar augue.
3 | 
4 | > Proin vel laoreet leo, sed luctus augue. Sed et ligula commodo, commodo lacus at, consequat turpis. Maecenas eget
5 | > sapien odio. Maecenas urna lectus, pellentesque in accumsan aliquam, congue eu libero. Ut rhoncus nec justo a
6 | > porttitor. Pellentesque auctor pharetra eros, viverra sodales lorem aliquet id. Curabitur semper nisi vel sem interdum
7 | > suscipit.
8 | 
9 | 


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/code.md:
--------------------------------------------------------------------------------
 1 | This is a Java sample application:
 2 | 
 3 | ```java
 4 | package com.example.demo;
 5 | 
 6 | import org.springframework.boot.SpringApplication;
 7 | import org.springframework.boot.autoconfigure.SpringBootApplication;
 8 | 
 9 | @SpringBootApplication
10 | public class DemoApplication {
11 |     public static void main(String[] args) {
12 |         SpringApplication.run(DemoApplication.class, args);
13 |     }
14 | }
15 | ```
16 | 
17 | Markdown also provides the possibility to `use inline code formatting throughout` the entire sentence.
18 | 
19 | ---
20 | 
21 | Another possibility is to set block code without specific highlighting:
22 | 
23 | ```
24 | ./mvnw spring-javaformat:apply
25 | ```
26 | 


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/lists.md:
--------------------------------------------------------------------------------
 1 | ## Ordered list
 2 | 
 3 | 1. Lorem ipsum dolor sit *amet*, consectetur adipiscing elit. **Curabitur** diam eros, laoreet sit _amet_ cursus vitae,
 4 |    varius sed nisi.
 5 | 2. Cras sit amet quam quis velit commodo porta consectetur id nisi. Phasellus tincidunt pulvinar augue.
 6 | 3. Proin vel laoreet leo, sed luctus augue. Sed et ligula commodo, commodo lacus at, consequat turpis. Maecenas eget
 7 |    sapien odio.
 8 |     1. Pellentesque auctor pharetra eros, viverra sodales lorem aliquet id. Curabitur semper nisi vel sem interdum
 9 |        suscipit.
10 |     2. Maecenas urna lectus, pellentesque in accumsan aliquam, congue eu libero. Ut rhoncus nec justo a porttitor.
11 | 
12 | ## Unordered list
13 | 
14 | * Aenean eu leo eu nibh tristique posuere quis quis massa.
15 | * Aenean imperdiet libero dui, nec malesuada dui maximus vel. Vestibulum sed dui condimentum, cursus libero in, dapibus
16 |   tortor.
17 |     * Etiam facilisis enim in egestas dictum.
18 | 


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/only-headers.md:
--------------------------------------------------------------------------------
 1 | # Header 1a
 2 | 
 3 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur diam eros, laoreet sit amet cursus vitae, varius sed
 4 | nisi. Cras sit amet quam quis velit commodo porta consectetur id nisi. Phasellus tincidunt pulvinar augue.
 5 | 
 6 | # Header 1b
 7 | 
 8 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam lobortis risus libero, sed
 9 | sollicitudin risus cursus in. Morbi enim metus, ornare vel lacinia eget, venenatis vel nibh.
10 | 
11 | ## Header 2b
12 | 
13 | Proin vel laoreet leo, sed luctus augue. Sed et ligula commodo, commodo lacus at, consequat turpis. Maecenas eget sapien
14 | odio. Maecenas urna lectus, pellentesque in accumsan aliquam, congue eu libero.
15 | 
16 | # Header 1c
17 | 
18 | ## Header 2c
19 | 
20 | Ut rhoncus nec justo a porttitor. Pellentesque auctor pharetra eros, viverra sodales lorem aliquet id. Curabitur semper nisi vel sem interdum suscipit.
21 | 


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/simple.md:
--------------------------------------------------------------------------------
1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tincidunt velit non bibendum gravida. Cras accumsan
2 | tincidunt ornare. Donec hendrerit consequat tellus blandit accumsan. Aenean aliquam metus at arcu elementum dignissim.
3 | 
4 | Nullam nisi dui, egestas nec sem nec, interdum lobortis enim. Pellentesque odio orci, faucibus eu luctus nec, venenatis et magna. Vestibulum nec eros non felis fermentum posuere eget ac risus.
5 | 
6 | Aenean eu leo eu nibh tristique posuere quis quis massa.\
7 | Nullam lacinia luctus sem ut vehicula.
8 | 
9 | 


--------------------------------------------------------------------------------
/document-readers/markdown-reader/src/test/resources/with-formatting.md:
--------------------------------------------------------------------------------
 1 | # This is a fancy header name
 2 | 
 3 | Lorem ipsum dolor sit amet, **consectetur adipiscing elit**. Donec tincidunt velit non bibendum gravida. Cras accumsan
 4 | tincidunt ornare. Donec hendrerit consequat tellus *blandit* accumsan. Aenean aliquam metus at ***arcu elementum***
 5 | dignissim.
 6 | 
 7 | ### Header 3
 8 | 
 9 | Aenean eu leo eu nibh tristique _posuere quis quis massa_. 
10 | 


--------------------------------------------------------------------------------
/document-readers/pdf-reader/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.reader.pdf.aot.PdfReaderRuntimeHints


--------------------------------------------------------------------------------
/document-readers/pdf-reader/src/test/resources/sample1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/pdf-reader/src/test/resources/sample1.pdf


--------------------------------------------------------------------------------
/document-readers/pdf-reader/src/test/resources/sample2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/pdf-reader/src/test/resources/sample2.pdf


--------------------------------------------------------------------------------
/document-readers/pdf-reader/src/test/resources/sample3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/pdf-reader/src/test/resources/sample3.pdf


--------------------------------------------------------------------------------
/document-readers/tika-reader/src/test/resources/sample.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/tika-reader/src/test/resources/sample.ppt


--------------------------------------------------------------------------------
/document-readers/tika-reader/src/test/resources/sample.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/tika-reader/src/test/resources/sample.pptx


--------------------------------------------------------------------------------
/document-readers/tika-reader/src/test/resources/sample2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/tika-reader/src/test/resources/sample2.pdf


--------------------------------------------------------------------------------
/document-readers/tika-reader/src/test/resources/word-sample.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/tika-reader/src/test/resources/word-sample.doc


--------------------------------------------------------------------------------
/document-readers/tika-reader/src/test/resources/word-sample.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/document-readers/tika-reader/src/test/resources/word-sample.docx


--------------------------------------------------------------------------------
/mcp/common/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.mcp.aot.McpHints


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/README.md:
--------------------------------------------------------------------------------
1 | [Chat Memory Documentation](https://docs.spring.io/spring-ai/reference/api/chatmemory.html)
2 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.chat.memory.repository.jdbc;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | org.springframework.ai.chat.memory.repository.jdbc.aot.hint.JdbcChatMemoryRepositoryRuntimeHints
3 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-hsqldb.sql:
--------------------------------------------------------------------------------
 1 | CREATE TABLE SPRING_AI_CHAT_MEMORY (
 2 |     conversation_id VARCHAR(36) NOT NULL,
 3 |     content LONGVARCHAR NOT NULL,
 4 |     type VARCHAR(10) NOT NULL,
 5 |     timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
 6 | );
 7 | 
 8 | CREATE INDEX SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX ON SPRING_AI_CHAT_MEMORY(conversation_id, timestamp DESC);
 9 | 
10 | ALTER TABLE SPRING_AI_CHAT_MEMORY ADD CONSTRAINT TYPE_CHECK CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL'));
11 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-mariadb.sql:
--------------------------------------------------------------------------------
 1 | CREATE TABLE IF NOT EXISTS SPRING_AI_CHAT_MEMORY (
 2 |     conversation_id VARCHAR(36) NOT NULL,
 3 |     content TEXT NOT NULL,
 4 |     type VARCHAR(10) NOT NULL,
 5 |     `timestamp` TIMESTAMP NOT NULL,
 6 |     CONSTRAINT TYPE_CHECK CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL'))
 7 | );
 8 | 
 9 | CREATE INDEX IF NOT EXISTS SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX
10 | ON SPRING_AI_CHAT_MEMORY(conversation_id, `timestamp`);


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-mysql.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS SPRING_AI_CHAT_MEMORY (
2 |     `conversation_id` VARCHAR(36) NOT NULL,
3 |     `content` TEXT NOT NULL,
4 |     `type` ENUM('USER', 'ASSISTANT', 'SYSTEM', 'TOOL') NOT NULL,
5 |     `timestamp` TIMESTAMP NOT NULL,
6 | 
7 |     INDEX `SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX` (`conversation_id`, `timestamp`)
8 | );
9 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS SPRING_AI_CHAT_MEMORY (
2 |     conversation_id VARCHAR(36) NOT NULL,
3 |     content TEXT NOT NULL,
4 |     type VARCHAR(10) NOT NULL CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL')),
5 |     "timestamp" TIMESTAMP NOT NULL
6 |     );
7 | 
8 | CREATE INDEX IF NOT EXISTS SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX
9 | ON SPRING_AI_CHAT_MEMORY(conversation_id, "timestamp");


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-sqlserver.sql:
--------------------------------------------------------------------------------
 1 | CREATE TABLE SPRING_AI_CHAT_MEMORY (
 2 |     conversation_id VARCHAR(36) NOT NULL,
 3 |     content NVARCHAR(MAX) NOT NULL,
 4 |     type VARCHAR(10) NOT NULL,
 5 |     [timestamp] DATETIME2 NOT NULL DEFAULT SYSDATETIME(),
 6 |     CONSTRAINT TYPE_CHECK CHECK (type IN ('USER', 'ASSISTANT', 'SYSTEM', 'TOOL'))
 7 | );
 8 | 
 9 | CREATE INDEX SPRING_AI_CHAT_MEMORY_CONVERSATION_ID_TIMESTAMP_IDX ON SPRING_AI_CHAT_MEMORY(conversation_id, [timestamp] DESC);
10 | 


--------------------------------------------------------------------------------
/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/resources/container-license-acceptance.txt:
--------------------------------------------------------------------------------
1 | mcr.microsoft.com/mssql/server:2022-latest


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/README.md:
--------------------------------------------------------------------------------
1 | [Anthropic Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/anthropic-chat.html)
2 | 
3 | 


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.anthropic.aot.AnthropicRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/src/test/resources/application-logging-test.properties:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2023-2024 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | 
17 | logging.level.org.springframework.ai.chat.client.advisor=DEBUG
18 | 
19 | logging.level.org.springframework.ai.anthropic.api.AnthropicApi=INFO
20 | 


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/src/test/resources/spring-ai-reference-overview.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-anthropic/src/test/resources/spring-ai-reference-overview.pdf


--------------------------------------------------------------------------------
/models/spring-ai-anthropic/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-anthropic/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-azure-openai/README.md:
--------------------------------------------------------------------------------
1 | [Azure OpenAI Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/azure-openai-chat.html)
2 | 
3 | [Azure OpenAI Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/azure-openai-embeddings.html)
4 | 


--------------------------------------------------------------------------------
/models/spring-ai-azure-openai/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.azure.openai.aot.AzureOpenAiRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-azure-openai/src/test/resources/multimodality/multimodal.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-azure-openai/src/test/resources/multimodality/multimodal.test.png


--------------------------------------------------------------------------------
/models/spring-ai-azure-openai/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-azure-openai/src/test/resources/speech/jfk.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-azure-openai/src/test/resources/speech/jfk.flac


--------------------------------------------------------------------------------
/models/spring-ai-bedrock-converse/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-bedrock-converse/src/test/resources/spring-ai-reference-overview.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-bedrock-converse/src/test/resources/spring-ai-reference-overview.pdf


--------------------------------------------------------------------------------
/models/spring-ai-bedrock-converse/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-bedrock-converse/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-bedrock-converse/src/test/resources/test.video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-bedrock-converse/src/test/resources/test.video.mp4


--------------------------------------------------------------------------------
/models/spring-ai-bedrock/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.bedrock.aot.BedrockRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-bedrock/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-bedrock/src/test/resources/spring_framework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-bedrock/src/test/resources/spring_framework.png


--------------------------------------------------------------------------------
/models/spring-ai-bedrock/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-bedrock/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-deepseek/README.md:
--------------------------------------------------------------------------------
1 | [DeepSeek Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html)


--------------------------------------------------------------------------------
/models/spring-ai-deepseek/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.deepseek.aot.DeepSeekRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-deepseek/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | "You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-elevenlabs/README.md:
--------------------------------------------------------------------------------
1 | # Spring AI - ElevenLabs Text-to-Speech
2 | 
3 | [ElevenLabs Text-to-Speech Documentation](https://docs.spring.io/spring-ai/reference/api/audio/speech/elevenlabs-speech.html)


--------------------------------------------------------------------------------
/models/spring-ai-elevenlabs/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.elevenlabs.aot.ElevenLabsRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-huggingface/README.md:
--------------------------------------------------------------------------------
1 | [Hugging Face Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/huggingface.html)
2 | 
3 | 


--------------------------------------------------------------------------------
/models/spring-ai-minimax/README.md:
--------------------------------------------------------------------------------
1 | [MiniMax Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/minimax-chat.html)
2 | 
3 | [MiniMax Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/minimax-embeddings.html)


--------------------------------------------------------------------------------
/models/spring-ai-minimax/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.minimax.aot.MiniMaxRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-minimax/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant that helps people find information.
2 | Your name is {name}.
3 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/README.md:
--------------------------------------------------------------------------------
1 | [Mistral AI Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/mistralai-chat.html)
2 | 
3 | [Mistral AI Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/mistralai-embeddings.html)


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.mistralai.aot.MistralAiRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/acme/system-qa.st:
--------------------------------------------------------------------------------
1 | You're assisting with questions about products in a bicycle catalog.
2 | Use the information from the DOCUMENTS section to provide accurate answers.
3 | The answer involves referring to the price or the dimension of the bicycle, include the bicycle name in the response.
4 | If unsure, simply state that you don't know.
5 | 
6 | DOCUMENTS:
7 | {documents}


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | Your goal is to evaluate the QUESTION and ANSWER and reply with a YES or NO answer.


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI evaluator. Your task is to verify if the provided ANSWER is a direct and accurate response to the given QUESTION. If the ANSWER is correct and directly answers the QUESTION, reply with "YES". If the ANSWER is not a direct response or is inaccurate, reply with "NO".
2 | 
3 | For example:
4 | 
5 | If the QUESTION is "What is the capital of France?" and the ANSWER is "Paris.", you should respond with "YES".
6 | If the QUESTION is "What is the capital of France?" and the ANSWER is "France is in Europe.", respond with "NO".
7 | Now, evaluate the following:
8 | 


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | A previous evaluation has determined that QUESTION and ANSWER are not related.
4 | Give an explanation as to why they are not related.


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/eval/user-evaluator-message.st:
--------------------------------------------------------------------------------
1 | The question and answer to evaluate are:
2 | 
3 | QUESTION: ```{question}```
4 | 
5 | ANSWER: ```{answer}```
6 | 
7 | 


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant that helps people find information.
2 | Your name is {name}.
3 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-mistral-ai/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-mistral-ai/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-oci-genai/README.md:
--------------------------------------------------------------------------------
1 | [Oracle Cloud Infrastructure GenAI Documentation](https://docs.oracle.com/en-us/iaas/Content/generative-ai/overview.htm)
2 | 


--------------------------------------------------------------------------------
/models/spring-ai-ollama/README.md:
--------------------------------------------------------------------------------
1 | [Ollama Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/ollama-chat.html)
2 | 
3 | [Ollama Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/ollama-embeddings.html)
4 | 


--------------------------------------------------------------------------------
/models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/management/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Management support for Ollama.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.ollama.management;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/models/spring-ai-ollama/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.ollama.aot.OllamaRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-ollama/src/test/resources/doc/Ollama Chat API.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-ollama/src/test/resources/doc/Ollama Chat API.jpg


--------------------------------------------------------------------------------
/models/spring-ai-ollama/src/test/resources/norway.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-ollama/src/test/resources/norway.webp


--------------------------------------------------------------------------------
/models/spring-ai-ollama/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-ollama/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-openai/README.md:
--------------------------------------------------------------------------------
1 | [OpenAI Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/openai-chat.html)
2 | 
3 | [OpenAI Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/openai-embeddings.html)
4 | 
5 | [OpenAI Image Generation](https://docs.spring.io/spring-ai/reference/api/image/openai-image.html)
6 | 
7 | [OpenAI Transcription Generation](https://docs.spring.io/spring-ai/reference/api/audio/transcriptions/openai-transcriptions.html)
8 | 
9 | [OpenAI Text-to-Speech (TTS)](https://docs.spring.io/spring-ai/reference/api/audio/speech/openai-speech.html)


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/ImageResponseMetadata.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.openai;
18 | 
19 | public interface ImageResponseMetadata {
20 | 
21 | }
22 | 


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.openai.aot.OpenAiRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/application-logging-test.properties:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2023-2024 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | 
17 | logging.level.org.springframework.ai.chat.client.advisor=DEBUG
18 | 


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/acme/system-qa.st:
--------------------------------------------------------------------------------
1 | You're assisting with questions about products in a bicycle catalog.
2 | Use the information from the DOCUMENTS section to provide accurate answers.
3 | The answer involves referring to the price or the dimension of the bicycle, include the bicycle name in the response.
4 | If unsure, simply state that you don't know.
5 | 
6 | DOCUMENTS:
7 | {documents}


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-accurate-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | Your goal is to evaluate the QUESTION and ANSWER and reply with a YES or NO answer.


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-fact-based-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI evaluator. Your task is to verify if the provided ANSWER is a direct and accurate response to the given QUESTION. If the ANSWER is correct and directly answers the QUESTION, reply with "YES". If the ANSWER is not a direct response or is inaccurate, reply with "NO".
2 | 
3 | For example:
4 | 
5 | If the QUESTION is "What is the capital of France?" and the ANSWER is "Paris.", you should respond with "YES".
6 | If the QUESTION is "What is the capital of France?" and the ANSWER is "France is in Europe.", respond with "NO".
7 | Now, evaluate the following:
8 | 


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/eval/qa-evaluator-not-related-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | A previous evaluation has determined that QUESTION and ANSWER are not related.
4 | Give an explanation as to why they are not related.


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/eval/user-evaluator-message.st:
--------------------------------------------------------------------------------
1 | The question and answer to evaluate are:
2 | 
3 | QUESTION: ```{question}```
4 | 
5 | ANSWER: ```{answer}```
6 | 
7 | 


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/speech.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-openai/src/test/resources/speech.flac


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/speech/jfk.flac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-openai/src/test/resources/speech/jfk.flac


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/speech/speech1.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-openai/src/test/resources/speech/speech1.mp3


--------------------------------------------------------------------------------
/models/spring-ai-openai/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-openai/src/test/resources/test.png


--------------------------------------------------------------------------------
/models/spring-ai-postgresml/README.md:
--------------------------------------------------------------------------------
1 | [PostgresML Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/postgresml-embeddings.html)
2 | 


--------------------------------------------------------------------------------
/models/spring-ai-stability-ai/README.md:
--------------------------------------------------------------------------------
1 | [Stability AI Image Generation](https://docs.spring.io/spring-ai/reference/api/image/stabilityai-image.html)
2 | 


--------------------------------------------------------------------------------
/models/spring-ai-transformers/README.md:
--------------------------------------------------------------------------------
1 | [Transformers Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/onnx.html)
2 | 


--------------------------------------------------------------------------------
/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.onnx:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e3dde332c13808c718680e7bf74a574e7e5d06f55bd6e1527e51509dcb8206f3
3 | size 90387630
4 | 


--------------------------------------------------------------------------------
/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-transformers/src/main/resources/onnx/all-MiniLM-L6-v2/model.png


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-embedding/src/test/resources/test.image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-vertex-ai-embedding/src/test/resources/test.image.png


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-embedding/src/test/resources/test.video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-vertex-ai-embedding/src/test/resources/test.video.mp4


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-gemini/README.md:
--------------------------------------------------------------------------------
1 | [VertexAI Gemini Chat](https://docs.spring.io/spring-ai/reference/api/chat/vertexai-gemini-chat.html)
2 | 


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-gemini/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.vertexai.gemini.aot.VertexAiGeminiRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-gemini/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are a helpful AI assistant. Your name is {name}.
2 | You are an AI assistant that helps people find information.
3 | Your name is {name}
4 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-gemini/src/test/resources/spring-ai-reference-overview.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-vertex-ai-gemini/src/test/resources/spring-ai-reference-overview.pdf


--------------------------------------------------------------------------------
/models/spring-ai-vertex-ai-gemini/src/test/resources/vertex.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-vertex-ai-gemini/src/test/resources/vertex.test.png


--------------------------------------------------------------------------------
/models/spring-ai-zhipuai/README.md:
--------------------------------------------------------------------------------
1 | [ZhiPu AI Chat Documentation](https://docs.spring.io/spring-ai/reference/api/chat/zhipuai-chat.html)
2 | 
3 | [ZhiPu AI Embedding Documentation](https://docs.spring.io/spring-ai/reference/api/embeddings/zhipuai-embeddings.html)
4 | 
5 | [ZhiPu AI Image Documentation](https://docs.spring.io/spring-ai/reference/api/image/zhipuai-image.html)


--------------------------------------------------------------------------------
/models/spring-ai-zhipuai/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.zhipuai.aot.ZhiPuAiRuntimeHints


--------------------------------------------------------------------------------
/models/spring-ai-zhipuai/src/test/resources/prompts/system-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant that helps people find information.
2 | Your name is {name}.
3 | You should reply to the user's request with your name and also in the style of a {voice}.


--------------------------------------------------------------------------------
/models/spring-ai-zhipuai/src/test/resources/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/models/spring-ai-zhipuai/src/test/resources/test.png


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Provides classes for advising chat clients.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.chat.client.advisor;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Chat client.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.chat.client;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/test/java/org/springframework/ai/TestConfiguration.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai;
18 | 
19 | import org.springframework.boot.SpringBootConfiguration;
20 | 
21 | @SpringBootConfiguration
22 | public class TestConfiguration {
23 | 
24 | }
25 | 


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/test/resources/application-logging-test.properties:
--------------------------------------------------------------------------------
 1 | #
 2 | # Copyright 2023-2024 the original author or authors.
 3 | #
 4 | # Licensed under the Apache License, Version 2.0 (the "License");
 5 | # you may not use this file except in compliance with the License.
 6 | # You may obtain a copy of the License at
 7 | #
 8 | #      https://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | logging.level.org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor=DEBUG
17 | logging.level.ch.qos.logback=ERROR
18 | 


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/test/resources/system-prompt.txt:
--------------------------------------------------------------------------------
1 | instructions


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/test/resources/tabby-cat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-client-chat/src/test/resources/tabby-cat.png


--------------------------------------------------------------------------------
/spring-ai-client-chat/src/test/resources/user-prompt.txt:
--------------------------------------------------------------------------------
1 | my question


--------------------------------------------------------------------------------
/spring-ai-commons/src/main/java/org/springframework/ai/content/MediaContent.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.content;
18 | 
19 | import java.util.List;
20 | 
21 | public interface MediaContent extends Content {
22 | 
23 | 	/**
24 | 	 * Get the media associated with the content.
25 | 	 */
26 | 	List<Media> getMedia();
27 | 
28 | }
29 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/main/java/org/springframework/ai/content/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Core observation abstractions.
19 |  */
20 | package org.springframework.ai.content;
21 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/main/java/org/springframework/ai/document/MetadataMode.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.document;
18 | 
19 | public enum MetadataMode {
20 | 
21 | 	ALL, EMBED, INFERENCE, NONE
22 | 
23 | }
24 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/main/java/org/springframework/ai/document/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.document;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/main/java/org/springframework/ai/observation/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Core observation abstractions.
19 |  */
20 | package org.springframework.ai.observation;
21 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/test/java/org/springframework/ai/TestConfiguration.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai;
18 | 
19 | import org.springframework.boot.SpringBootConfiguration;
20 | 
21 | @SpringBootConfiguration
22 | public class TestConfiguration {
23 | 
24 | }
25 | 


--------------------------------------------------------------------------------
/spring-ai-commons/src/test/resources/events.json:
--------------------------------------------------------------------------------
 1 | [
 2 |   {
 3 |     "sessions": [
 4 |       {
 5 |         "description": "Session one"
 6 |       },
 7 |       {
 8 |         "description": "Session two"
 9 |       },
10 |       {
11 |         "description": "Session three"
12 |       }
13 |     ]
14 |   }
15 | ]


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/antora.yml:
--------------------------------------------------------------------------------
 1 | name: ai
 2 | version: true
 3 | title: Spring AI
 4 | nav:
 5 |   - modules/ROOT/nav.adoc
 6 | ext:
 7 |   collector:
 8 |     - run:
 9 |         command: mvnw process-resources
10 |         local: true
11 |       scan:
12 |         dir: spring-ai-docs/target/classes/antora-resources
13 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-api-classes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-api-classes.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-non-stream-vs-stream.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/advisors-non-stream-vs-stream.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/anthropic-claude3-class-diagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/anthropic-claude3-class-diagram.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/anthropic-claude3-events-model.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/anthropic-claude3-events-model.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-anthropic-chat-api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-anthropic-chat-api.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-cohere-chat-low-level-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-cohere-chat-low-level-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-cohere-embedding-low-level-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-cohere-embedding-low-level-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-llama-chat-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-llama-chat-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-titan-chat-low-level-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-titan-chat-low-level-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-titan-embedding-low-level-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/bedrock/bedrock-titan-embedding-low-level-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/chat-options-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/chat-options-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/deepseek_r1_multiround_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/deepseek_r1_multiround_example.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/embeddings-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/embeddings-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/etl-class-diagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/etl-class-diagram.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/etl-pipeline.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/etl-pipeline.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/function-calling-basic-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/function-calling-basic-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/function-calling-tool-context.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/function-calling-tool-context.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/0.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/1.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/10.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/11.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/13.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/14.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/15.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/16.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/17.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/18.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/19.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/2.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/20.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/20.1.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/20.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/20.2.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/21.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/22.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/23.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/24.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/25.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/26.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/27.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/28.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/29.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/3.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/30.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/31.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/32.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/33.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/34.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/34.1.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/34.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/34.2.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/35.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/36.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/37.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/38.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/39.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/39.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/4.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/40.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/5.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/6.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/7.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/8.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/9.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/wikipedia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/hanadb/wikipedia.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/lawofcosines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/lawofcosines.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/mcp/java-mcp-client-architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/mcp/java-mcp-client-architecture.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/mcp/java-mcp-server-architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/mcp/java-mcp-server-architecture.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/mistral-ai-function-calling-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/mistral-ai-function-calling-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/model-hierarchy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/model-hierarchy.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/multimodal.test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/multimodal.test.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-chat-completion-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-chat-completion-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-chatmodel-function-call.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-chatmodel-function-call.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-function-calling-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/ollama-function-calling-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chat-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chat-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chatclient-function-call.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-chatclient-function-call.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-function-calling-flow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/openai-function-calling-flow.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/orbis-sensualium-pictus2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/orbis-sensualium-pictus2.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/pythagorean-triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/pythagorean-triangle.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-completions-clients.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-chat-completions-clients.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-concepts-model-types.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-concepts-model-types.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-concepts-tokens.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-concepts-tokens.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-deepseek-integration.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-deepseek-integration.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-dependencies.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-dependencies.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-document1-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-document1-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-embeddings.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-embeddings.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-generic-model-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-generic-model-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-groq-functions-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-groq-functions-2.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-groq-integration.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-groq-integration.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-mcp-architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-mcp-architecture.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-message-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-message-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-function-calling.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-function-calling.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-llm-api-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-llm-api-1.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-registration.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-nvidia-registration.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-ollama-over-openai.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-ollama-over-openai.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-perplexity-integration.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-perplexity-integration.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-prompt-stuffing.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-prompt-stuffing.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-rag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/spring-ai-rag.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-architecture.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-hierarchy4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/structured-output-hierarchy4.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/test.pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/test.pdf.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/test.video.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/test.video.jpeg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/framework-manager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/framework-manager.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/framework-manager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/framework-manager.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/return-direct.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/return-direct.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/return-direct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/return-direct.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-calling-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-calling-01.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-context.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-context.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-context.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/tools/tool-context.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/vector_2d_coordinates.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/vector_2d_coordinates.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/vector_similarity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/vector_similarity.png


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/vertex-ai-chat-low-level-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/vertex-ai-chat-low-level-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/images/vertex-ai-gemini-native-api.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/spring-ai-docs/src/main/antora/modules/ROOT/images/vertex-ai-gemini-native-api.jpg


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/speech.adoc:
--------------------------------------------------------------------------------
1 | [[Speech]]
2 | = Text-To-Speech (TTS) API
3 | 
4 | Spring AI provides support for the following Text-To-Speech (TTS) providers:
5 | 
6 | - xref:api/audio/speech/openai-speech.adoc[OpenAI's Speech API]
7 | - xref:api/audio/speech/elevenlabs-speech.adoc[Eleven Labs Text-To-Speech API]
8 | 
9 | Future enhancements may introduce additional providers, at which point a common `TextToSpeechModel` and `StreamingTextToSpeechModel` interface will be extracted.


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/audio/transcriptions.adoc:
--------------------------------------------------------------------------------
1 | [[Transcription]]
2 | = Transcription API
3 | 
4 | Spring AI provides support for OpenAI's Transcription API.
5 | When additional providers for Transcription are implemented, a common `AudioTranscriptionModel` interface will be extracted.


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/bedrock-chat.adoc:
--------------------------------------------------------------------------------
1 | include::bedrock.adoc[]


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/google-vertexai.adoc:
--------------------------------------------------------------------------------
1 | 
2 | = Google VertexAI API
3 | 
4 | link:https://cloud.google.com/vertex-ai/docs/reference[VertexAI API] provides high-quality custom machine learning models with minimal machine learning expertise and effort.
5 | 
6 | Spring AI provides integration with VertexAI API through the following client(s):
7 | 
8 | * xref:api/chat/vertexai-gemini-chat.adoc[]


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/moonshot-chat.adoc:
--------------------------------------------------------------------------------
1 | = Moonshot AI Chat
2 | 
3 | This functionality has been moved to the Spring AI Community repository.
4 | 
5 | Please visit https://github.com/spring-ai-community/moonshot for the latest version.


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat/qianfan-chat.adoc:
--------------------------------------------------------------------------------
1 | = QianFan Chat
2 | 
3 | This functionality has been moved to the Spring AI Community repository.
4 | 
5 | Please visit https://github.com/spring-ai-community/qianfan for the latest version.
6 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/embeddings/qianfan-embeddings.adoc:
--------------------------------------------------------------------------------
1 | = QianFan Embeddings
2 | 
3 | This functionality has been moved to the Spring AI Community repository.
4 | 
5 | Please visit https://github.com/spring-ai-community/qianfan for the latest version.
6 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/image/qianfan-image.adoc:
--------------------------------------------------------------------------------
1 | = QianFan Image
2 | 
3 | This functionality has been moved to the Spring AI Community repository.
4 | 
5 | Please visit https://github.com/spring-ai-community/qianfan for the latest version.
6 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/speech.adoc:
--------------------------------------------------------------------------------
1 | [[Speech]]
2 | = Speech Model API
3 | 
4 | Spring AI provides support for OpenAI's Text-To-Speech (TTS) API.
5 | When additional providers for Speech are implemented, a common `SpeechModel`  and `StreamingSpeechModel` interface will be extracted.


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/transcriptions.adoc:
--------------------------------------------------------------------------------
1 | [[Transcription]]
2 | = Transcription Model API
3 | 
4 | Spring AI provides support for OpenAI's Transcription Model API.
5 | When additional providers for Transcription are implemented, a common `AudioTranscriptionModel` interface will be extracted.


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/coherence.adoc:
--------------------------------------------------------------------------------
 1 | 
 2 | == Accessing the Native Client
 3 | 
 4 | The Coherence Vector Store implementation provides access to the underlying native Coherence client (`Session`) through the `getNativeClient()` method:
 5 | 
 6 | [source,java]
 7 | ----
 8 | CoherenceVectorStore vectorStore = context.getBean(CoherenceVectorStore.class);
 9 | Optional<Session> nativeClient = vectorStore.getNativeClient();
10 | 
11 | if (nativeClient.isPresent()) {
12 |     Session session = nativeClient.get();
13 |     // Use the native client for Coherence-specific operations
14 | }
15 | ----
16 | 
17 | The native client gives you access to Coherence-specific features and operations that might not be exposed through the `VectorStore` interface.
18 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/modules/ROOT/pages/glossary.adoc:
--------------------------------------------------------------------------------
1 | [[appendix]]
2 | [[glossary]]
3 | = Glossary
4 | 


--------------------------------------------------------------------------------
/spring-ai-docs/src/main/antora/resources/antora-resources/antora.yml:
--------------------------------------------------------------------------------
1 | version: ${antora-component.version}
2 | prerelease: ${antora-component.prerelease}
3 | 


--------------------------------------------------------------------------------
/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/tool/domain/Author.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.integration.tests.tool.domain;
18 | 
19 | /**
20 |  * @author Thomas Vitale
21 |  */
22 | public record Author(String name) {
23 | }
24 | 


--------------------------------------------------------------------------------
/spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/tool/domain/Book.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.integration.tests.tool.domain;
18 | 
19 | /**
20 |  * @author Thomas Vitale
21 |  */
22 | public record Book(String title, String author) {
23 | }
24 | 


--------------------------------------------------------------------------------
/spring-ai-integration-tests/src/test/resources/application.yml:
--------------------------------------------------------------------------------
 1 | spring:
 2 |   main:
 3 |     web-application-type: none
 4 |   ai:
 5 |     openai:
 6 |       api-key: ${OPENAI_API_KEY}
 7 |       chat:
 8 |         options:
 9 |           model: gpt-4o-mini
10 |       embedding:
11 |         options:
12 |           model: text-embedding-ada-002
13 |     retry:
14 |       max-attempts: 3
15 |     vectorstore:
16 |       pgvector:
17 |         initialize-schema: true


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/aot/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.aot;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/audio/tts/TextToSpeechResponseMetadata.java:
--------------------------------------------------------------------------------
 1 | package org.springframework.ai.audio.tts;
 2 | 
 3 | import org.springframework.ai.model.MutableResponseMetadata;
 4 | 
 5 | /**
 6 |  * Metadata associated with an audio transcription response.
 7 |  *
 8 |  * @author Alexandros Pappas
 9 |  */
10 | public class TextToSpeechResponseMetadata extends MutableResponseMetadata {
11 | 
12 | }
13 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/chat/memory/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.chat.memory;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/chat/messages/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.chat.messages;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/chat/observation/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Provides the API for chat observations.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.chat.observation;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/FunctionPromptTemplate.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.chat.prompt;
18 | 
19 | public class FunctionPromptTemplate extends PromptTemplate {
20 | 
21 | 	private String name;
22 | 
23 | 	public FunctionPromptTemplate(String template) {
24 | 		super(template);
25 | 	}
26 | 
27 | }
28 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/PromptTemplateStringActions.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.chat.prompt;
18 | 
19 | import java.util.Map;
20 | 
21 | public interface PromptTemplateStringActions {
22 | 
23 | 	String render();
24 | 
25 | 	String render(Map<String, Object> model);
26 | 
27 | }
28 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/embedding/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Provides the API for embedding observations.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.embedding;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/image/ImageGenerationMetadata.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.image;
18 | 
19 | import org.springframework.ai.model.ResultMetadata;
20 | 
21 | public interface ImageGenerationMetadata extends ResultMetadata {
22 | 
23 | }
24 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/image/ImageModel.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | package org.springframework.ai.image;
18 | 
19 | import org.springframework.ai.model.Model;
20 | 
21 | @FunctionalInterface
22 | public interface ImageModel extends Model<ImagePrompt, ImageResponse> {
23 | 
24 | 	ImageResponse call(ImagePrompt request);
25 | 
26 | }
27 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/image/observation/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Provides classes for observing image data.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.image.observation;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/model/observation/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * Provides classes for observing model data.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.model.observation;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/model/tool/internal/ToolCallReactiveContextHolder.java:
--------------------------------------------------------------------------------
 1 | package org.springframework.ai.model.tool.internal;
 2 | 
 3 | import reactor.util.context.Context;
 4 | import reactor.util.context.ContextView;
 5 | 
 6 | /**
 7 |  * This class bridges blocking Tools call and the reactive context. When calling tools, it
 8 |  * captures the context in a thread local, making it available to re-inject in a nested
 9 |  * reactive call.
10 |  *
11 |  * @author Daniel Garnier-Moiroux
12 |  * @since 1.1.0
13 |  */
14 | public class ToolCallReactiveContextHolder {
15 | 
16 | 	private static final ThreadLocal<ContextView> context = ThreadLocal.withInitial(Context::empty);
17 | 
18 | 	public static void setContext(ContextView contextView) {
19 | 		context.set(contextView);
20 | 	}
21 | 
22 | 	public static ContextView getContext() {
23 | 		return context.get();
24 | 	}
25 | 
26 | 	public static void clearContext() {
27 | 		context.remove();
28 | 	}
29 | 
30 | }
31 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/model/tool/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.model.tool;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/annotation/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.annotation;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/definition/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.definition;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/execution/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.execution;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/function/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.function;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/metadata/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.metadata;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/method/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.method;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/resolution/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.resolution;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/tool/support/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.tool.support;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/util/json/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.util.json;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/java/org/springframework/ai/util/json/schema/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.util.json.schema;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\
2 | 	org.springframework.ai.aot.SpringAiCoreRuntimeHints,\
3 | 	org.springframework.ai.aot.KnuddelsRuntimeHints,\
4 |     org.springframework.ai.aot.ToolRuntimeHints
5 | 
6 | org.springframework.beans.factory.aot.BeanRegistrationAotProcessor=\
7 |     org.springframework.ai.aot.ToolBeanRegistrationAotProcessor
8 | 


--------------------------------------------------------------------------------
/spring-ai-model/src/test/resources/prompt-system.txt:
--------------------------------------------------------------------------------
1 | Tell me, did you sail across the sun?


--------------------------------------------------------------------------------
/spring-ai-model/src/test/resources/prompt-user.txt:
--------------------------------------------------------------------------------
1 | Hello, world!


--------------------------------------------------------------------------------
/spring-ai-rag/src/main/java/org/springframework/ai/rag/advisor/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.rag.advisor;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-rag/src/main/java/org/springframework/ai/rag/postretrieval/document/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.rag.postretrieval.document;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-rag/src/main/java/org/springframework/ai/rag/retrieval/join/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * RAG Sub-Module: Document Join.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.rag.retrieval.join;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-rag/src/main/java/org/springframework/ai/rag/retrieval/search/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | /**
18 |  * RAG Sub-Module: Document Search.
19 |  */
20 | @NonNullApi
21 | @NonNullFields
22 | package org.springframework.ai.rag.retrieval.search;
23 | 
24 | import org.springframework.lang.NonNullApi;
25 | import org.springframework.lang.NonNullFields;
26 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/chroma/chroma-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   chroma:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '8000'
6 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/chroma/chroma-with-token-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   chroma:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '8000'
6 |     environment:
7 |       - CHROMA_SERVER_AUTHN_CREDENTIALS=secret
8 |       - CHROMA_SERVER_AUTHN_PROVIDER=chromadb.auth.token_authn.TokenAuthenticationServerProvider
9 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/mongo/mongo-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   mongo:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '27017'
6 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/ollama/ollama-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   ollama:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '11434'
6 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/opensearch/localstack-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   localstack:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '4566'
6 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/opensearch/opensearch-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   opensearch:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '9200'
6 |     environment:
7 |       - OPENSEARCH_INITIAL_ADMIN_PASSWORD=D3v3l0p-ment
8 |       - discovery.type=single-node
9 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/qdrant/qdrant-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   qdrant:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '6334'
6 |     environment:
7 |       - QDRANT__SERVICE__API_KEY=springai
8 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/typesense/typesense-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   typesense:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '8108'
6 |     command: '--data-dir /tmp --enable-cors'
7 |     environment:
8 |         - TYPESENSE_API_KEY=secret
9 | 


--------------------------------------------------------------------------------
/spring-ai-spring-boot-docker-compose/src/test/resources/org/springframework/ai/docker/compose/service/connection/weaviate/weaviate-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 |   weaviate:
3 |     image: '{imageName}'
4 |     ports:
5 |       - '8080'
6 |     environment:
7 |       - AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
8 |       - PERSISTENCE_DATA_PATH=/var/lib/weaviate
9 | 


--------------------------------------------------------------------------------
/spring-ai-template-st/src/main/java/org/springframework/ai/template/st/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2025 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.template.st;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-test/README.md:
--------------------------------------------------------------------------------
1 | TODO:
2 | 	Documentation and sample tests using the `BasicEvaluationTest`.


--------------------------------------------------------------------------------
/spring-ai-test/src/main/resources/prompts/spring/test/evaluation/qa-evaluator-accurate-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | Your goal is to evaluate the QUESTION and ANSWER and reply with a YES or NO answer.


--------------------------------------------------------------------------------
/spring-ai-test/src/main/resources/prompts/spring/test/evaluation/qa-evaluator-fact-based-answer.st:
--------------------------------------------------------------------------------
1 | You are an AI evaluator. Your task is to verify if the provided ANSWER is a direct and accurate response to the given QUESTION. If the ANSWER is correct and directly answers the QUESTION, reply with "YES". If the ANSWER is not a direct response or is inaccurate, reply with "NO".
2 | 
3 | For example:
4 | 
5 | If the QUESTION is "What is the capital of France?" and the ANSWER is "Paris.", you should respond with "YES".
6 | If the QUESTION is "What is the capital of France?" and the ANSWER is "France is in Europe.", respond with "NO".
7 | Now, evaluate the following:
8 | 


--------------------------------------------------------------------------------
/spring-ai-test/src/main/resources/prompts/spring/test/evaluation/qa-evaluator-not-related-message.st:
--------------------------------------------------------------------------------
1 | You are an AI assistant who helps users to evaluate if the answers to questions are accurate.
2 | You will be provided with a QUESTION and an ANSWER.
3 | A previous evaluation has determined that QUESTION and ANSWER are not related.
4 | Give an explanation as to why they are not related.


--------------------------------------------------------------------------------
/spring-ai-test/src/main/resources/prompts/spring/test/evaluation/user-evaluator-message.st:
--------------------------------------------------------------------------------
1 | The question and answer to evaluate are:
2 | 
3 | QUESTION: ```{question}```
4 | 
5 | ANSWER: ```{answer}```
6 | 
7 | 


--------------------------------------------------------------------------------
/spring-ai-test/src/main/resources/test/data/time.shelter.txt:
--------------------------------------------------------------------------------
1 | Somewhere in the Andes, they believe in this very day that the future is behind you. It comes up from behind your back, surprising and unforeseeable, while the past is always before your eyes, that which has already happened. When they talk about the past, the people of the Aymara tribe point in front of them. You walk forward facing the past, and you turn back toward the future.
2 | ― Georgi Gospodinov, Time Shelter


--------------------------------------------------------------------------------
/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/package-info.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | @NonNullApi
18 | @NonNullFields
19 | package org.springframework.ai.vectorstore;
20 | 
21 | import org.springframework.lang.NonNullApi;
22 | import org.springframework.lang.NonNullFields;
23 | 


--------------------------------------------------------------------------------
/spring-ai-vector-store/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "groups": [],
 3 |   "properties": [
 4 |     {
 5 |       "name": "spring.ai.vectorstore.type",
 6 |       "type": "java.lang.String",
 7 |       "description": "Vector store type. Requires a vector store."
 8 |     }
 9 |   ],
10 |   "hints": [],
11 |   "ignored": {
12 |     "properties": []
13 |   }
14 | }


--------------------------------------------------------------------------------
/src/checkstyle/checkstyle-header.txt:
--------------------------------------------------------------------------------
 1 | ^\Q/*\E$
 2 | ^\Q * Copyright \E20\d\d\-20\d\d\Q the original author or authors.\E$
 3 | ^\Q *\E$
 4 | ^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$
 5 | ^\Q * you may not use this file except in compliance with the License.\E$
 6 | ^\Q * You may obtain a copy of the License at\E$
 7 | ^\Q *\E$
 8 | ^\Q *      https://www.apache.org/licenses/LICENSE-2.0\E$
 9 | ^\Q *\E$
10 | ^\Q * Unless required by applicable law or agreed to in writing, software\E$
11 | ^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$
12 | ^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$
13 | ^\Q * See the License for the specific language governing permissions and\E$
14 | ^\Q * limitations under the License.\E$
15 | ^\Q */\E$
16 | ^$
17 | ^.*$


--------------------------------------------------------------------------------
/vector-stores/spring-ai-azure-cosmos-db-store/README.md:
--------------------------------------------------------------------------------
1 | [Azure Cosmos DB Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/azure-cosmos-db.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-azure-cosmos-db-store/src/test/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.ai.vectorstore.cosmosdb.databaseName=db
2 | spring.ai.vectorstore.cosmosdb.containerName=container
3 | spring.ai.vectorstore.cosmosdb.key=${COSMOSDB_AI_ENDPOINT}
4 | spring.ai.vectorstore.cosmosdb.uri=${COSMOSDB_AI_KEY}
5 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-azure-store/README.md:
--------------------------------------------------------------------------------
1 | [Azure AI Search Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/azure.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/README.md:
--------------------------------------------------------------------------------
1 | [Apache Cassandra Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/apache-cassandra.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/main/resources/application.conf:
--------------------------------------------------------------------------------
 1 | # Reference configuration for the DataStax Java driver for Apache Cassandra®
 2 | #  see https://github.com/apache/cassandra-java-driver/tree/4.x/manual/core/configuration
 3 | #
 4 | # 
 5 | # when using spring-boot autoconfigure this will not be used
 6 | #  instead CassandraVectorStoreAutoConfiguration.driverConfigLoaderBuilderCustomizer() is used
 7 | datastax-java-driver {
 8 |   profiles {
 9 |     spring-ai-updates {
10 |       basic.request {
11 |         consistency = LOCAL_QUORUM
12 |         timeout = 1 seconds
13 |         default-idempotence = true
14 |       }
15 |     }
16 |     spring-ai-search {
17 |         basic.request {
18 |           consistency = LOCAL_ONE
19 |           timeout = 10 seconds
20 |           default-idempotence = true
21 |       }
22 |     }
23 |   }
24 | }


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/application.conf:
--------------------------------------------------------------------------------
1 | # Reference configuration for the DataStax Java driver for Apache Cassandra®.
2 | #  see https://github.com/apache/cassandra-java-driver/tree/4.x/manual/core/configuration
3 | datastax-java-driver {
4 |   # drop statements in tests can be slow
5 |   basic.request.timeout = 20 seconds
6 | }
7 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_full_schema.cql:
--------------------------------------------------------------------------------
 1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
 2 | 
 3 | CREATE TABLE IF NOT EXISTS test_wikidata.articles (
 4 |     wiki text,
 5 |     language text,
 6 |     title text,
 7 |     chunk_no int,
 8 |     id int,
 9 |     revision int,
10 |     body text,
11 |     all_minilm_l6_v2_embedding vector<float, 384>,
12 |     PRIMARY KEY ((wiki, language, title), chunk_no)
13 | );
14 | 
15 | CREATE CUSTOM INDEX IF NOT EXISTS all_minilm_l6_v2_ann ON test_wikidata.articles(all_minilm_l6_v2_embedding) USING 'SAI'
16 |   WITH OPTIONS = { 'similarity_function': 'COSINE' };
17 | 
18 | 
19 | CREATE CUSTOM INDEX IF NOT EXISTS id_idx ON test_wikidata.articles(id) USING 'SAI';


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_partial_0_schema.cql:
--------------------------------------------------------------------------------
1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
2 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_partial_1_schema.cql:
--------------------------------------------------------------------------------
 1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
 2 | 
 3 | CREATE TABLE IF NOT EXISTS test_wikidata.articles (
 4 |     wiki text,
 5 |     language text,
 6 |     title text,
 7 |     chunk_no int,
 8 |     id int,
 9 |     revision int,
10 |     body text,
11 |     all_minilm_l6_v2_embedding vector<float, 384>,
12 |     PRIMARY KEY ((wiki, language, title), chunk_no)
13 | );
14 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_partial_2_schema.cql:
--------------------------------------------------------------------------------
 1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
 2 | 
 3 | CREATE TABLE IF NOT EXISTS test_wikidata.articles (
 4 |     wiki text,
 5 |     language text,
 6 |     title text,
 7 |     chunk_no int,
 8 |     id int,
 9 |     all_minilm_l6_v2_embedding vector<float, 384>,
10 |     PRIMARY KEY ((wiki, language, title), chunk_no)
11 | );
12 | 
13 | CREATE CUSTOM INDEX IF NOT EXISTS all_minilm_l6_v2_ann ON test_wikidata.articles(all_minilm_l6_v2_embedding) USING 'SAI'
14 |   WITH OPTIONS = { 'similarity_function': 'COSINE' };
15 | 
16 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_partial_3_schema.cql:
--------------------------------------------------------------------------------
 1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
 2 | 
 3 | CREATE TABLE IF NOT EXISTS test_wikidata.articles (
 4 |     wiki text,
 5 |     language text,
 6 |     title text,
 7 |     chunk_no int,
 8 |     id int,
 9 |     revision int,
10 |     body text,
11 |     PRIMARY KEY ((wiki, language, title), chunk_no)
12 | );


--------------------------------------------------------------------------------
/vector-stores/spring-ai-cassandra-store/src/test/resources/test_wiki_partial_4_schema.cql:
--------------------------------------------------------------------------------
 1 | CREATE KEYSPACE IF NOT EXISTS test_wikidata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
 2 | 
 3 | CREATE TABLE IF NOT EXISTS test_wikidata.articles (
 4 |     wiki text,
 5 |     language text,
 6 |     title text,
 7 |     chunk_no int,
 8 |     messages text,
 9 |     PRIMARY KEY ((wiki, language, title), chunk_no)
10 | );


--------------------------------------------------------------------------------
/vector-stores/spring-ai-chroma-store/README.md:
--------------------------------------------------------------------------------
1 | [Chroma Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/chroma.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-chroma-store/src/test/resources/server.htpasswd:
--------------------------------------------------------------------------------
1 | admin:$2y$05$qSmQb0YJmaLRIhbT7MRBRu6bPK267dxkzLikr6WA/7JfGERc7dKkW
2 | 
3 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-coherence-store/README.md:
--------------------------------------------------------------------------------
1 | [Oracle Coherence Vector Search Documentation](https://docs.oracle.com/)
2 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-couchbase-store/README.md:
--------------------------------------------------------------------------------
1 | [Couchbase Vector Store Documentation](https://docs.spring.io/spring-ai/reference/1.0-SNAPSHOT/api/vectordbs/couchbase.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-couchbase-store/src/test/resources/application.properties:
--------------------------------------------------------------------------------
1 | spring.application.name=demo
2 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-gemfire-store/README.md:
--------------------------------------------------------------------------------
1 | [GemFire Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/gemfire.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-hanadb-store/README.md:
--------------------------------------------------------------------------------
1 | [SAP Hana Cloud Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/hana.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-hanadb-store/src/test/resources/Cricket_World_Cup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/spring-projects/spring-ai/8a5635d3f59a7b122a3fa8049534b979ae8e15d0/vector-stores/spring-ai-hanadb-store/src/test/resources/Cricket_World_Cup.pdf


--------------------------------------------------------------------------------
/vector-stores/spring-ai-hanadb-store/src/test/resources/application.properties:
--------------------------------------------------------------------------------
 1 | spring.ai.openai.api-key=${OPENAI_API_KEY}
 2 | spring.ai.openai.embedding.options.model=text-embedding-ada-002
 3 | 
 4 | spring.datasource.driver-class-name=com.sap.db.jdbc.Driver
 5 | spring.datasource.url=${HANA_DATASOURCE_URL}
 6 | spring.datasource.username=${HANA_DATASOURCE_USERNAME}
 7 | spring.datasource.password=${HANA_DATASOURCE_PASSWORD}
 8 | 
 9 | spring.ai.vectorstore.hanadb.tableName=CRICKET_WORLD_CUP
10 | spring.ai.vectorstore.hanadb.topK=3
11 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-mariadb-store/README.md:
--------------------------------------------------------------------------------
1 | [MariaDB Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/mariadb.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-milvus-store/README.md:
--------------------------------------------------------------------------------
1 | [Milvus Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/milvus.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-neo4j-store/README.md:
--------------------------------------------------------------------------------
1 | [Neo4j Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/neo4j.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-oracle-store/README.md:
--------------------------------------------------------------------------------
1 | [Oracle AI Vector Search Documentation](https://docs.oracle.com/en/database/oracle/oracle-database/23/nfcoa/ai_vector_search.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-oracle-store/src/test/resources/initialize.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Copyright 2023-2024 the original author or authors.
 3 |  *
 4 |  * Licensed under the Apache License, Version 2.0 (the "License");
 5 |  * you may not use this file except in compliance with the License.
 6 |  * You may obtain a copy of the License at
 7 |  *
 8 |  *      https://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  * Unless required by applicable law or agreed to in writing, software
11 |  * distributed under the License is distributed on an "AS IS" BASIS,
12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  * See the License for the specific language governing permissions and
14 |  * limitations under the License.
15 |  */
16 | 
17 | -- Exit on any errors
18 | WHENEVER SQLERROR EXIT SQL.SQLCODE
19 | 
20 | -- Configure the size of the Vector Pool to 1 GiB.
21 | ALTER SYSTEM SET vector_memory_size=1G SCOPE=SPFILE;
22 | 
23 | SHUTDOWN ABORT;
24 | STARTUP;
25 | 
26 | exit;
27 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-pgvector-store/README.md:
--------------------------------------------------------------------------------
1 | [PGvector Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/pgvector.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-pinecone-store/README.md:
--------------------------------------------------------------------------------
1 | [Pinecone Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/pinecone.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-pinecone-store/src/main/resources/META-INF/spring/aot.factories:
--------------------------------------------------------------------------------
1 | org.springframework.aot.hint.RuntimeHintsRegistrar=org.springframework.ai.vectorstore.pinecone.PineconeVectorStoreHints
2 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-qdrant-store/README.md:
--------------------------------------------------------------------------------
 1 | # Qdrant Vector Store
 2 | 
 3 | [Reference Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/qdrant.html)
 4 | 
 5 | ## Run locally
 6 | 
 7 | ### Accessing the Web UI
 8 | 
 9 | First, run the Docker container:
10 | 
11 | ```
12 | docker run -p 6333:6333 -p 6334:6334 \
13 |     -v $(pwd)/qdrant_storage:/qdrant/storage:z \
14 |     qdrant/qdrant
15 | ```
16 | 
17 | ### Security: Adding API Key to Qdrant Container
18 | To enhance security, you can add an API key to your Qdrant container using the environment variable.
19 | 
20 | ```
21 | -e QDRANT__SERVICE__API_KEY=<your_generated_api_key_here>
22 | ```
23 | 
24 | This ensures that only authorized users with the correct API key can access the Qdrant service.
25 | 
26 | The GUI is available at http://localhost:6333/dashboard
27 | 
28 | ## Qdrant references
29 | 
30 | - https://qdrant.tech/documentation/interfaces/
31 | - https://github.com/qdrant/java-client
32 | 


--------------------------------------------------------------------------------
/vector-stores/spring-ai-redis-store/README.md:
--------------------------------------------------------------------------------
1 | [Redis Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/redis.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-weaviate-store/README.md:
--------------------------------------------------------------------------------
1 | [Weaviate Vector Store Documentation](https://docs.spring.io/spring-ai/reference/api/vectordbs/weaviate.html)


--------------------------------------------------------------------------------
/vector-stores/spring-ai-weaviate-store/src/test/resources/docker-compose.yml:
--------------------------------------------------------------------------------
 1 | version: '3.4'
 2 | services:
 3 |   weaviate:
 4 |     command:
 5 |     - --host
 6 |     - 0.0.0.0
 7 |     - --port
 8 |     - '8080'
 9 |     - --scheme
10 |     - http
11 |     image: semitechnologies/weaviate:1.22.4
12 |     ports:
13 |     - "8080:8080"
14 |     restart: on-failure:0
15 |     environment:
16 |       QUERY_DEFAULTS_LIMIT: 25
17 |       AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
18 |       PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
19 |       DEFAULT_VECTORIZER_MODULE: 'none'
20 |       CLUSTER_HOSTNAME: 'node1'
21 | 


--------------------------------------------------------------------------------