My personal journey exploring Spring AI framework and building intelligent applications with Java and Spring Boot.
This repository documents my learning path with Spring AI, Spring's official framework for building AI-powered applications. It contains practical examples, experiments, and notes as I explore various AI integration patterns with Spring Boot.
- Master Spring AI fundamentals and core concepts
- Integrate various AI models (OpenAI, Anthropic Claude, Ollama, etc.)
- Build RAG (Retrieval-Augmented Generation) applications
- Implement AI tools calling
- Explore vector databases and embeddings
- Apply best practices for AI application development
- Java: 17+
- Spring Boot: 3.x
- Spring AI: Latest version
- AI Providers: OpenAI
- Vector Stores: PostgreSQL with pgvector
- Build Tool: Maven/Gradle
Before running the examples, ensure you have:
- JDK 17 or higher installed
- Maven or Gradle
- API keys for AI providers. Using OpenAI.
- Docker (optional, for running local vector databases)
spring-ai-learnings/
├── src/main/java/
│ ├── advisors/ # Advisors explorations (to be explored)
│ ├── chat/ # Chat model examples
│ ├── rag/ # RAG patterns and examples
│ ├── models/ # Data models
│ └── observability/ # Observability examples (to be explored)
├── src/main/resources/
│ ├── application.yml # Application configuration
│ └── data/ # Sample data and vector stores
│ ├── article.pdf # Sample article for RAG
│ ├── models.json # Model configurations
│ ├── systemDesign.pdf # System design document
│ └── vectorstore.json # Built-in vector database
└── docs/ # Additional documentation # Additional documentation
git clone https://github.com/niharikapatel412-hub/spring-ai-learnings.git
cd spring-ai-learningsCreate an application-local.yml file in src/main/resources/:
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}Or set environment variables:
export OPENAI_API_KEY=your_openai_key# Using Maven
mvn clean install
mvn spring-boot:run
# Using Gradle
./gradlew build
./gradlew bootRun- Basic chat completions
- Streaming responses
- Multi-modal inputs (text + images)
- Chat history management
- Different model providers (OpenAI, Claude, Ollama)
- Generating embeddings
- Storing vectors in databases
- Similarity search
- Integration with Pinecone, Chroma, pgvector
- Document loading and chunking
- Building knowledge bases
- Query-based retrieval
- Context injection into prompts
- Defining functions for AI to call
- Weather APIs, database queries
- Multi-step workflows
- Error handling
- Prompt templates
- Few-shot learning
- System prompts
- Output parsers
- Request/response logging
- Token usage tracking
- Performance monitoring
- Spring AI abstracts away provider-specific APIs, making it easy to switch between models
- Vector stores are crucial for building context-aware applications
- Proper chunking strategy significantly impacts RAG performance
- Function calling enables AI to interact with external systems
I've applied the concepts learned in this repository to build real-world applications:
- Getting Started with Spring AI
- Spring AI Examples
- Dan Vega's Spring AI Workshop Video
- Dan Vega's Spring AI Workshop GitHub
- GitHub: @niharikapatel412-hub
- LinkedIn: Niharika Patel
Happy Learning! 🎓