<?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>DEV Community: Brandi</title>
    <description>The latest articles on DEV Community by Brandi (@brandi_kitchens_developer).</description>
    <link>https://dev.to/brandi_kitchens_developer</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%2F3778579%2F7b393f9d-8626-4ddb-9e85-fa7b7ab92740.jpg</url>
      <title>DEV Community: Brandi</title>
      <link>https://dev.to/brandi_kitchens_developer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brandi_kitchens_developer"/>
    <language>en</language>
    <item>
      <title>Why RiskLens CI Almost Broke Me</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Sat, 21 Mar 2026 22:24:29 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/why-risklens-ci-almost-broke-me-4jh6</link>
      <guid>https://dev.to/brandi_kitchens_developer/why-risklens-ci-almost-broke-me-4jh6</guid>
      <description>&lt;h2&gt;
  
  
  The Beginning Looked Simple
&lt;/h2&gt;

&lt;p&gt;When I started building &lt;strong&gt;RiskLens CI&lt;/strong&gt;, the idea actually made sense to me.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trigger on a GitLab merge request
&lt;/li&gt;
&lt;li&gt;Analyze code changes
&lt;/li&gt;
&lt;li&gt;Return risk level, issues, and recommendations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conceptually… I understood it.&lt;/p&gt;

&lt;p&gt;But the system itself? Completely different story.&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%2Flxjrxymqjfbobgl7iyr7.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%2Flxjrxymqjfbobgl7iyr7.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was running. The endpoint responded.&lt;/p&gt;

&lt;p&gt;And I thought… &lt;em&gt;okay this should be working.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It wasn’t.&lt;/p&gt;




&lt;h2&gt;
  
  
  This Felt More Advanced Than Anything I’ve Built
&lt;/h2&gt;

&lt;p&gt;I’m going to be real here — this project felt advanced for me.&lt;/p&gt;

&lt;p&gt;Not because I couldn’t understand the idea…&lt;/p&gt;

&lt;p&gt;But because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system behavior was unfamiliar
&lt;/li&gt;
&lt;li&gt;The feedback loop wasn’t obvious
&lt;/li&gt;
&lt;li&gt;And small mistakes didn’t break things — they just made them worse
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That part messed with me.&lt;/p&gt;




&lt;h2&gt;
  
  
  The “Almost Working” Stage Is the Worst
&lt;/h2&gt;

&lt;p&gt;Everything looked like it was firing correctly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Webhook → ✅
&lt;/li&gt;
&lt;li&gt;Backend → ✅
&lt;/li&gt;
&lt;li&gt;AI processing → ✅
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the results?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slightly off
&lt;/li&gt;
&lt;li&gt;Missing detail
&lt;/li&gt;
&lt;li&gt;Not as “smart” as I expected
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s when frustration really started setting in.&lt;/p&gt;

&lt;p&gt;Because nothing was clearly broken.&lt;/p&gt;




&lt;h2&gt;
  
  
  Risk &amp;amp; Predictive Systems Are Not Forgiving
&lt;/h2&gt;

&lt;p&gt;This is something I didn’t expect:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Risk assessment systems and predictive outputs are extremely sensitive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re not precise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The risk score becomes meaningless
&lt;/li&gt;
&lt;li&gt;The issues feel generic
&lt;/li&gt;
&lt;li&gt;The recommendations lose value
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s exactly what I was seeing.&lt;/p&gt;

&lt;p&gt;It wasn’t wrong… it just wasn’t useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Was Missing (And Didn’t Realize)
&lt;/h2&gt;

&lt;p&gt;This is what took me the longest to understand:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I wasn’t missing logic — I was missing &lt;em&gt;language&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes it was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One phrase in the prompt
&lt;/li&gt;
&lt;li&gt;One missing instruction
&lt;/li&gt;
&lt;li&gt;One unclear expectation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that tiny gap changed everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  When It Finally Clicked
&lt;/h2&gt;

&lt;p&gt;This is when it started to feel real:&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%2F8sdxe03792cxipkjc3sp.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%2F8sdxe03792cxipkjc3sp.png" alt=" " width="800" height="332"&gt;&lt;/a&gt;&lt;br&gt;
Now I was getting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔺 &lt;strong&gt;Risk Level: HIGH (75/100)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Clear summary of what was happening
&lt;/li&gt;
&lt;li&gt;Real issues tied to configuration + authentication
&lt;/li&gt;
&lt;li&gt;Recommendations that actually made sense
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This wasn’t just output anymore.&lt;/p&gt;

&lt;p&gt;This felt like a system.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Changed Everything
&lt;/h2&gt;

&lt;p&gt;I stopped thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why isn’t this working?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What EXACTLY am I not telling the system?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That shift helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tighten my prompts
&lt;/li&gt;
&lt;li&gt;Be explicit about output format
&lt;/li&gt;
&lt;li&gt;Remove assumptions
&lt;/li&gt;
&lt;li&gt;Treat the AI like a strict executor
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s when everything came together.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Frustration Was Real
&lt;/h2&gt;

&lt;p&gt;There were moments where I felt like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I was going in circles
&lt;/li&gt;
&lt;li&gt;The system was reacting but not improving
&lt;/li&gt;
&lt;li&gt;I was right there… but couldn’t see what was missing
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That “almost working” phase is exhausting.&lt;/p&gt;

&lt;p&gt;But it’s also where everything starts to click.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Precision &amp;gt; Complexity
&lt;/h3&gt;

&lt;p&gt;Even simple ideas break without clear instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Doesn’t Guess
&lt;/h3&gt;

&lt;p&gt;If you don’t say it, it won’t do it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Predictive Systems Require Control
&lt;/h3&gt;

&lt;p&gt;You can’t be vague with risk analysis — you have to define everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re building AI systems and feel stuck…&lt;/p&gt;

&lt;p&gt;You’re probably not far off.&lt;/p&gt;

&lt;p&gt;You might just be missing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one phrase
&lt;/li&gt;
&lt;li&gt;one instruction
&lt;/li&gt;
&lt;li&gt;one piece of clarity
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And once you find it — everything changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;I’m continuing to evolve RiskLens CI into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered code review assistant
&lt;/li&gt;
&lt;li&gt;Multi-agent analysis workflows
&lt;/li&gt;
&lt;li&gt;Automated fix + deployment previews
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just the beginning.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're building something and it feels frustrating — especially with AI — you're not alone. You're probably closer than you think.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building RiskLens CI: The Reality of AI + Dev Tooling Friction</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Thu, 19 Mar 2026 23:45:13 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/building-risklens-ci-the-reality-of-ai-dev-tooling-friction-ac5</link>
      <guid>https://dev.to/brandi_kitchens_developer/building-risklens-ci-the-reality-of-ai-dev-tooling-friction-ac5</guid>
      <description>&lt;h2&gt;
  
  
  This one was different
&lt;/h2&gt;

&lt;p&gt;I’ve built AI systems before.&lt;/p&gt;

&lt;p&gt;RAG pipelines. Automation tools. Dashboards.&lt;/p&gt;

&lt;p&gt;But building &lt;strong&gt;RiskLens CI&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;This one pushed me in a different way.&lt;/p&gt;

&lt;p&gt;Not because the idea was hard…&lt;br&gt;&lt;br&gt;
But because the &lt;em&gt;environment&lt;/em&gt; was.&lt;/p&gt;




&lt;h2&gt;
  
  
  The constant back and forth
&lt;/h2&gt;

&lt;p&gt;This wasn’t a straight build.&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;switching between tools
&lt;/li&gt;
&lt;li&gt;fighting with extensions
&lt;/li&gt;
&lt;li&gt;reconfiguring environments
&lt;/li&gt;
&lt;li&gt;debugging things that &lt;em&gt;should&lt;/em&gt; have worked
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And doing it over and over again.&lt;/p&gt;

&lt;p&gt;One minute everything runs.&lt;br&gt;&lt;br&gt;
Next minute something breaks for no clear reason.&lt;/p&gt;




&lt;h2&gt;
  
  
  The hidden complexity of “AI-powered dev”
&lt;/h2&gt;

&lt;p&gt;From the outside, it looks simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just use AI, build fast, ship.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But in reality?&lt;/p&gt;

&lt;p&gt;You’re dealing with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API inconsistencies
&lt;/li&gt;
&lt;li&gt;environment mismatches
&lt;/li&gt;
&lt;li&gt;dependency conflicts
&lt;/li&gt;
&lt;li&gt;version issues across tools
&lt;/li&gt;
&lt;li&gt;cloud vs local differences
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And when you’re building something like a CI assistant…&lt;/p&gt;

&lt;p&gt;Everything has to work together.&lt;/p&gt;




&lt;h2&gt;
  
  
  The part nobody talks about
&lt;/h2&gt;

&lt;p&gt;The frustration.&lt;/p&gt;

&lt;p&gt;The restarting.&lt;/p&gt;

&lt;p&gt;The feeling of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why is this breaking again?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s not just technical.&lt;/p&gt;

&lt;p&gt;It’s mental.&lt;/p&gt;

&lt;p&gt;Because you’re not solving one problem…&lt;br&gt;&lt;br&gt;
You’re solving layers of problems at the same time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What RiskLens CI is teaching me
&lt;/h2&gt;

&lt;p&gt;This project is teaching me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to debug across systems
&lt;/li&gt;
&lt;li&gt;how to work through unstable environments
&lt;/li&gt;
&lt;li&gt;how to stay consistent even when progress feels slow
&lt;/li&gt;
&lt;li&gt;how to build something that actually works
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real engineering vs perfect demos
&lt;/h2&gt;

&lt;p&gt;There’s a difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a demo that works once
&lt;/li&gt;
&lt;li&gt;a system that works consistently
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;RiskLens CI is forcing me into the second category.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;If you’re building with AI right now and feeling frustrated…&lt;/p&gt;

&lt;p&gt;You’re not doing it wrong.&lt;/p&gt;

&lt;p&gt;You’re just in the part nobody posts about.&lt;/p&gt;




&lt;p&gt;👉 Full blog here:&lt;br&gt;&lt;br&gt;
&lt;a href="https://bdcreativesystems-star.github.io/ai/career/machine%20learning/2026/03/19/getting-certified-in-ai-ml-while-watching-vibe-coders-move-faster.html" rel="noopener noreferrer"&gt;https://bdcreativesystems-star.github.io/ai/career/machine%20learning/2026/03/19/getting-certified-in-ai-ml-while-watching-vibe-coders-move-faster.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>Why AI Systems Need Access Control (And What I Built)</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Thu, 19 Mar 2026 17:54:54 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/why-ai-systems-need-access-control-and-what-i-built-3nfp</link>
      <guid>https://dev.to/brandi_kitchens_developer/why-ai-systems-need-access-control-and-what-i-built-3nfp</guid>
      <description>&lt;h2&gt;
  
  
  I Built a Secure AI Business Insights Agent (Because AI Needs Access Control)
&lt;/h2&gt;

&lt;p&gt;Most AI projects focus on one thing:&lt;/p&gt;

&lt;p&gt;👉 generating answers&lt;/p&gt;

&lt;p&gt;But almost none focus on something just as important:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;who should be allowed to see those answers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built a &lt;strong&gt;Secure AI Business Insights Agent&lt;/strong&gt; — a system designed not just to generate insights, but to control how those insights are accessed and used.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Problem
&lt;/h2&gt;

&lt;p&gt;AI systems today are incredibly powerful, but they often lack structure around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who can access insights&lt;/li&gt;
&lt;li&gt;what data is exposed&lt;/li&gt;
&lt;li&gt;how agents act on behalf of users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In real business environments, this matters.&lt;/p&gt;

&lt;p&gt;A system that gives the right answer to the wrong person is still a problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ What I Built
&lt;/h2&gt;

&lt;p&gt;This project is a lightweight AI-powered dashboard that combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;business data processing&lt;/li&gt;
&lt;li&gt;insight generation&lt;/li&gt;
&lt;li&gt;structured access awareness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to simulate how AI systems can operate in a more &lt;strong&gt;controlled and secure environment&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Core Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📊 Generate business insights from data&lt;/li&gt;
&lt;li&gt;🔐 Consider access control in how insights are delivered&lt;/li&gt;
&lt;li&gt;🖥️ Simple dashboard interface (Streamlit)&lt;/li&gt;
&lt;li&gt;⚡ Lightweight and fast to run&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Streamlit&lt;/li&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;NumPy&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Live Demo
&lt;/h2&gt;

&lt;p&gt;You can try it here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://secure-ai-business-agent-d8mdjkugcoresihnnsldqn.streamlit.app" rel="noopener noreferrer"&gt;https://secure-ai-business-agent-d8mdjkugcoresihnnsldqn.streamlit.app&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Makes This Different
&lt;/h2&gt;

&lt;p&gt;A lot of AI tools today focus on output quality.&lt;/p&gt;

&lt;p&gt;This project focuses on &lt;strong&gt;output responsibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means thinking about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whether the system should return an answer&lt;/li&gt;
&lt;li&gt;what context is appropriate&lt;/li&gt;
&lt;li&gt;how AI interacts with user roles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is especially important as AI systems move into real business workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I Learned
&lt;/h2&gt;

&lt;p&gt;This project reinforced that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI systems need more than intelligence — they need structure&lt;/li&gt;
&lt;li&gt;access control is a critical part of AI design&lt;/li&gt;
&lt;li&gt;even simple systems can model real-world constraints&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔮 What’s Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add authentication (Auth0 or similar)&lt;/li&gt;
&lt;li&gt;Connect to live data sources&lt;/li&gt;
&lt;li&gt;Expand into a multi-user system&lt;/li&gt;
&lt;li&gt;Integrate LLM-based dynamic insights&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💭 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;AI is moving fast.&lt;/p&gt;

&lt;p&gt;But if we don’t think about &lt;strong&gt;security and control&lt;/strong&gt;, we risk building systems that are powerful… but not practical.&lt;/p&gt;

&lt;p&gt;This project is a small step toward building AI systems that are not just smart — but trustworthy.&lt;/p&gt;




&lt;p&gt;If you're building AI tools, I’d love to hear how you're handling access control and security in your systems.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>RAG + FastAPI in Action: Creating a Smart Business Analytics Dashboard in Python</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Thu, 19 Mar 2026 17:20:05 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/rag-fastapi-in-action-creating-a-smart-business-analytics-dashboard-in-python-1pcn</link>
      <guid>https://dev.to/brandi_kitchens_developer/rag-fastapi-in-action-creating-a-smart-business-analytics-dashboard-in-python-1pcn</guid>
      <description>&lt;h2&gt;
  
  
  How I Built a RAG-Powered Business Insights Dashboard in Python + FastAPI
&lt;/h2&gt;

&lt;p&gt;I have officially reached the point where I look at raw business data and think,&lt;br&gt;&lt;br&gt;
“Yeah... this needs a brain.”&lt;/p&gt;

&lt;p&gt;So instead of building another dashboard that just throws charts on a screen and acts like that is enough, I decided to build something smarter: a &lt;strong&gt;RAG-powered Business Insights Dashboard&lt;/strong&gt; using &lt;strong&gt;Python, FastAPI, embeddings, vector search, and LLM integration&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because sometimes businesses do not just need data.&lt;/p&gt;

&lt;p&gt;They need answers.&lt;/p&gt;

&lt;p&gt;And preferably answers that do not require three meetings, five spreadsheets, and one person saying, “Let me circle back on that.”&lt;/p&gt;

&lt;p&gt;This project was my way of combining backend engineering, AI workflows, and practical business use into one system that can actually help someone make decisions faster.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Beginning (Where It Actually Started Working)
&lt;/h2&gt;

&lt;p&gt;This was one of those small wins that felt bigger than it should have.&lt;/p&gt;

&lt;p&gt;I finally got my FastAPI endpoint running locally, sent my first question through the system, and got a response back.&lt;/p&gt;

&lt;p&gt;Was it perfect? Not even close.&lt;br&gt;&lt;br&gt;
Did it technically work? Yes.&lt;br&gt;&lt;br&gt;
And honestly… that is all I needed at that moment.&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%2Fjbeaq4h9hp7bn5g5kifm.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%2Fjbeaq4h9hp7bn5g5kifm.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, the system was not doing retrieval yet.&lt;br&gt;&lt;br&gt;
No embeddings. No vector search. No real intelligence.&lt;/p&gt;

&lt;p&gt;It was basically just echoing my question back to me like:&lt;/p&gt;

&lt;p&gt;“Hey, I hear you… I just don’t know anything yet.”&lt;/p&gt;

&lt;p&gt;But that response meant the pipeline was alive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI was running&lt;/li&gt;
&lt;li&gt;The endpoint was working&lt;/li&gt;
&lt;li&gt;The request/response cycle was solid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that is where everything starts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Wanted to Build
&lt;/h2&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Build a dashboard where a user can upload business documents, reports, notes, or operational data, then ask questions in plain English and get useful, context-aware answers back.&lt;/p&gt;

&lt;p&gt;Not generic AI answers.&lt;br&gt;&lt;br&gt;
Not hallucinated motivational speeches.&lt;br&gt;&lt;br&gt;
Not “As an AI language model...” nonsense.&lt;/p&gt;

&lt;p&gt;I wanted the system to retrieve the &lt;strong&gt;right context first&lt;/strong&gt;, then generate a grounded response based on the user’s actual business information.&lt;/p&gt;

&lt;p&gt;That is where &lt;strong&gt;RAG&lt;/strong&gt; comes in.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is RAG?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RAG&lt;/strong&gt; stands for &lt;strong&gt;Retrieval-Augmented Generation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At a high level, it works like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A user uploads documents or data.&lt;/li&gt;
&lt;li&gt;The system breaks that content into chunks.&lt;/li&gt;
&lt;li&gt;Those chunks get turned into &lt;strong&gt;embeddings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The embeddings get stored in a &lt;strong&gt;vector database&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;When the user asks a question, the system searches for the most relevant chunks.&lt;/li&gt;
&lt;li&gt;The LLM uses those retrieved chunks to generate an answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So instead of the model guessing, it responds using actual information from the knowledge base.&lt;/p&gt;

&lt;p&gt;Which is great, because guessing is fun in game shows, not in business reporting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I wanted to create something that felt more real-world than a standard chatbot.&lt;/p&gt;

&lt;p&gt;A lot of businesses already have data.&lt;br&gt;&lt;br&gt;
What they do &lt;strong&gt;not&lt;/strong&gt; always have is a fast way to turn that data into usable insight.&lt;/p&gt;

&lt;p&gt;That gap is where this project lives.&lt;/p&gt;

&lt;p&gt;This kind of system could be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;internal reporting&lt;/li&gt;
&lt;li&gt;operational summaries&lt;/li&gt;
&lt;li&gt;KPI analysis&lt;/li&gt;
&lt;li&gt;executive question-answering&lt;/li&gt;
&lt;li&gt;document intelligence&lt;/li&gt;
&lt;li&gt;support for decision-making workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is basically a way to make business data more conversational, more searchable, and a lot more useful.&lt;/p&gt;




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

&lt;p&gt;Here is the stack I used for this build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; for the backend logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; for the API layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings model&lt;/strong&gt; to convert text into vectors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector search&lt;/strong&gt; for semantic retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM integration&lt;/strong&gt; for grounded answer generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend dashboard/UI&lt;/strong&gt; for user interaction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was the kind of project that reminded me why I like building AI systems in Python.&lt;br&gt;&lt;br&gt;
Python lets you move fast, wire things together cleanly, and feel powerful even while debugging something ridiculous.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Ingesting the Data
&lt;/h2&gt;

&lt;p&gt;The first step was getting the business content into the system.&lt;/p&gt;

&lt;p&gt;That could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reports&lt;/li&gt;
&lt;li&gt;PDFs&lt;/li&gt;
&lt;li&gt;notes&lt;/li&gt;
&lt;li&gt;CSV exports&lt;/li&gt;
&lt;li&gt;internal documents&lt;/li&gt;
&lt;li&gt;summaries&lt;/li&gt;
&lt;li&gt;text-based records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the data came in, I needed to clean it and prepare it for retrieval.&lt;/p&gt;

&lt;p&gt;That meant extracting text and splitting it into smaller chunks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why chunking matters
&lt;/h3&gt;

&lt;p&gt;LLMs and vector search do not work well if you feed them giant walls of text.&lt;/p&gt;

&lt;p&gt;So I split the documents into manageable chunks with overlap.&lt;/p&gt;

&lt;p&gt;That overlap matters because context can get lost if you slice text too aggressively.&lt;br&gt;&lt;br&gt;
Too small, and the meaning disappears.&lt;br&gt;&lt;br&gt;
Too big, and retrieval gets messy.&lt;/p&gt;

&lt;p&gt;Chunking is one of those quiet little engineering decisions that makes a huge difference later.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Turning Text Into Embeddings
&lt;/h2&gt;

&lt;p&gt;After chunking the content, I converted each chunk into an &lt;strong&gt;embedding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An embedding is a numeric representation of text.&lt;br&gt;&lt;br&gt;
It captures semantic meaning so that similar ideas end up close together in vector space.&lt;/p&gt;

&lt;p&gt;In normal human terms:&lt;br&gt;&lt;br&gt;
the system starts understanding that “revenue dropped last quarter” and “sales declined recently” are related, even if the words are not identical.&lt;/p&gt;

&lt;p&gt;That is what makes semantic search so powerful.&lt;/p&gt;

&lt;p&gt;Instead of keyword matching, the system can search by meaning.&lt;/p&gt;

&lt;p&gt;Which is good, because business people do not all ask the same question the same way.&lt;/p&gt;

&lt;p&gt;One person asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Why are profits down?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“What changed financially in Q4?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Why does this spreadsheet hate us?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Same family of problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Storing Embeddings for Vector Search
&lt;/h2&gt;

&lt;p&gt;Once the embeddings were created, I stored them in a vector index so the application could retrieve the most relevant chunks later.&lt;/p&gt;

&lt;p&gt;This is the core of the retrieval layer.&lt;/p&gt;

&lt;p&gt;When a user asks a question, the system does not scan documents the way a normal search engine would.&lt;br&gt;&lt;br&gt;
Instead, it converts the question into an embedding too, then finds the closest matching chunks based on vector similarity.&lt;/p&gt;

&lt;p&gt;That is the magic behind &lt;strong&gt;vector search&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the magic behind &lt;strong&gt;vector search&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is less about exact words and more about conceptual closeness.&lt;/p&gt;

&lt;p&gt;So if the uploaded document contains something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The policy period is effective from January 1, 2026 through December 31, 2026&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and the user asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where is the policy period located?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or even:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are the coverage dates on this policy?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the system still understands what the user is trying to find.&lt;/p&gt;

&lt;p&gt;That is because embeddings capture meaning, not just keywords.&lt;/p&gt;

&lt;p&gt;Which is important… because nobody asks insurance questions the exact same way.&lt;/p&gt;

&lt;p&gt;One person asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Where is the policy period?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“What dates does this policy cover?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another asks:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“When does this thing even start and end?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Same question. Different wording. Same intent.&lt;/p&gt;

&lt;p&gt;And this is exactly where traditional keyword search starts to struggle.&lt;/p&gt;

&lt;p&gt;But with vector search, the system can connect those dots and return the right section of the document without needing perfect phrasing.&lt;/p&gt;

&lt;p&gt;That is what makes this architecture so powerful for document-heavy workflows like insurance, contracts, and compliance.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Building the Retrieval Pipeline
&lt;/h2&gt;

&lt;p&gt;Once the vector store was ready, I built the retrieval flow.&lt;/p&gt;

&lt;p&gt;The pipeline looked something like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receive the user’s question&lt;/li&gt;
&lt;li&gt;Convert the question into an embedding&lt;/li&gt;
&lt;li&gt;Search the vector database for the most relevant chunks&lt;/li&gt;
&lt;li&gt;Return the top matching results&lt;/li&gt;
&lt;li&gt;Pass those results into the LLM prompt&lt;/li&gt;
&lt;li&gt;Generate a grounded answer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is where the application starts to feel smart.&lt;/p&gt;

&lt;p&gt;Because now the model is not just answering from general training.&lt;br&gt;&lt;br&gt;
It is answering from &lt;em&gt;retrieved business context&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That difference matters a lot.&lt;/p&gt;

&lt;p&gt;Without retrieval, an LLM can sound polished and still be wrong.&lt;br&gt;&lt;br&gt;
With retrieval, the answer has a much better chance of being relevant, specific, and actually helpful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Integrating the LLM
&lt;/h2&gt;

&lt;p&gt;After retrieval, I passed the relevant chunks into the LLM with a prompt that basically said:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;here is the user’s question&lt;/li&gt;
&lt;li&gt;here is the retrieved context&lt;/li&gt;
&lt;li&gt;answer based on this context&lt;/li&gt;
&lt;li&gt;stay grounded in the source material&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This step is where the user gets the final result.&lt;/p&gt;

&lt;p&gt;The LLM is not acting like a standalone oracle.&lt;br&gt;&lt;br&gt;
It is acting more like a reasoning layer on top of retrieved knowledge.&lt;/p&gt;

&lt;p&gt;That was important to me because I did not want a flashy chatbot.&lt;br&gt;&lt;br&gt;
I wanted a useful system.&lt;/p&gt;

&lt;p&gt;The LLM’s job was to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;summarize findings&lt;/li&gt;
&lt;li&gt;explain trends&lt;/li&gt;
&lt;li&gt;answer business questions clearly&lt;/li&gt;
&lt;li&gt;stay tied to the source content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, I wanted intelligence with receipts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6: Wrapping It in FastAPI
&lt;/h2&gt;

&lt;p&gt;To make the system usable, I built the backend in &lt;strong&gt;FastAPI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;FastAPI was a strong fit for this project because it is lightweight, fast, and works really well for AI-powered backend services.&lt;/p&gt;

&lt;p&gt;I used it to handle things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;file upload endpoints&lt;/li&gt;
&lt;li&gt;document processing&lt;/li&gt;
&lt;li&gt;query submission&lt;/li&gt;
&lt;li&gt;retrieval logic&lt;/li&gt;
&lt;li&gt;response generation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing I like about FastAPI is that it stays out of your way.&lt;br&gt;&lt;br&gt;
It lets you focus on building the actual system instead of fighting the framework.&lt;/p&gt;

&lt;p&gt;And for AI tools, that matters.&lt;/p&gt;

&lt;p&gt;Because trust me, the AI side will already provide enough “character building moments.”&lt;/p&gt;




&lt;h2&gt;
  
  
  When It Finally Clicked (The System Actually Thinking)
&lt;/h2&gt;

&lt;p&gt;This was the moment where everything came together.&lt;/p&gt;

&lt;p&gt;Not just an API responding.&lt;br&gt;&lt;br&gt;
Not just a model generating text.  &lt;/p&gt;

&lt;p&gt;But an actual system retrieving the right context and answering based on real data.&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%2Fcjrouizikd9tbukzeso3.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%2Fcjrouizikd9tbukzeso3.png" alt=" " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document:&lt;/strong&gt; Insurance policy (11 pages)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Chunks created:&lt;/strong&gt; 46&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Local LLM (Llama3 + RAG pipeline)  &lt;/p&gt;

&lt;p&gt;I uploaded a document, asked a question, and the system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;found the correct section&lt;/li&gt;
&lt;li&gt;identified the exact page&lt;/li&gt;
&lt;li&gt;returned a grounded answer&lt;/li&gt;
&lt;li&gt;included source references&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is when it stopped feeling like a project…&lt;br&gt;&lt;br&gt;
and started feeling like a real product.&lt;/p&gt;

&lt;p&gt;No guessing. No vague responses.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Here is your answer, and here is exactly where it came from.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That level of clarity is what makes RAG systems powerful in real-world use.&lt;/p&gt;

&lt;p&gt;Because businesses do not just want answers.&lt;br&gt;&lt;br&gt;
They want answers they can trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Creating the Dashboard Experience
&lt;/h2&gt;

&lt;p&gt;Once the backend was working, the next piece was the dashboard itself.&lt;/p&gt;

&lt;p&gt;I wanted the UI to feel practical and clean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;upload data&lt;/li&gt;
&lt;li&gt;ask questions&lt;/li&gt;
&lt;li&gt;view answers&lt;/li&gt;
&lt;li&gt;surface insights in a usable format&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real value of the system is not just that it can answer questions.&lt;br&gt;&lt;br&gt;
It is that it gives users a more natural interface for interacting with business information.&lt;/p&gt;

&lt;p&gt;Instead of digging through files, filtering endless tables, or guessing where the answer might live, they can just ask.&lt;/p&gt;

&lt;p&gt;That shift is huge.&lt;/p&gt;

&lt;p&gt;A good AI dashboard should reduce friction, not create a new kind of complicated.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Made This Project Interesting
&lt;/h2&gt;

&lt;p&gt;This project brought together several parts of modern AI engineering in one place:&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend API design
&lt;/h3&gt;

&lt;p&gt;I had to structure the application in a way that was modular, clean, and scalable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Document ingestion
&lt;/h3&gt;

&lt;p&gt;Getting data into the system in a usable format is always more work than it sounds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Embeddings and semantic search
&lt;/h3&gt;

&lt;p&gt;This is where the system starts becoming intelligent instead of just reactive.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM orchestration
&lt;/h3&gt;

&lt;p&gt;Prompt design, retrieval flow, and answer grounding all matter here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-world usefulness
&lt;/h3&gt;

&lt;p&gt;This was not built as a gimmick. It was built as a system that could support actual business workflows.&lt;/p&gt;

&lt;p&gt;That combination is exactly the kind of work I enjoy most.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges I Ran Into
&lt;/h2&gt;

&lt;p&gt;Like every AI project, this one had its moments.&lt;/p&gt;

&lt;p&gt;And by “moments,” I mean those fun little stretches where everything should work in theory, but reality has other plans.&lt;/p&gt;

&lt;p&gt;A few of the main challenges were:&lt;/p&gt;

&lt;h3&gt;
  
  
  Chunk quality
&lt;/h3&gt;

&lt;p&gt;If the text chunks were too small, retrieval lost meaning.&lt;br&gt;&lt;br&gt;
If they were too large, results became noisy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrieval relevance
&lt;/h3&gt;

&lt;p&gt;Not every returned chunk was equally useful, so tuning retrieval mattered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt structure
&lt;/h3&gt;

&lt;p&gt;The LLM needed enough context to answer well without getting overloaded.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keeping answers grounded
&lt;/h3&gt;

&lt;p&gt;It is one thing for an answer to sound smart.&lt;br&gt;&lt;br&gt;
It is another for it to actually be correct.&lt;/p&gt;

&lt;p&gt;That is one reason I like RAG so much.&lt;br&gt;&lt;br&gt;
It gives you a framework for making LLM outputs more trustworthy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters for Real Businesses
&lt;/h2&gt;

&lt;p&gt;A lot of companies are sitting on useful information, but they cannot access it quickly.&lt;/p&gt;

&lt;p&gt;The data exists.&lt;br&gt;&lt;br&gt;
The reports exist.&lt;br&gt;&lt;br&gt;
The documents exist.&lt;/p&gt;

&lt;p&gt;But the workflow for turning all that into insight is still too manual.&lt;/p&gt;

&lt;p&gt;A system like this helps bridge that gap.&lt;/p&gt;

&lt;p&gt;It can support teams that need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyze internal reports faster&lt;/li&gt;
&lt;li&gt;answer operational questions&lt;/li&gt;
&lt;li&gt;search through business documentation&lt;/li&gt;
&lt;li&gt;generate summaries from existing knowledge&lt;/li&gt;
&lt;li&gt;make decisions with better context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is where AI becomes valuable to me — not as a toy, but as a working layer inside a real process.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This build reminded me that strong AI systems are not just about plugging in an LLM.&lt;/p&gt;

&lt;p&gt;The real work is in the architecture.&lt;/p&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clean ingestion&lt;/li&gt;
&lt;li&gt;smart chunking&lt;/li&gt;
&lt;li&gt;solid embeddings&lt;/li&gt;
&lt;li&gt;useful retrieval&lt;/li&gt;
&lt;li&gt;grounded prompting&lt;/li&gt;
&lt;li&gt;a clean API layer&lt;/li&gt;
&lt;li&gt;a user experience that makes the system worth using&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the part I enjoy most: building systems where all the pieces actually work together.&lt;/p&gt;

&lt;p&gt;Because anybody can say “AI-powered.”&lt;/p&gt;

&lt;p&gt;I want to build things that earn the label.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building this &lt;strong&gt;RAG-powered Business Insights Dashboard&lt;/strong&gt; was one of those projects that perfectly blended software engineering and AI system design.&lt;/p&gt;

&lt;p&gt;It was technical, practical, and honestly a lot of fun to build.&lt;/p&gt;

&lt;p&gt;I got to work across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python development&lt;/li&gt;
&lt;li&gt;FastAPI architecture&lt;/li&gt;
&lt;li&gt;embeddings&lt;/li&gt;
&lt;li&gt;vector search&lt;/li&gt;
&lt;li&gt;retrieval pipelines&lt;/li&gt;
&lt;li&gt;LLM integration&lt;/li&gt;
&lt;li&gt;intelligent dashboard workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And more importantly, it solved a real problem.&lt;/p&gt;

&lt;p&gt;That is always the goal.&lt;/p&gt;

&lt;p&gt;I am not interested in building AI just to say I built AI.&lt;br&gt;&lt;br&gt;
I want to build tools that help people work smarter, move faster, and get better answers from the information they already have.&lt;/p&gt;

&lt;p&gt;And if I can do that without the dashboard looking like it was designed during a spreadsheet-induced panic attack, even better.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Retrieval-Augmented Generation (RAG)&lt;/li&gt;
&lt;li&gt;Embeddings&lt;/li&gt;
&lt;li&gt;Vector Search&lt;/li&gt;
&lt;li&gt;LLM Integration&lt;/li&gt;
&lt;li&gt;AI-Powered Business Intelligence Workflows&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Projects like this are exactly why I enjoy building AI/ML software.&lt;/p&gt;

&lt;p&gt;I like creating systems that go beyond static dashboards and basic automation — tools that can actually understand context, retrieve meaningful information, and return useful answers in real time.&lt;/p&gt;

&lt;p&gt;This is the kind of work I want to keep building more of.&lt;/p&gt;

&lt;p&gt;If you are working on AI tools, backend systems, or intelligent business applications, this space is only getting more interesting.&lt;/p&gt;

</description>
      <category>rag</category>
      <category>python</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Didn’t Quit… I Built an AI Instead 💻</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Wed, 18 Mar 2026 19:04:17 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/i-didnt-quit-i-built-an-ai-instead-59il</link>
      <guid>https://dev.to/brandi_kitchens_developer/i-didnt-quit-i-built-an-ai-instead-59il</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>I Built a Secure AI Business Insights Dashboard (With Login + AI Recommendations)</title>
      <dc:creator>Brandi</dc:creator>
      <pubDate>Tue, 17 Mar 2026 18:48:20 +0000</pubDate>
      <link>https://dev.to/brandi_kitchens_developer/i-built-a-secure-ai-business-insights-dashboard-with-login-ai-recommendations-5bo8</link>
      <guid>https://dev.to/brandi_kitchens_developer/i-built-a-secure-ai-business-insights-dashboard-with-login-ai-recommendations-5bo8</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Project Overview
&lt;/h2&gt;

&lt;p&gt;I built a &lt;strong&gt;Secure AI Business Insights Agent&lt;/strong&gt; designed to simulate a real-world internal business tool — not just a dashboard, but a system that combines authentication, analytics, and AI-generated insights.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Most dashboards show data.&lt;/p&gt;

&lt;p&gt;But businesses don’t need more charts — they need &lt;strong&gt;actionable insights&lt;/strong&gt; and &lt;strong&gt;secure access to sensitive information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This project focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turning raw data into decisions&lt;/li&gt;
&lt;li&gt;Protecting access with authentication&lt;/li&gt;
&lt;li&gt;Simulating real internal AI tools&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;✔ Secure login system (protected access)&lt;br&gt;&lt;br&gt;
✔ AI-generated business insights&lt;br&gt;&lt;br&gt;
✔ KPI tracking and forecasting&lt;br&gt;&lt;br&gt;
✔ Clean dashboard UI using Streamlit  &lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Dashboard Highlights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Revenue and order tracking
&lt;/li&gt;
&lt;li&gt;Monthly trend visualization
&lt;/li&gt;
&lt;li&gt;Regional performance breakdown
&lt;/li&gt;
&lt;li&gt;AI-style recommendations based on patterns
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;ul&gt;
&lt;li&gt;Python
&lt;/li&gt;
&lt;li&gt;Streamlit
&lt;/li&gt;
&lt;li&gt;Pandas
&lt;/li&gt;
&lt;li&gt;NumPy
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 Live Demo
&lt;/h2&gt;

&lt;p&gt;👉 Try it here:&lt;br&gt;&lt;br&gt;
&lt;a href="https://secure-ai-business-agent-d8mdjkugcoresihnnsldqn.streamlit.app" rel="noopener noreferrer"&gt;https://secure-ai-business-agent-d8mdjkugcoresihnnsldqn.streamlit.app&lt;/a&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  💻 GitHub
&lt;/h2&gt;

&lt;p&gt;👉 View the code:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/bdcreativesystems-star/secure-ai-business-agent" rel="noopener noreferrer"&gt;https://github.com/bdcreativesystems-star/secure-ai-business-agent&lt;/a&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 What’s Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Role-based access (admin vs user)
&lt;/li&gt;
&lt;li&gt;Real data integrations
&lt;/li&gt;
&lt;li&gt;Advanced ML forecasting models
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;I’m focused on building &lt;strong&gt;real-world AI tools, dashboards, and automation systems&lt;/strong&gt; that businesses can actually use — not just experiments.&lt;/p&gt;

&lt;p&gt;If you’re working on something similar or have ideas, I’d love to connect.&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%2Fupaqivj2gu67nodl6srr.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%2Fupaqivj2gu67nodl6srr.png" alt=" " width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
