<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Hudson Mathew</title>
    <description>The latest articles on Forem by Hudson Mathew (@hudson_mathew_j).</description>
    <link>https://forem.com/hudson_mathew_j</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817769%2F76f9a0d1-2539-4036-af75-a4a48e2c9306.jpg</url>
      <title>Forem: Hudson Mathew</title>
      <link>https://forem.com/hudson_mathew_j</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hudson_mathew_j"/>
    <language>en</language>
    <item>
      <title>🚀 Built Something Smarter Than a Typical AI

Most AI tools rely on a single model —
when it fails, everything stops.

So I built Hero’s AI – Baymax 🤖
A multi-model AI assistant that switches models automatically to improve reliability.

💡 What it can do</title>
      <dc:creator>Hudson Mathew</dc:creator>
      <pubDate>Tue, 05 May 2026 08:06:01 +0000</pubDate>
      <link>https://forem.com/hudson_mathew_j/built-something-smarter-than-a-typical-ai-most-ai-tools-rely-on-a-single-model-when-it-3il9</link>
      <guid>https://forem.com/hudson_mathew_j/built-something-smarter-than-a-typical-ai-most-ai-tools-rely-on-a-single-model-when-it-3il9</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/hudson_mathew_j/heros-ai-enn" class="crayons-story__hidden-navigation-link"&gt;Hero's AI&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/hudson_mathew_j" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817769%2F76f9a0d1-2539-4036-af75-a4a48e2c9306.jpg" alt="hudson_mathew_j profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/hudson_mathew_j" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Hudson Mathew
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Hudson Mathew
                
              
              &lt;div id="story-author-preview-content-3609353" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/hudson_mathew_j" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817769%2F76f9a0d1-2539-4036-af75-a4a48e2c9306.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Hudson Mathew&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/hudson_mathew_j/heros-ai-enn" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 4&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/hudson_mathew_j/heros-ai-enn" id="article-link-3609353"&gt;
          Hero's AI
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/rag"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;rag&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/nlp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;nlp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/machinelearning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;machinelearning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/hudson_mathew_j/heros-ai-enn" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/hudson_mathew_j/heros-ai-enn#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Hero's AI</title>
      <dc:creator>Hudson Mathew</dc:creator>
      <pubDate>Mon, 04 May 2026 15:08:22 +0000</pubDate>
      <link>https://forem.com/hudson_mathew_j/heros-ai-enn</link>
      <guid>https://forem.com/hudson_mathew_j/heros-ai-enn</guid>
      <description>&lt;h1&gt;
  
  
  🧠 I Built a AI Assistant with Multi-Model Fallback, Voice Chat &amp;amp; a Personal Data Analyst — Here's How
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What happens when your AI goes down mid-conversation? You lose users. I built Hero's AI to make sure that never happens — and added a whole lot more along the way.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5y1mmjpmjqn00ag95acf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5y1mmjpmjqn00ag95acf.png" alt=" " width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://hero-s-ai.onrender.com/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Have you ever used an AI tool that just... stopped working? Maybe it hit a quota limit, the API went down, or the model just returned nothing. If you're building on top of a single AI provider, you're one outage away from a broken product.&lt;/p&gt;

&lt;p&gt;That's the problem I set out to solve with &lt;strong&gt;Hero's AI&lt;/strong&gt; — a full-stack, production-grade AI assistant platform built with Django and Python. But I didn't stop at just "fixing uptime." I ended up building something that handles voice chat, web search, document analysis, and even runs data analytics on uploaded spreadsheets — all in one platform.&lt;/p&gt;

&lt;p&gt;Here's a deep dive into how it works, what I built, and what I learned.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Project Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hero's AI&lt;/strong&gt; is a personal AI assistant platform that goes way beyond a simple chatbot.&lt;/p&gt;

&lt;p&gt;Think of it as your smart digital companion — one that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write and debug code&lt;/li&gt;
&lt;li&gt;Search the web for real-time information&lt;/li&gt;
&lt;li&gt;Hold voice conversations&lt;/li&gt;
&lt;li&gt;Analyze uploaded documents&lt;/li&gt;
&lt;li&gt;Run data analytics on your CSV or Excel files without you writing a single line of code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The platform is built on &lt;strong&gt;Django&lt;/strong&gt;, uses &lt;strong&gt;Google Gemini&lt;/strong&gt; as its primary AI brain, and has a waterfall fallback system through &lt;strong&gt;OpenRouter&lt;/strong&gt; and &lt;strong&gt;Groq&lt;/strong&gt; so users always get a response — even if one provider goes down.&lt;/p&gt;

&lt;p&gt;It also ships with two powerful sub-modules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baymax&lt;/strong&gt; — the AI orchestration engine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infinsight&lt;/strong&gt; — an RAG-powered data analytics layer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 GitHub: &lt;a href="https://github.com/Hudsonmathew1910/Hero-s-AI" rel="noopener noreferrer"&gt;https://github.com/Hudsonmathew1910/Hero-s-AI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasangqnf302la5x9gp18.png" alt=" " width="800" height="439"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔄 &lt;strong&gt;Multi-model fallback chain&lt;/strong&gt; — Gemini → OpenRouter (6 models) → Groq (4 models). Zero downtime from API failures.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Text Chat&lt;/strong&gt; — General conversation with persistent, per-user session history&lt;/li&gt;
&lt;li&gt;👨‍💻 &lt;strong&gt;Coding Assistant&lt;/strong&gt; — Code generation, debugging, and refactoring across Python, JS, SQL, and more&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Web Search Mode&lt;/strong&gt; — Real-time answers using DuckDuckGo + Wikipedia, summarized by Gemini&lt;/li&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Voice Chat&lt;/strong&gt; — Short, natural spoken-style responses optimized for text-to-speech&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;File Analysis&lt;/strong&gt; — Upload PDFs, DOCX, or TXT files and ask questions about them&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Infinsight Analytics&lt;/strong&gt; — Upload CSV/Excel, ask plain-English questions, get analyst-grade reports&lt;/li&gt;
&lt;li&gt;🔐 &lt;strong&gt;Encrypted API Key Storage&lt;/strong&gt; — User keys are Fernet-encrypted server-side, never exposed to the browser&lt;/li&gt;
&lt;li&gt;🔑 &lt;strong&gt;Google OAuth Login&lt;/strong&gt; — One-click sign-in alongside traditional email/password&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;NLP Intent Detection&lt;/strong&gt; — Custom regex-based NLP pipeline routes each message to the right handler&lt;/li&gt;
&lt;li&gt;🎛️ &lt;strong&gt;Custom Instructions&lt;/strong&gt; — Users can set their name, preferences, and AI tone globally&lt;/li&gt;
&lt;li&gt;🕵️ &lt;strong&gt;Temporary Chat Mode&lt;/strong&gt; — Privacy-first mode where conversations aren't saved&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 Baymax (The AI Orchestration Module)
&lt;/h2&gt;

&lt;p&gt;Baymax is the core engine of Hero's AI — named after everyone's favorite healthcare companion, because it's always there when you need it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hero-s-ai.onrender.com/" rel="noopener noreferrer"&gt;hero-s-ai.onrender.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3z0rxlhrjx2uhl0gclv8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3z0rxlhrjx2uhl0gclv8.png" alt=" " width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What does Baymax do?
&lt;/h3&gt;

&lt;p&gt;Baymax is an &lt;strong&gt;orchestrator class&lt;/strong&gt; that decides:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Which AI model to use for a given task&lt;/li&gt;
&lt;li&gt;What to do when that model fails&lt;/li&gt;
&lt;li&gt;How many tokens to allocate based on task complexity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every user message flows through the NLP layer first (more on that below), and then Baymax picks the right handler and model for the job.&lt;/p&gt;

&lt;h3&gt;
  
  
  Baymax's Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smart Model Routing&lt;/strong&gt; — Routes coding tasks to Gemini 2.5 Flash, general chat to OpenRouter NVIDIA Nemotron, and so on. The right model for the right task.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Waterfall Fallback&lt;/strong&gt; — If the primary model fails, Baymax silently tries up to 10 fallback models across OpenRouter and Groq. The user never sees an error.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive Token Budgets&lt;/strong&gt; — Short conversational replies use fewer tokens (faster, cheaper). File analysis and data queries get up to 4,000 tokens for thorough output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compressed History&lt;/strong&gt; — Instead of sending the full chat history (expensive!), Baymax loads only 2–6 recent turns depending on task type and compresses them into a single context block.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel DB Lookups&lt;/strong&gt; — API keys, user settings, and chat sessions are fetched in parallel threads to minimize latency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How does it help users?
&lt;/h3&gt;

&lt;p&gt;Users never have to worry about which AI to use or whether it's available. Baymax handles all of that invisibly. You ask a question, you get an answer — always.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Infinsight (The Data Analytics Module)
&lt;/h2&gt;

&lt;p&gt;Infinsight is the feature I'm most proud of. It turns Hero's AI into a &lt;strong&gt;personal data analyst&lt;/strong&gt; that anyone can use — no Python, no SQL, no Excel expertise required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hero-s-ai.onrender.com/infinsight/" rel="noopener noreferrer"&gt;hero-s-ai.onrender.com/infinsight&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0xl5an38iamdiuq4kft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0xl5an38iamdiuq4kft.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What does Infinsight do?
&lt;/h3&gt;

&lt;p&gt;Users upload a CSV, Excel, or PDF file. Then they ask questions in plain English like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"What's the average revenue by region?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which customers are most likely to churn?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Show me a sales trend for the last 6 months."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Infinsight handles the rest.&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works under the hood
&lt;/h3&gt;

&lt;p&gt;This is where it gets interesting. Infinsight uses a &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parse&lt;/strong&gt; — The file is parsed into text chunks. CSV rows become natural-language summaries; PDFs are chunked page by page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embed&lt;/strong&gt; — Each chunk is converted into a 768-dimensional vector using &lt;code&gt;gemini-embedding-001&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Store&lt;/strong&gt; — Vectors are stored in a &lt;strong&gt;Pinecone&lt;/strong&gt; vector database under a user-specific namespace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieve&lt;/strong&gt; — When a query arrives, the most relevant chunks are fetched via semantic similarity search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyze&lt;/strong&gt; — The relevant context and dataset schema are passed to Gemini. If the query needs computation (sums, trends, forecasts), Gemini generates &lt;strong&gt;Pandas code&lt;/strong&gt;, which is executed safely in a sandboxed &lt;code&gt;asteval&lt;/code&gt; interpreter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Report&lt;/strong&gt; — The computed results are passed back to Gemini, which writes a clean, human-readable analyst report.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What kind of analysis can it do?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📈 Time-series trend analysis&lt;/li&gt;
&lt;li&gt;🧮 RFM (Recency, Frequency, Monetary) customer segmentation&lt;/li&gt;
&lt;li&gt;📉 Linear regression forecasting&lt;/li&gt;
&lt;li&gt;🔗 Profit-discount correlation analysis&lt;/li&gt;
&lt;li&gt;📋 Summary statistics, grouping, filtering&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The value it delivers
&lt;/h3&gt;

&lt;p&gt;Infinsight removes the biggest barrier to data analysis: &lt;strong&gt;you don't need to know how to code.&lt;/strong&gt; Upload your file, ask your question, get your answer. It's like having a junior data analyst on call 24/7.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Django 5.2, Python 3.11, Gunicorn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PostgreSQL (Neon cloud)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Google Gemini 2.5 Flash / Lite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenRouter (100+ LLMs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI Fallback&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Groq (Llama, Qwen, Kimi)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NLP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom Regex Engine (Nlp.py)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vector DB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pinecone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embeddings&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;gemini-embedding-001 (768 dim)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Web Search&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;DuckDuckGo (ddgs) + Wikipedia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;File Parsing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;pdfplumber, pypdf, python-docx&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Analysis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;pandas, numpy, scikit-learn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secure Execution&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;asteval (sandboxed Python)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Encryption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;cryptography (Fernet)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Auth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Django sessions + Google OAuth 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Vanilla JS + CSS (no framework)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Render&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⚙️ How It Works — Step by Step
&lt;/h2&gt;

&lt;p&gt;Here's the full flow from the moment you type a message to the moment you get a response:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Authentication&lt;/strong&gt;&lt;br&gt;
You log in via email/password or Google OAuth. Your session is stored server-side with a 2-week expiry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — API Key Setup&lt;/strong&gt;&lt;br&gt;
You enter your Gemini and OpenRouter API keys. They're encrypted with Fernet and stored in the database — they never touch the browser again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Send a Message&lt;/strong&gt;&lt;br&gt;
You type your message (or use voice) and select a mode: Text, Coding, Web Search, File Analysis, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — NLP Pre-processing&lt;/strong&gt;&lt;br&gt;
Your message is cleaned (noise removed, punctuation normalized) and analyzed for intent. If you wrote text mode but included code blocks, the system upgrades it to coding mode automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5 — Parallel DB Lookups&lt;/strong&gt;&lt;br&gt;
Your API keys, user settings, and chat session are fetched in parallel threads. This keeps things fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6 — History Load&lt;/strong&gt;&lt;br&gt;
2–6 recent turns from your current chat session are loaded and compressed into a context block.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7 — Baymax Dispatches&lt;/strong&gt;&lt;br&gt;
The right handler is called: &lt;code&gt;handle_text&lt;/code&gt;, &lt;code&gt;handle_coding&lt;/code&gt;, &lt;code&gt;handle_websearch&lt;/code&gt;, &lt;code&gt;handle_voice_chat&lt;/code&gt;, &lt;code&gt;handle_file&lt;/code&gt;, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8 — AI Model Call + Fallback&lt;/strong&gt;&lt;br&gt;
The primary model is called. If it fails → try fallback OpenRouter models → try Groq. A response always comes back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9 — Response Returned&lt;/strong&gt;&lt;br&gt;
The AI reply is returned as JSON to the frontend. Non-temporary chats are saved to the database asynchronously (no latency added).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10 — Infinsight Path (for data files)&lt;/strong&gt;&lt;br&gt;
Upload → Parse → Embed → Store in Pinecone → Retrieve by similarity → Feed to Gemini → Generate Pandas code → Execute in sandbox → Interpret result → Return analyst report.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼 Screenshots / Demo
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Main Chat UI&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1byrrg0i908iwis75ze4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1byrrg0i908iwis75ze4.png" alt=" " width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Infinsight Analytics Report&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8b66k86d38ecp9we17k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8b66k86d38ecp9we17k.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voice Chat Overlay&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47ja28w9runizro27lc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47ja28w9runizro27lc2.png" alt=" " width="699" height="704"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚧 Challenges &amp;amp; Solutions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1 — Single Point of Failure
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; If Gemini's API quota ran out mid-session, the entire platform would break.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Built a waterfall fallback system — Primary → 6 OpenRouter models → 4 Groq models. If one fails, the next kicks in automatically with zero user-facing errors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 2 — Generic AI Responses
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; A single model with a single prompt gives mediocre results across different task types.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Built the NLP intent detection layer to classify every message and route it to a purpose-built handler with a task-specific system prompt and model selection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 3 — Secure API Key Management
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Storing API keys in localStorage or plain text in a DB is a security nightmare.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; All keys are encrypted with Fernet symmetric encryption before database storage. They're decrypted server-side only when needed and never returned to the client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 4 — Data Analysis Without Code
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; CSV/Excel analysis requires Python or SQL skills that most users don't have.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Infinsight's RAG pipeline retrieves relevant data context and has Gemini generate Pandas code on the fly. The code runs in a sandboxed &lt;code&gt;asteval&lt;/code&gt; interpreter and the output is translated into a readable report.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 5 — Expensive Long Conversations
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Sending full chat history to the LLM on every turn is slow and burns tokens fast.&lt;br&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; History is limited to 1–6 turns depending on task type, compressed into a single block, and paired with adaptive token budgets that scale with task complexity.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;👩‍🎓 Students &amp;amp; Learners&lt;/strong&gt;&lt;br&gt;
Get explanations, essay help, coding guidance, and concept breakdowns — all in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Developers&lt;/strong&gt;&lt;br&gt;
Generate boilerplate, debug tricky functions, refactor messy code, and get algorithmic suggestions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 Data Analysts&lt;/strong&gt;&lt;br&gt;
Upload your CSV or Excel file and ask questions in plain English. No pandas, no SQL, no problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔬 Researchers&lt;/strong&gt;&lt;br&gt;
Use web search mode to get AI-summarized answers with citations from live web results — no stale training data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏢 Businesses&lt;/strong&gt;&lt;br&gt;
Deploy as an internal tool with per-user API key isolation, custom instructions, and persistent chat history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧑 General Users&lt;/strong&gt;&lt;br&gt;
Voice chat, document Q&amp;amp;A, general conversation, web lookups — a true all-in-one assistant.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 Future Improvements
&lt;/h2&gt;

&lt;p&gt;Here's what's on the roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🖼️ &lt;strong&gt;Image Generation&lt;/strong&gt; — Integrate Stable Diffusion or DALL·E for visual output&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Mobile App&lt;/strong&gt; — A React Native companion app for on-the-go access&lt;/li&gt;
&lt;li&gt;🔌 &lt;strong&gt;Plugin System&lt;/strong&gt; — Allow users to connect custom tools and APIs to the assistant&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Infinsight v2&lt;/strong&gt; — Support for SQL databases and real-time data streams&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Multi-language Support&lt;/strong&gt; — NLP and UI support for non-English users&lt;/li&gt;
&lt;li&gt;👥 &lt;strong&gt;Team Workspaces&lt;/strong&gt; — Shared chat sessions and collaborative analytics for teams&lt;/li&gt;
&lt;li&gt;📡 &lt;strong&gt;Webhook Integrations&lt;/strong&gt; — Trigger Hero's AI from Slack, Notion, or GitHub events&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Long-term Memory&lt;/strong&gt; — Persistent semantic memory across sessions using vector search&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎉 Conclusion
&lt;/h2&gt;

&lt;p&gt;Building Hero's AI was one of the most rewarding projects I've worked on. It pushed me to think about reliability, security, user experience, and AI engineering all at once.&lt;/p&gt;

&lt;p&gt;The biggest lesson? &lt;strong&gt;Don't build on a single point of failure.&lt;/strong&gt; Whether it's your AI provider, your database, or your auth system — build fallbacks in from day one.&lt;/p&gt;

&lt;p&gt;If you're a developer who's ever wanted to build a serious AI product — one that handles real-world edge cases, keeps user data secure, and actually works when APIs go down — I hope Hero's AI gives you some useful ideas and patterns to borrow.&lt;/p&gt;

&lt;p&gt;Feel free to check out the repo, open issues, or drop me a message. I'd love to hear your thoughts! 🚀&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Hudsonmathew1910/Hero-s-AI" rel="noopener noreferrer"&gt;https://github.com/Hudsonmathew1910/Hero-s-AI&lt;/a&gt;&lt;br&gt;
📧 &lt;strong&gt;Contact:&lt;/strong&gt; &lt;a href="mailto:hudsonmathew2004@gmail.com"&gt;hudsonmathew2004@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://hero-s-ai.onrender.com/" rel="noopener noreferrer"&gt;Feel free to explore Hero's AI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;If you found this useful, drop a ❤️ and share it with a developer friend. And if you build something inspired by this — I'd genuinely love to see it!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;#python&lt;/code&gt; &lt;code&gt;#django&lt;/code&gt; &lt;code&gt;#ai&lt;/code&gt; &lt;code&gt;#machinelearning&lt;/code&gt; &lt;code&gt;#webdev&lt;/code&gt; &lt;code&gt;#opensource&lt;/code&gt; &lt;code&gt;#showdev&lt;/code&gt; &lt;code&gt;#productivity&lt;/code&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>nlp</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>EpicOutlet</title>
      <dc:creator>Hudson Mathew</dc:creator>
      <pubDate>Sat, 14 Mar 2026 13:15:57 +0000</pubDate>
      <link>https://forem.com/hudson_mathew_j/epicoutlet-3o9c</link>
      <guid>https://forem.com/hudson_mathew_j/epicoutlet-3o9c</guid>
      <description>&lt;h2&gt;
  
  
  🛒 EpicOutlet – AI Powered E-Commerce App
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;EpicOutlet&lt;/strong&gt; is a full-stack &lt;strong&gt;e-commerce web application&lt;/strong&gt; built with &lt;strong&gt;Python and Django&lt;/strong&gt;.&lt;br&gt;
Users can &lt;strong&gt;browse, search, and purchase products&lt;/strong&gt; across categories like electronics, fashion, groceries, and home items.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c7y57pa3lae871zzj3j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c7y57pa3lae871zzj3j.png" alt="EpicOutlet" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform includes &lt;strong&gt;user authentication, a shopping cart, a favourites list&lt;/strong&gt;, and an &lt;strong&gt;AI shopping chatbot (Shop-Bot)&lt;/strong&gt; that helps users find products using natural language queries like &lt;em&gt;“phones under ₹30,000”&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Shop Bot
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdrthyfs8b6u5zsvfb4hf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdrthyfs8b6u5zsvfb4hf.png" alt="Cart Bot" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python, Django&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL (Supabase)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media Storage:&lt;/strong&gt; Cloudinary&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Files:&lt;/strong&gt; WhiteNoise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Render + Gunicorn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API:&lt;/strong&gt; django-tastypie (&lt;code&gt;/api/v1/&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project demonstrates &lt;strong&gt;full-stack development, REST APIs, AI chatbot integration, and cloud deployment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Explore the app:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://epicoutlet.onrender.com/" rel="noopener noreferrer"&gt;https://epicoutlet.onrender.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>python</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>My Portfolio</title>
      <dc:creator>Hudson Mathew</dc:creator>
      <pubDate>Sat, 14 Mar 2026 13:05:18 +0000</pubDate>
      <link>https://forem.com/hudson_mathew_j/my-portfolio-g84</link>
      <guid>https://forem.com/hudson_mathew_j/my-portfolio-g84</guid>
      <description>&lt;h2&gt;
  
  
  🌐 My Portfolio &amp;amp; Portfolio AI Bot
&lt;/h2&gt;

&lt;p&gt;Hello, I’m &lt;strong&gt;Hudson Mathew&lt;/strong&gt;, a &lt;strong&gt;software developer&lt;/strong&gt; focused on &lt;strong&gt;Python, full-stack web development, and UI/UX design&lt;/strong&gt;. I enjoy building practical applications that solve real problems and deliver smooth user experiences.&lt;/p&gt;

&lt;p&gt;My portfolio showcases my &lt;strong&gt;projects, technical skills, and development journey&lt;/strong&gt;, while the &lt;strong&gt;Portfolio AI Bot&lt;/strong&gt; helps visitors explore my work through an interactive chat interface.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Portfolio AI Bot
&lt;/h2&gt;

&lt;p&gt;The Portfolio AI Bot helps visitors to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💬 Navigate the portfolio using &lt;strong&gt;chat-style interaction&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔍 Discover &lt;strong&gt;projects and skills quickly&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🌐 Explore my work in a &lt;strong&gt;simple and interactive way&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ag4jsam3f1eucdablpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ag4jsam3f1eucdablpc.png" alt="Portfolio AI" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Portfolio Site
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; – Semantic single-page structure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; – Grid, Flexbox, animations, responsive design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; – DOM interaction and UI behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assets&lt;/strong&gt; – Google Fonts, Boxicons, Font Awesome&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Portfolio Bot
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; – Functional components (&lt;code&gt;useState&lt;/code&gt;, &lt;code&gt;useEffect&lt;/code&gt;, &lt;code&gt;useRef&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI API&lt;/strong&gt; – Anthropic Claude model integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UX&lt;/strong&gt; – Auto-scroll, typing indicator, suggestion chips&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;strong&gt;Explore here:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://hudsonmathew1910.github.io/Hudson-Portfolio/" rel="noopener noreferrer"&gt;https://hudsonmathew1910.github.io/Hudson-Portfolio/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>portfolio</category>
    </item>
  </channel>
</rss>
