= Spring AI API

== Introduction

The Spring AI API covers a wide range of functionalities.
Each major feature is detailed in its own dedicated section.
To provide an overview, the following key functionalities are available:

=== AI Model API

Portable `Model API` across AI providers for `Chat`, `Text to Image`, `Audio Transcription`, `Text to Speech`, and `Embedding` models.
Both `synchronous` and `stream` API options are supported.
Dropping down to access model specific features is also supported.

image::model-hierarchy.jpg[Model hierarchy, width=900, align="center"]

With support for AI Models from OpenAI, Microsoft, Amazon, Google, Amazon Bedrock, Hugging Face and more.

image::spring-ai-chat-completions-clients.jpg[align="center", width="800px"]

=== Vector Store API

Portable `Vector Store API` across multiple providers, including a novel `SQL-like metadata filter API` that is also portable. Support for 14 vector databases are available.

=== Tool Calling API

Spring AI makes it easy to have the AI model invoke your services as `@Tool`-annotated methods or POJO `java.util.Function` objects.

image::tools/tool-calling-01.jpg[The main sequence of actions for tool calling, width=500, align="center"]

Check the Spring AI xref::api/tools.adoc[Tool Calling] documentation.

=== Auto Configuration

Spring Boot Auto Configuration and Starters for AI Models and Vector Stores.

=== ETL Data Engineering

ETL framework for Data Engineering.  This provides the basis of loading data into a vector database, helping implement the Retrieval Augmented Generation pattern that enables you to bring your data to the AI model to incorporate into its response.

image::etl-pipeline.jpg[align="center"]

== Feedback and Contributions

The project's https://github.com/spring-projects/spring-ai/discussions[GitHub discussions] is a great place to send feedback.

