<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenAI on SivaLabs</title><link>https://www.sivalabs.in/tags/openai/</link><description>Recent content in OpenAI on SivaLabs</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 10 Nov 2026 12:11:30 +0530</lastBuildDate><atom:link href="https://www.sivalabs.in/tags/openai/rss.xml" rel="self" type="application/rss+xml"/><item><title>Spring AI : Advisors API</title><link>https://www.sivalabs.in/blog/spring-ai-advisors-api/</link><pubDate>Thu, 30 Jul 2026 06:00:00 +0530</pubDate><guid>https://www.sivalabs.in/blog/spring-ai-advisors-api/</guid><description>&lt;p&gt;Once an AI feature moves beyond a demo, the model call is rarely the whole story.&lt;/p&gt;
&lt;p&gt;You need to log requests, restore conversation history, retrieve relevant documents, reject unsafe input, record metrics, and perhaps validate the model&amp;rsquo;s output.
Putting all of that code directly around every &lt;code&gt;ChatClient&lt;/code&gt; call works for a while. Then a second endpoint arrives, followed by streaming, and suddenly every model call has its own slightly different pile of plumbing.&lt;/p&gt;</description></item><item><title>Spring AI : Chat Memory</title><link>https://www.sivalabs.in/blog/spring-ai-chat-memory/</link><pubDate>Sat, 25 Jul 2026 06:00:00 +0530</pubDate><guid>https://www.sivalabs.in/blog/spring-ai-chat-memory/</guid><description>&lt;p&gt;Large language models are stateless. Send two independent requests to a model, and the second request knows nothing about the first one.
That is perfectly fine for one-shot questions, but it makes a chatbot feel surprisingly forgetful:&lt;/p&gt;</description></item><item><title>Spring AI : Structured Output</title><link>https://www.sivalabs.in/blog/spring-ai-structured-output/</link><pubDate>Wed, 22 Jul 2026 06:00:00 +0530</pubDate><guid>https://www.sivalabs.in/blog/spring-ai-structured-output/</guid><description>&lt;p&gt;Chat models are great at producing prose, but most applications don&amp;rsquo;t want prose — they want a Java object, a &lt;code&gt;List&amp;lt;String&amp;gt;&lt;/code&gt;, or a &lt;code&gt;Map&lt;/code&gt; they can bind to a response and return from a REST API.&lt;/p&gt;
&lt;p&gt;Spring AI&amp;rsquo;s &lt;strong&gt;Structured Output Converters&lt;/strong&gt; bridge that gap: they turn plain-text chat responses into typed Java objects, without you having to hand-write a JSON parser or repeat &amp;ldquo;please respond with valid JSON&amp;rdquo; in every prompt.&lt;/p&gt;</description></item><item><title>Spring AI : Chat with LLMs</title><link>https://www.sivalabs.in/blog/spring-ai-chat-with-llms/</link><pubDate>Mon, 20 Jul 2026 06:00:00 +0530</pubDate><guid>https://www.sivalabs.in/blog/spring-ai-chat-with-llms/</guid><description>&lt;p&gt;Calling an LLM is just an HTTP request. The trouble is that every provider has its own API,
configuration, and response format.&lt;/p&gt;
&lt;p&gt;Spring AI handles that provider-specific plumbing and gives us a familiar Spring API. In this article,
we will use &lt;code&gt;ChatClient&lt;/code&gt; to talk to OpenAI&amp;rsquo;s GPT-5 model and then make our prompts reusable with
&lt;code&gt;PromptTemplate&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Spring AI RAG using Embedding Models and Vector Databases</title><link>https://www.sivalabs.in/blog/spring-ai-rag-using-embedding-models-vector-databases/</link><pubDate>Thu, 14 Mar 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/spring-ai-rag-using-embedding-models-vector-databases/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction to Embedding Models.&lt;/li&gt;
&lt;li&gt;Loading data using DocumentReaders.&lt;/li&gt;
&lt;li&gt;Storing embeddings in VectorStores.&lt;/li&gt;
&lt;li&gt;Implementing RAG (Retrieval-Augmented Generation), a.k.a. Prompt Stuffing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>Getting Started with Spring AI and OpenAI</title><link>https://www.sivalabs.in/blog/getting-started-with-spring-ai-and-open-ai/</link><pubDate>Sat, 09 Mar 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/getting-started-with-spring-ai-and-open-ai/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction to Spring AI.&lt;/li&gt;
&lt;li&gt;Interacting with OpenAI using Spring AI.&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;PromptTemplates&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;OutputConverters&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>LangChain4j Retrieval-Augmented Generation (RAG) Tutorial</title><link>https://www.sivalabs.in/blog/langchain4j-retrieval-augmented-generation-tutorial/</link><pubDate>Sun, 25 Feb 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/langchain4j-retrieval-augmented-generation-tutorial/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the need for &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Understand &lt;strong&gt;EmbeddingModel&lt;/strong&gt;, &lt;strong&gt;EmbeddingStore&lt;/strong&gt;, &lt;strong&gt;DocumentLoaders&lt;/strong&gt;, &lt;strong&gt;EmbeddingStoreIngestor&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Working with different EmbeddingModels and EmbeddingStores.&lt;/li&gt;
&lt;li&gt;Ingesting data into EmbeddingStore.&lt;/li&gt;
&lt;li&gt;Querying LLMs with data from EmbeddingStore.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>LangChain4j AiServices Tutorial</title><link>https://www.sivalabs.in/blog/langchain4j-ai-services-tutorial/</link><pubDate>Thu, 22 Feb 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/langchain4j-ai-services-tutorial/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using LangChain4j &lt;strong&gt;AiServices&lt;/strong&gt; to interact with LLMs.&lt;/li&gt;
&lt;li&gt;How to ask questions and map responses to different formats?&lt;/li&gt;
&lt;li&gt;Summarizing the given text in different formats.&lt;/li&gt;
&lt;li&gt;Analyzing the sentiment of the given text.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>Generative AI Conversations using LangChain4j ChatMemory</title><link>https://www.sivalabs.in/blog/generative-ai-conversations-using-langchain4j-chat-memory/</link><pubDate>Tue, 20 Feb 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/generative-ai-conversations-using-langchain4j-chat-memory/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to use LangChain4j &lt;strong&gt;ChatMemory&lt;/strong&gt; and &lt;strong&gt;ConversationalChain&lt;/strong&gt; to implement conversation style interaction?&lt;/li&gt;
&lt;li&gt;How to ask questions using &lt;strong&gt;PromptTemplate&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the &lt;a href="https://www.sivalabs.in/blog/getting-started-with-generative-ai-using-java-langchain4j-openai-ollama/"&gt;previous article&lt;/a&gt;, we have seen how to interact with OpenAI using Java and LangChain4j.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item><item><title>Getting Started with Generative AI using Java, LangChain4j, OpenAI and Ollama</title><link>https://www.sivalabs.in/blog/getting-started-with-generative-ai-using-java-langchain4j-openai-ollama/</link><pubDate>Sun, 18 Feb 2024 23:29:17 +0000</pubDate><guid>https://www.sivalabs.in/blog/getting-started-with-generative-ai-using-java-langchain4j-openai-ollama/</guid><description>&lt;p&gt;In this article, we will explore the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Brief introduction to Generative AI?&lt;/li&gt;
&lt;li&gt;How to interact with OpenAI APIs using Java?&lt;/li&gt;
&lt;li&gt;How to use LangChain4j to interact with OpenAI?&lt;/li&gt;
&lt;li&gt;How to run a LLM model locally using Ollama?&lt;/li&gt;
&lt;li&gt;Working with Ollama using LangChain4j and Testcontainers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description></item></channel></rss>