Is your RAG application stuck in the slow lane? 🏎️ I put 5 embedding options to the test with Spring AI. The fastest was over 300x quicker than OpenAI's API! See the results and how to make the switch. medium.com/@thetalkinga... #SpringAI #RAG #Embeddings #Java
CrAIg Walls
CrAIg Walls
@habuma.com
Java Champion / Alexa Champion / Author of “Spring AI in Action”, “Spring in Action” & “Build Talking Apps for Alexa”/ Disney Parks Fanatic/ tabletop games player. https://www.habuma.com
1.6K followers169 following339 posts
CrAIg Walls reposted
Spring AI 2.1.0-RC1 and 2.0.2 are available now. Spring AI 2.1.0-RC1 includes session memory, tool call confirmation, Qxotic jinfer support , enhancements and bug fixes. More on this here: spring.io/blog/2026/10...
There’s more than one way to bring AI inference into Java’s backyard. And this time, we’re giving Qxotic’s jinfer a turn at the wheel. medium.com/@thetalkinga... #SpringAI #Java #LocalLLM #Qxotic
What happens when you combine Spring AI, AG-UI, CopilotKit, and MCP Apps? You get a web-based AI chat client that can render rich, interactive UIs directly from MCP servers! medium.com/@thetalkinga... #SpringAI #MCPApps #AGUI #Java
MCP tools are great at giving AI agents answers, but those answers don’t have to be plain text. With MCP Apps, your Spring AI MCP server can deliver rich, interactive user interfaces right alongside its tool results. medium.com/@thetalkinga... #SpringAI #MCP #MCPApps #Java
Give your Spring AI application a ChatGPT-like web interface with surprisingly little code! AG-UI and CopilotKit make it easy to connect Spring AI to a polished React chat UI. medium.com/@thetalkinga... #SpringAI #Java #AGUI #CopilotKit
LLM-as-a-Judge is a powerful evaluation technique, but what if you don’t need another LLM to make the call? With a System One model, you can fact-check AI responses using focused, typed judgments with less latency and lower cost. medium.com/@thetalkinga... #SpringAI #Java #SystemOne #AIEvaluation
Run System One models locally with Spring AI! In this recipe, see how Nimble and Laya deliver fast, focused AI judgments without a general-purpose LLM. medium.com/@thetalkinga... #SpringAI #Java #SystemOne #LocalAI #Ollama #Nimble #Laya
CrAIg Walls reposted
Spring AI Modular RAG + TypeSafe AI Jev 🧩 LLMs rewrite and expand the query. Vector search finds 6 chunks. #Jev keeps the 2 that actually answer it. 📝 Blog: spring.io/blog/2026/10... 🎤 At @devoxx.com next week? Join my deep dive: m.devoxx.com/events/dvbe2... #RAG #Java #SpringAI
What if you don’t need an LLM to generate an answer, but simply need AI to make a judgment? In my latest Spring AI Recipe, I explore Jev, System One models, and fast, structured AI judgments. medium.com/@thetalkinga... #SpringAI #Java #Jev #SystemOne
CrAIg Walls reposted
🚀 Spring AI TypeSafe 0.3.0 (@typesafeai Jev) now supports local engines too: the same client works with the Ollama and Laya #SystemOne endpoints: - Ollama: spring-ai-community.github.io/spring-ai-ty... - Laya: spring-ai-community.github.io/spring-ai-ty... github.com/spring-ai-co...
Why should a Java-based STDIO MCP server need a build step before a client can run it? With JBang, it doesn’t. You can build Spring AI MCP servers and clients that run straight from Java source. medium.com/@thetalkinga... #SpringAI #MCP #JBang #Java #SpringBoot
CrAIg Walls reposted
Spring AI 2.1.0-M1 is out 🍃 🧩 Message parts: ordered text, reasoning, tool calls & media 🤖 OpenAI Responses API: reasoning + tool calling on GPT-5.4+ 📥 VectorStore.upsert() for pre-computed embeddings Feedback welcome 👇 spring.io/blog/2026/09... #SpringAI #Java
What if you could run a Spring AI application without a Maven or Gradle project? In this Spring AI Recipe, see how JBang turns a few Java files into a runnable Spring AI chat loop. medium.com/@thetalkinga... #SpringAI #Java #JBang #SpringBoot
Fact-checking an entire AI response can hide unsupported claims. What if you decompose the response and fact-check each claim individually? medium.com/@thetalkinga... #SpringAI #Java #AIEvaluation #FactChecking
CrAIg Walls reposted
Java SDK + Spring AI integrations for #TypeSafe AI's #Jev. Not a chat model! Send it a state and typed questions, get numbers back with a confidence, in ~300 ms. Judge, self-refine + guardrail advisors, RAG triage, tool selection. Blog: spring.io/blog/2026/09... @spring-ai.bsky.social
Even when an LLM has all the facts it needs, it can still get them wrong. Let's explore FactCheckingEvaluator and discover why fact-checking AI responses isn't always as straightforward as it seems. medium.com/@thetalkinga... #SpringAI #Java #AIEvaluation #FactChecking
Securing an MCP server with an API key is easy, but sometimes you need something more robust. In this recipe, we’ll put OAuth 2.0 to work with Spring AI to secure an MCP server. medium.com/@thetalkinga... #SpringAI #MCP #OAuth2 #SpringSecurity #Java #AgenticAI
Chat memory helps an AI remember what you've talked about. But the longer the conversation, the more context it has to carry around. What if it could remember the important stuff without remembering every word? medium.com/@thetalkinga... #SpringAI #Java #GenerativeAI #ChatMemory
How local can a local LLM get? With ModelJars and Models, you can skip the model server entirely and run inference inside the same JVM as your Spring AI application. See how in this Spring AI Recipe! medium.com/@thetalkinga... #SpringAI #Java #LocalLLM #GenerativeAI #ModelJars
Want to run Spring AI against a local LLM? This recipe shows how to use open-weight models with LM Studio, Docker Model Runner, and Ollama, with surprisingly few changes to your app. 🔗 medium.com/@thetalkinga... #SpringAI #Java #LocalLLM #GenAI
As your AI application gains more tools, do you really need to send all of them to the LLM on every request? In this Spring AI Recipe, I show how ToolSearchTool discovers the right tools on demand, keeping prompts lean as your toolbox grows. medium.com/@thetalkinga... #SpringAI #Java #AgenticAI
Retrieval found the documents. But are they really the best documents to put in your prompt? In this Spring AI Recipe, we apply reranking to ensure the most relevant context. medium.com/@thetalkinga... #SpringAI #Java #RAG #Reranking #GenerativeAI
Vector search understands what you mean. BM25 finds the exact terms you use. Why choose? In this Spring AI Recipe, we combine them with hybrid search and Reciprocal Rank Fusion to get the best of both worlds. medium.com/@thetalkinga... #SpringAI #RAG #HybridSearch #BM25 #Java
In today's Spring AI Recipe, we see how playing "HyDE and seek" gives better results from RAG queries. medium.com/@thetalkinga... #SpringAI #Java #RAG #HyDE #GenAI
You don't need a full-blown agent framework to build an agent. If you've used Spring AI's ChatClient with tools, you may already be using one of the most fundamental agentic patterns: ReAct. See how in today's Spring AI Recipe. medium.com/@thetalkinga... #SpringAI #Java #AgenticAI #ReAct #AIAgents
I've upgraded the code for my Spring AI recipes that cover Embabel to build against Embabel 1.5.0 (and therefore, Spring Boot 4.1.0). Enjoy! - Embabel recipes: www.habuma.com/springaireci... - Recipes code: github.com/habuma/sprin... #SpringAI #Embabel #SpringBoot #AgenticAI
Graph-based workflows give you explicit control over how an agent moves from one task to the next. In this recipe, see how to build graph-based workflows with LangGraph4j and Spring AI. medium.com/@thetalkinga... #SpringAI #LangGraph4j #AgenticAI #Java
Vector similarity finds what’s relevant. Metadata filtering makes sure your RAG pipeline finds what’s relevant and applicable. This Spring AI Recipe shows how to filter vector searches using document metadata. medium.com/@thetalkinga... #SpringAI #Java #RAG #VectorSearch #GenAI
Claude Code isn't the only place you can use Markdown-defined subagents. In this week's Spring AI Recipe, learn how to create Claude-style subagents and wire them into Spring AI with TaskTool. thetalkingapp.medium.com/spring-ai-re... #SpringAI #Java #AgenticAI #AIAgents #LLM
When mixing chat memory with RAG, follow-up questions make perfect sense to people, but not to your vector store. This recipe shows how to make RAG conversation-aware by folding chat history into retrieval queries. medium.com/@thetalkinga... #SpringAI #RAG #Java #LLM #VectorSearch #GenAI
RAG doesn't have to mean deploying another database. Learn how to build a Spring AI RAG application using an in-JVM vector store. No separate vector database required. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #RAG #VectorSearch
Whiteboard sketches are great, but do they match the graph your code actually builds? This recipe shows how to generate diagrams directly from a Spring AI Alibaba CompiledGraph. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #AgenticAI #GraphEngineering
It seems that “graph engineering” is the new hot term lately. To see how it can be done with Spring AI, may I refer you to some articles I wrote in May: - thetalkingapp.medium.com/spring-ai-re... - thetalkingapp.medium.com/spring-ai-re... - thetalkingapp.medium.com/spring-ai-re...
Your chat memory isn't limited to JDBC. This Spring AI Recipe shows how to persist conversations with Redis, Cassandra, and MongoDB using Spring Boot auto-configuration. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #Redis #MongoDB #Cassandra
Keep your AI's memory alive across restarts. Learn how to persist Spring AI chat memory with JDBC and PostgreSQL so conversations survive and can be shared across application instances. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #PostgreSQL #JDBC #LLM #GenAI
Last night, @dhinojosa.bsky.social , @dashaun.com , @mgrygles.bsky.social , and I played Fantastic Factories. It was the first time playing it for all of us, so there was some learning along the way. But I think we all agreed that it lived up to the word “Fantastic” in its name. #NerdsPlayingGames
In this recipe, you’ll learn how to invoke an Embabel agent directly from Java code, making it easy to integrate intelligent, goal-oriented behavior into any Spring application. medium.com/@thetalkinga... #SpringAI #Embabel #Java #SpringBoot #AgenticAI #AI
Keyword filtering is fast, but it’s also easy to fool. In this recipe, you’ll build a semantic guardrail for Spring AI that uses an LLM to recognize forbidden topics. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #LLM #Guardrails
CrAIg Walls reposted
Python popularized GenAI, but enterprise Java doesn’t need to switch stacks 🤖 @habuma.com introduces Spring AI for Spring Boot—making LLM integration simple with familiar patterns and real data-driven use cases 🔗https://www.dev2next.com/speaker/4b0fe5fcc3d74f829dfbc6c5a915c2e2 🎟️ www.dev2next.com
SafeGuardAdvisor blocks risky prompts. Now block risky responses. Build a custom Spring AI advisor that filters LLM output before it reaches your application. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #SpringAIRecipes #LLM #Guardrails