{"id":4011,"date":"2026-08-20T10:00:00","date_gmt":"2026-08-20T14:00:00","guid":{"rendered":"https:\/\/www.mymiller.name\/wordpress\/?p=4011"},"modified":"2026-08-16T08:36:02","modified_gmt":"2026-08-16T12:36:02","slug":"harnessing-transformer-models-with-spring-ai-a-developers-guide-to-enterprise-ai-architecture","status":"publish","type":"post","link":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/harnessing-transformer-models-with-spring-ai-a-developers-guide-to-enterprise-ai-architecture\/","title":{"rendered":"Harnessing Transformer Models with Spring AI: A Developer&#8217;s Guide to Enterprise AI Architecture"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Since the groundbreaking 2017 paper <em>&#8220;Attention Is All You Need&#8221;<\/em> introduced the Transformer architecture, deep learning and natural language processing (NLP) have experienced a monumental shift. From Large Language Models (LLMs) like GPT-4, LLaMA, and Claude to specialized embedding models like BERT and MiniLM, Transformers form the bedrock of modern artificial intelligence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Historically, the AI development ecosystem was heavily dominated by Python. However, enterprise software infrastructure is overwhelmingly built on Java. <strong>Spring AI<\/strong> bridges this gap, giving Java developers native, idiomatic tools to integrate, orchestration, and deploy Transformer-based models seamlessly into enterprise applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article explores how Spring AI interacts with Transformer architectures\u2014from cloud-hosted LLM endpoints to locally executed Transformer models using Ollama and ONNX runtime\u2014and demonstrates how to build production-ready AI pipelines in Java.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. What is Spring AI?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spring AI is an extension of the Spring ecosystem designed to simplify AI application development without forcing developers to learn Python or rewrite legacy enterprise stacks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rather than implementing neural network backpropagation or tensor matrix multiplication directly in Java, Spring AI provides high-level <strong>portable abstractions<\/strong> over Transformer capabilities:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>ChatModel<\/code> &amp; <code>ChatClient<\/code><\/strong>: Unified interfaces for text-to-text Transformer models (OpenAI, Anthropic, Ollama, AWS Bedrock, Google Vertex AI).<\/li>\n\n\n\n<li><strong><code>EmbeddingModel<\/code><\/strong>: Standardized contracts for generating dense vector embeddings using Transformer encoders (BERT, OpenAI Embeddings, Hugging Face).<\/li>\n\n\n\n<li><strong><code>VectorStore<\/code><\/strong>: Native integrations with vector databases (Pgvector, Pinecone, Qdrant, Milvus) to persist and query Transformer-generated embeddings.<\/li>\n\n\n\n<li><strong>Function Calling<\/strong>: Automatic tool execution that allows Transformers to invoke enterprise Java methods seamlessly.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Architectural Blueprint: How Spring AI Interacts with Transformers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To understand how Spring AI utilizes Transformers, we can categorize execution into two main patterns:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-scaled.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-1024x559.avif\" alt=\"\" class=\"wp-image-4012\" srcset=\"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-1024x559.avif 1024w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-300x164.avif 300w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-768x419.avif 768w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-1536x838.avif 1536w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-2048x1117.avif 2048w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-scaled.avif 1280w, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_sekltwsekltwsekl-scaled.avif 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Remote Inference (API-Driven)<\/strong>: Spring AI marshals prompts and context into structured JSON, sends HTTP\/gRPC payloads to cloud-hosted Transformer clusters (e.g., OpenAI GPT-4, Anthropic Claude 3), and parses token-streamed responses back into Java domain objects.<\/li>\n\n\n\n<li><strong>Local Inference (In-Process \/ On-Premise)<\/strong>: Spring AI hooks into local runtimes such as <strong>Ollama<\/strong> or <strong>ONNX Runtime<\/strong>, allowing developers to run Transformer models (e.g., Llama 3, Mistral, ONNX BERT variants) entirely on local hardware or private enterprise servers.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. Step-by-Step Implementation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let me demonstrate how to set up a Spring Boot application that leverages Transformer models for both conversational AI and semantic vector embeddings using Spring AI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Maven Dependencies (<code>pom.xml<\/code>)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;dependencies&gt;\n    &lt;!-- Spring Boot Starter Web --&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;\n    &lt;\/dependency&gt;\n\n    &lt;!-- Spring AI Ollama Starter for Local Transformers --&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.springframework.ai&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-ai-ollama-spring-boot-starter&lt;\/artifactId&gt;\n    &lt;\/dependency&gt;\n\n    &lt;!-- Spring AI Vector Store (Pgvector Example) --&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.springframework.ai&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-ai-pgvector-store-spring-boot-starter&lt;\/artifactId&gt;\n    &lt;\/dependency&gt;\n&lt;\/dependencies&gt;\n\n&lt;dependencyManagement&gt;\n    &lt;dependencies&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.ai&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-ai-bom&lt;\/artifactId&gt;\n            &lt;version&gt;1.0.0-M1&lt;\/version&gt;\n            &lt;type&gt;pom&lt;\/type&gt;\n            &lt;scope&gt;import&lt;\/scope&gt;\n        &lt;\/dependency&gt;\n    &lt;\/dependencies&gt;\n&lt;\/dependencyManagement&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Application Configuration (<code>application.yml<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Configure the local Ollama Transformer engine running <code>llama3<\/code> for chat and <code>nomic-embed-text<\/code> for vector generation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>spring:\n  application:\n    name: spring-ai-transformer-demo\n  ai:\n    ollama:\n      base-url: http:\/\/localhost:11434\n      chat:\n        options:\n          model: llama3\n          temperature: 0.7\n      embedding:\n        options:\n          model: nomic-embed-text\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Constructing the Service Layer (<code>TransformerService.java<\/code>)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here, we use <code>ChatClient<\/code> (Spring AI&#8217;s fluent API) and <code>EmbeddingModel<\/code> to query the Transformer models.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.example.ai.service;\n\nimport org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.ai.embedding.EmbeddingModel;\nimport org.springframework.ai.embedding.EmbeddingResponse;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n@Service\npublic class TransformerService {\n\n    private final ChatClient chatClient;\n    private final EmbeddingModel embeddingModel;\n\n    public TransformerService(ChatClient.Builder chatClientBuilder, EmbeddingModel embeddingModel) {\n        this.chatClient = chatClientBuilder.build();\n        this.embeddingModel = embeddingModel;\n    }\n\n    \/**\n     * Sends a prompt to the Transformer Decoder model (e.g., Llama 3)\n     *\/\n    public String generateResponse(String userPrompt) {\n        return this.chatClient.prompt()\n                .system(\"You are an expert AI software architect operating inside a Spring Boot system.\")\n                .user(userPrompt)\n                .call()\n                .content();\n    }\n\n    \/**\n     * Uses a Transformer Encoder model to convert text into high-dimensional vector embeddings.\n     * The output represents the semantic position in vector space $V \\in \\mathbb{R}^d$.\n     *\/\n    public List&lt;Double&gt; generateEmbedding(String text) {\n        float&#91;] floatArray = this.embeddingModel.embed(text);\n        \n        \/\/ Convert float array to Double list for API responses\n        Double&#91;] doubleArray = new Double&#91;floatArray.length];\n        for (int i = 0; i &lt; floatArray.length; i++) {\n            doubleArray&#91;i] = (double) floatArray&#91;i];\n        }\n        return List.of(doubleArray);\n    }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Advanced Pattern: Retrieval-Augmented Generation (RAG) with Transformers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Transformers have a finite context window and lack knowledge of proprietary enterprise databases. To solve this, Spring AI enables <strong>RAG (Retrieval-Augmented Generation)<\/strong> using Transformer Encoder embeddings alongside Vector Databases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mathematical Underpinnings of Similarity Search<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When a document $D$ and query $Q$ are processed through a Transformer embedding model, they yield dense vectors $\\mathbf{v}_D, \\mathbf{v}_Q \\in \\mathbb{R}^d$. Spring AI calculates similarity using Cosine Distance:$$\\text{Similarity}(\\mathbf{v}_Q, \\mathbf{v}_D) = \\frac{\\mathbf{v}_Q \\cdot \\mathbf{v}_D}{\\Vert{}\\mathbf{v}_Q\\Vert{} \\Vert{}\\mathbf{v}_D\\Vert{}} = \\frac{\\sum_{i=1}^{d} v_{Q,i} v_{D,i}}{\\sqrt{\\sum_{i=1}^{d} v_{Q,i}^2} \\sqrt{\\sum_{i=1}^{d} v_{D,i}^2}}$$<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementing RAG in Spring AI<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.example.ai.controller;\n\nimport org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.ai.chat.client.advisor.QuestionAnswerAdvisor;\nimport org.springframework.ai.vectorstore.VectorStore;\nimport org.springframework.web.bind.annotation.*;\n\n@RestController\n@RequestMapping(\"\/api\/rag\")\npublic class RagController {\n\n    private final ChatClient chatClient;\n\n    public RagController(ChatClient.Builder builder, VectorStore vectorStore) {\n        this.chatClient = builder\n                \/\/ Automatically embeds user query, retrieves relevant vectors, and appends to context\n                .defaultAdvisors(new QuestionAnswerAdvisor(vectorStore))\n                .build();\n    }\n\n    @PostMapping(\"\/ask\")\n    public String askWithContext(@RequestBody String question) {\n        return this.chatClient.prompt()\n                .user(question)\n                .call()\n                .content();\n    }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. Local Transformers via ONNX Runtime in Java<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For enterprise scenarios where data cannot leave the private network and running an external daemon like Ollama is discouraged, Spring AI supports <strong>ONNX Runtime (Open Neural Network Exchange)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This enables Spring AI to load quantized Transformer models directly inside the JVM process memory space:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Transformer weights (<code>.onnx<\/code> model files) are loaded into native C++ bindings via ONNX Java API.<\/li>\n\n\n\n<li>Tokenization is handled directly through Java tokenizers (e.g., Hugging Face Tokenizers).<\/li>\n\n\n\n<li>Forward propagation runs on host CPU (using AVX-512 \/ NEON optimizations) or local CUDA GPUs.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. Enterprise Best Practices for Spring AI and Transformers<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Structured Output Converters<\/strong>: Transformers return raw strings. Use Spring AI&#8217;s <code>BeanOutputConverter&lt;T><\/code> to deserialize Transformer text output directly into strongly typed Java Records or DTOs.<\/li>\n\n\n\n<li><strong>Circuit Breakers &amp; Resilience<\/strong>: Wrap Transformer API calls with Spring Cloud CircuitBreaker (Resilience4j) to prevent cascading failures during API rate-limiting or latency spikes.<\/li>\n\n\n\n<li><strong>Observation and Metrics<\/strong>: Spring AI integrates directly with <strong>Micrometer<\/strong> and <strong>Spring Boot Actuator<\/strong>, allowing telemetry collection on prompt token counts, completion token counts, and Transformer inference latencies directly in Grafana.<\/li>\n\n\n\n<li><strong>GraalVM Native Images<\/strong>: Compile Spring AI services into native binaries using GraalVM for near-instant startup times and ultra-low RAM footprint in Kubernetes environments.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spring AI fundamentally transforms how enterprise Java engineers interact with modern artificial intelligence. By decoupling model implementation from operational logic, Spring AI enables developers to swap, test, and orchestrate complex Transformer architectures\u2014whether cloud-based LLMs or local ONNX Transformer embeddings\u2014using the familiar, robust patterns of the Spring framework.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Since the groundbreaking 2017 paper &#8220;Attention Is All You Need&#8221; introduced the Transformer architecture, deep learning and natural language processing (NLP) have experienced a monumental shift. From Large Language Models (LLMs) like GPT-4, LLaMA, and Claude to specialized embedding models like BERT and MiniLM, Transformers form the bedrock of modern artificial intelligence. Historically, the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4026,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[495,443],"tags":[],"series":[],"class_list":["post-4011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-spring_ai"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/1786883676314.avif","jetpack-related-posts":[{"id":3987,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/enterprise-ai-at-scale-why-spring-ai-and-java-are-built-for-the-long-run\/","url_meta":{"origin":4011,"position":0},"title":"Enterprise AI at Scale: Why Spring AI and Java are Built for the Long Run","author":"Jeffery Miller","date":"July 23, 2026","format":false,"excerpt":"While Python remains the undisputed king of AI research, data exploration, and model training, the landscape shifts dramatically when moving from experimental notebooks to high-throughput, mission-critical production systems. For enterprise engineering teams building user-facing applications, workflow automations, and LLM-powered services, the real challenge isn't training a model\u2014it's integrating, scaling, securing,\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/ai\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_rht72frht72frht7-scaled.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_rht72frht72frht7-scaled.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_rht72frht72frht7-scaled.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_rht72frht72frht7-scaled.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_rht72frht72frht7-scaled.avif 3x"},"classes":[]},{"id":3995,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/mastering-retrieval-augmented-generation-rag-with-spring-ai\/","url_meta":{"origin":4011,"position":1},"title":"Mastering Retrieval-Augmented Generation (RAG) with Spring AI","author":"Jeffery Miller","date":"July 27, 2026","format":false,"excerpt":"Retrieval-Augmented Generation (RAG) has become the gold standard architecture for extending the capabilities of Large Language Models (LLMs) with enterprise domain knowledge. By combining the natural language understanding of LLMs with real-time retrieval from dynamic data stores, RAG eliminates hallucinations, enhances accuracy, and avoids the costly alternative of fine-tuning models\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/ai\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_v05lpdv05lpdv05l-scaled.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_v05lpdv05lpdv05l-scaled.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_v05lpdv05lpdv05l-scaled.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_v05lpdv05lpdv05l-scaled.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_v05lpdv05lpdv05l-scaled.avif 3x"},"classes":[]},{"id":4004,"url":"https:\/\/www.mymiller.name\/wordpress\/ai\/the-complete-guide-to-modern-ai-terminology-from-neural-networks-to-rag-mcp-and-agentic-systems\/","url_meta":{"origin":4011,"position":2},"title":"The Complete Guide to Modern AI Terminology: From Neural Networks to RAG, MCP, and Agentic Systems","author":"Jeffery Miller","date":"July 29, 2026","format":false,"excerpt":"Artificial Intelligence is evolving rapidly, bringing with it a wave of new concepts, acronyms, and technical jargon. Whether you are building AI applications, reading tech news, or evaluating tools for work, understanding this vocabulary is essential. This guide breaks down modern AI terminology into logical categories\u2014from foundational computer science principles\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/ai\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_t8nujmt8nujmt8nu-scaled.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_t8nujmt8nujmt8nu-scaled.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_t8nujmt8nujmt8nu-scaled.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_t8nujmt8nujmt8nu-scaled.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2026\/07\/Gemini_Generated_Image_t8nujmt8nujmt8nu-scaled.avif 3x"},"classes":[]},{"id":3557,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/spring-ai-simplifying-ai-development\/","url_meta":{"origin":4011,"position":3},"title":"Spring AI: Simplifying AI Development","author":"Jeffery Miller","date":"April 20, 2026","format":false,"excerpt":"Spring AI is a new framework aimed at making AI development easier for Java developers. It provides a simple, Spring-friendly way to integrate AI models into your applications, including the use of templates for more structured prompts. It currently supports models from various providers. Why Spring AI? Simplified Integration: Easily\u2026","rel":"","context":"In &quot;Spring AI&quot;","block_context":{"text":"Spring AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/spring_ai\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8686301_640.jpg?fit=640%2C640&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8686301_640.jpg?fit=640%2C640&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8686301_640.jpg?fit=640%2C640&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":3671,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/spring-cloud-data-flow-orchestrating-machine-learning-pipelines\/","url_meta":{"origin":4011,"position":4},"title":"Spring Cloud Data Flow: Orchestrating Machine Learning Pipelines","author":"Jeffery Miller","date":"December 24, 2025","format":false,"excerpt":"In the dynamic world of machine learning, the journey from raw data to a deployed model involves a series of intricate steps. Spring Cloud Data Flow (SCDF) emerges as a powerful ally, offering a comprehensive platform to streamline and manage these complex data pipelines. In this guide, we\u2019ll delve into\u2026","rel":"","context":"In &quot;Spring AI&quot;","block_context":{"text":"Spring AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/spring_ai\/"},"img":{"alt_text":"","src":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/09\/ai-generated-8411275_1280-jpg.avif","width":350,"height":200,"srcset":"https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/09\/ai-generated-8411275_1280-jpg.avif 1x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/09\/ai-generated-8411275_1280-jpg.avif 1.5x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/09\/ai-generated-8411275_1280-jpg.avif 2x, https:\/\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/09\/ai-generated-8411275_1280-jpg.avif 3x"},"classes":[]},{"id":3574,"url":"https:\/\/www.mymiller.name\/wordpress\/spring_ai\/deeplearning4j-and-spring-boot-a-powerful-duo-for-ai-powered-applications\/","url_meta":{"origin":4011,"position":5},"title":"Deeplearning4J and Spring Boot: A Powerful Duo for AI-Powered Applications","author":"Jeffery Miller","date":"April 20, 2026","format":false,"excerpt":"Deeplearning4J (DL4J) offers a comprehensive Java framework for deep learning, while Spring Boot streamlines the development of production-ready applications. By combining these two technologies, you unlock a flexible platform for building intelligent services that can handle various types of data. In this guide, we\u2019ll explore how to integrate DL4J into\u2026","rel":"","context":"In &quot;Spring AI&quot;","block_context":{"text":"Spring AI","link":"https:\/\/www.mymiller.name\/wordpress\/category\/spring_ai\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8453379_1280.jpg?fit=800%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8453379_1280.jpg?fit=800%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8453379_1280.jpg?fit=800%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.mymiller.name\/wordpress\/wp-content\/uploads\/2024\/04\/ai-generated-8453379_1280.jpg?fit=800%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/4011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/comments?post=4011"}],"version-history":[{"count":1,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/4011\/revisions"}],"predecessor-version":[{"id":4027,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/posts\/4011\/revisions\/4027"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/media\/4026"}],"wp:attachment":[{"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/media?parent=4011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/categories?post=4011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/tags?post=4011"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.mymiller.name\/wordpress\/wp-json\/wp\/v2\/series?post=4011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}