<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai on Kuldeep Pisda</title><link>https://kdpisda.in/tag/ai/</link><description>Recent content in Ai on Kuldeep Pisda</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 24 Apr 2026 10:00:00 +0530</lastBuildDate><atom:link href="https://kdpisda.in/tag/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>One Django Codebase, Four LLM Vendors</title><link>https://kdpisda.in/one-django-codebase-four-llm-vendors/</link><pubDate>Fri, 24 Apr 2026 10:00:00 +0530</pubDate><guid>https://kdpisda.in/one-django-codebase-four-llm-vendors/</guid><description>&lt;p&gt;Here&amp;rsquo;s a requirement that sounds simple until you sit with it: every tenant on a whitelabel platform should be able to pick their own LLM vendor and bring their own API keys. One customer runs everything through Claude, the next insists on GPT for compliance reasons, a third wants Gemini because that&amp;rsquo;s who their cloud contract is with, and someone eventually asks for Perplexity because they want search-grounded answers. Same codebase, same deploy, four different providers billed to four different accounts.&lt;/p&gt;</description></item><item><title>Prototype on Dify, Ship on Celery</title><link>https://kdpisda.in/prototype-on-dify-ship-on-celery/</link><pubDate>Sat, 18 Apr 2026 10:00:00 +0530</pubDate><guid>https://kdpisda.in/prototype-on-dify-ship-on-celery/</guid><description>&lt;p&gt;There&amp;rsquo;s a piece of engineering folklore that says &amp;ldquo;don&amp;rsquo;t build throwaway infrastructure.&amp;rdquo; I broke that rule on purpose, and it turned out to be one of the better calls I made across a four-year project.&lt;/p&gt;
&lt;p&gt;The feature was an AI deal analyser for a startup-fundraising platform: drop in a pitch deck, get back a structured ten-section investment report — market, team, traction, competitive landscape, the works. The hard part on day one wasn&amp;rsquo;t the code. It was figuring out what a &lt;em&gt;good&lt;/em&gt; report even said. That&amp;rsquo;s a product problem wearing an engineering costume, and you don&amp;rsquo;t solve it by writing Celery tasks. You solve it by iterating on prompts in front of the people who&amp;rsquo;ll read the output, as fast as you can change them.&lt;/p&gt;</description></item></channel></rss>