MCPcopy Index your code
hub / github.com/ThomasVitale/llm-apps-java-spring-ai

github.com/ThomasVitale/llm-apps-java-spring-ai @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
819 symbols 1,671 edges 238 files 48 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LLM and AI-Infused Applications with Java & Spring AI

Samples showing how to build Java applications powered by Generative AI and Large Language Models (LLMs) using Spring AI.

🛠️ Pre-Requisites

  • Java 25
  • Podman/Docker

💡 Use Cases

🧠 Models

Chat Models

Chat completion with LLMs via different model providers:

Embedding Models

Vector transformation (embeddings) with LLMs via different model providers:

Image Models

Image generation with LLMs via different model providers:

Audio Models

Speech generation with LLMs via different model providers:

Speech transcription with LLMs via different model providers:

Moderation Models

Coming soon

📐 Patterns

Prompts, Messages, and Templates

Prompting using simple text:

Prompting using structured messages and roles:

Prompting using templates:

Structured Output

Converting LLM output to structured JSON and Java objects:

Multimodality

Including various media in prompts with LLMs:

Tool Calling

Tool calling with LLMs via different model providers:

Memory

Using chat memory to preserve context in conversations with LLMs:

Guardrails

Guardrails for input and output with LLMs via different model providers:

📥 Data Ingestion

Document Readers

Reading and vectorizing documents with LLMs via Ollama:

Document Transformers

Document transformation with LLMs via Ollama:

  • Metadata
    Enrich documents with keywords and summary metadata for enhanced retrieval.
  • Splitters
    Divide documents into chunks to fit the LLM context window.

🔢 Vector Stores

Coming soon

🔄 Retrieval Augmented Generation (RAG)

Question answering with documents using different RAG flows (with Ollama and PGVector):

Sequential RAG

Branching RAG

Conditional RAG

📊 Observability

LLM Observability

LLM Observability for different model providers:

Vector Store Observability

Vector Store Observability for different vector stores:

⚙️ Model Context Protocol

Integrations with MCP Servers for providing contexts to LLMs.

📋 Evaluation

Coming soon

🤖 Agents

Coming soon

📚 References and Additional Resources

Conferences

Videos

Demos

Workshops

Core symbols most depended-on inside this repo

build
called by 120
rag/rag-conditional/src/main/java/com/thomasvitale/ai/spring/components/SearchEngineDocumentRetriever.java
builder
called by 96
rag/rag-conditional/src/main/java/com/thomasvitale/ai/spring/components/SearchEngineDocumentRetriever.java
build
called by 75
patterns/guardrails/guardrails-output/src/main/java/com/thomasvitale/ai/spring/guardrails/JsonOutputGuardrailAdvisor.java
builder
called by 46
patterns/guardrails/guardrails-output/src/main/java/com/thomasvitale/ai/spring/guardrails/JsonOutputGuardrailAdvisor.java
run
called by 33
data-ingestion/document-readers/document-readers-tika-ollama/src/main/java/com/thomasvitale/ai/spring/IngestionPipeline.java
build
called by 28
rag/rag-sequential/rag-advanced/src/main/java/com/thomasvitale/ai/spring/components/CompressionDocumentPostProcessor.java
builder
called by 21
rag/rag-sequential/rag-advanced/src/main/java/com/thomasvitale/ai/spring/components/CompressionDocumentPostProcessor.java
vectorStore
called by 14
patterns/memory/memory-vector-store/src/main/java/com/thomasvitale/ai/spring/MemoryVectorStoreApplication.java

Shape

Method 544
Class 272
Enum 3

Languages

Java100%

Modules by API surface

rag/rag-sequential/rag-naive/src/main/java/com/thomasvitale/ai/spring/components/SearchEngineDocumentRetriever.java12 symbols
rag/rag-conditional/src/main/java/com/thomasvitale/ai/spring/components/SearchEngineDocumentRetriever.java12 symbols
patterns/guardrails/guardrails-output/src/main/java/com/thomasvitale/ai/spring/guardrails/JsonOutputGuardrailAdvisor.java12 symbols
patterns/guardrails/guardrails-input/src/main/java/com/thomasvitale/ai/spring/guardrails/SensitiveDataInputGuardrailAdvisor.java12 symbols
patterns/tool-calling/tool-calling-openai/src/main/java/com/thomasvitale/ai/spring/ChatController.java11 symbols
patterns/tool-calling/tool-calling-ollama/src/main/java/com/thomasvitale/ai/spring/ChatController.java11 symbols
patterns/tool-calling/tool-calling-mistral-ai/src/main/java/com/thomasvitale/ai/spring/ChatController.java11 symbols
use-cases/text-classification/src/main/java/com/thomasvitale/ai/spring/ClassificationController.java10 symbols
rag/rag-sequential/rag-advanced/src/main/java/com/thomasvitale/ai/spring/components/CompressionDocumentPostProcessor.java9 symbols
rag/rag-conditional/src/main/java/com/thomasvitale/ai/spring/RagControllerQueryRouting.java8 symbols
patterns/tool-calling/tool-calling-openai/src/main/java/com/thomasvitale/ai/spring/BookService.java7 symbols
patterns/tool-calling/tool-calling-ollama/src/main/java/com/thomasvitale/ai/spring/BookService.java7 symbols

For agents

$ claude mcp add llm-apps-java-spring-ai \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact