Spring AI

Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.

Features

Portable API support across AI providers for Chat, text-to-image, and Embedding models. Both synchronous and stream API options are supported. Dropping down to access model-specific features is also supported.

Chat Models

  • Amazon Bedrock
    • Anthropic
    • Cohere's Command
    • AI21 Labs' Jurassic-2
    • Meta's LLama
    • Amazon's Titan
  • Anthropic Claude
  • Azure Open AI
  • Google Vertex AI
    • PaLM2
    • Gemini
  • Groq
  • HuggingFace - access thousands of models, including those from Meta such as Llama
  • MistralAI
  • MiniMax
  • Moonshot AI
  • Ollama - run AI models on your local machine
  • OpenAI
  • QianFan
  • ZhiPu AI
  • Watsonx.AI

Text-to-image Models

  • OpenAI with DALL-E
  • StabilityAI

Transcription (audio to text) Models

  • OpenAI

Embedding Models

  • Azure OpenAI
  • Amazon Bedrock
    • Cohere
    • Titan
  • Azure OpenAI
  • Mistral AI
  • MiniMax
  • Ollama
  • (ONNX) Transformers
  • OpenAI
  • PostgresML
  • QianFan
  • VertexAI
    • Text
    • Multimodal
    • PaLM2
  • ZhiPu AI

The Vector Store API provides portability across different providers, featuring a novel SQL-like metadata filtering API that maintains portability.

Vector Databases

  • Azure AI Service
  • Apache Cassandra
  • Chroma
  • Elasticsearch
  • GemFire
  • Milvus
  • MongoDB Atlas
  • Neo4j
  • OpenSearch
  • Oracle
  • PGvector
  • Pinecone
  • Qdrant
  • Redis
  • SAP Hana
  • Typesense
  • Weaviate

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

Function calling You can declare java.util.Function implementations to OpenAI models for use in their prompt responses. You can directly provide these functions as objects or refer to their names if registered as a @Bean within the application context. This feature minimizes unnecessary code and enables the AI model to ask for more information to fulfill its response.

Models supported are

  • OpenAI
  • Azure OpenAI
  • VertexAI
  • Mistral AI
  • Anthropic Claude
  • Groq

ETL framework for Data Engineering

  • The core functionality of our ETL framework is to facilitate the transfer of documents to model providers using a Vector Store. The ETL framework is based on Java functional programming concepts, helping you chain together multiple steps.
  • We support reading documents in various formats, including PDF, JSON, and more.
  • The framework allows for data manipulation to suit your needs. This often involves splitting documents to adhere to context window limitations and enhancing them with keywords for improved document retrieval effectiveness.
  • Finally, processed documents are stored in the Vector Database, making them accessible for future retrieval.

Extensive reference documentation, sample applications, and workshop/course material.

Future releases will build upon this foundation to provide access to additional AI Models, for example, the Gemini multi-modal model just released by Google, a framework for evaluating the effectiveness of your AI application, more convenience APIs, and features to help solve the “query/summarize my documents” use cases. Check GitHub for details on upcoming releases.

Getting Started

You can get started in a few simple steps

  1. Install the Spring CLI, and then, in your shell, run the command.
spring boot new --from ai --name myai

This command creates a new application for you to start basic interactions with ChatGPT, just follow the instructions in the generated README file to get your API KEY and then

  1. Run the application
./mvw spring-boot:run
  1. And curl the endpoint:
curl localhost:8080/ai/simple

Want to get started in another way? View the Getting Started section in the reference documentation.

Spring Initializr

Quickstart Your Project

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all