<?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: vaishnavi Banthe</title>
    <description>The latest articles on DEV Community by vaishnavi Banthe (@vaishnavi_banthe_f5a8b9b4).</description>
    <link>https://dev.to/vaishnavi_banthe_f5a8b9b4</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4165367%2F55cdaee8-28cc-4ed4-a103-c4c4e8611304.png</url>
      <title>DEV Community: vaishnavi Banthe</title>
      <link>https://dev.to/vaishnavi_banthe_f5a8b9b4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vaishnavi_banthe_f5a8b9b4"/>
    <language>en</language>
    <item>
      <title>PhantomShell AI</title>
      <dc:creator>vaishnavi Banthe</dc:creator>
      <pubDate>Tue, 27 Oct 2026 11:09:40 +0000</pubDate>
      <link>https://dev.to/vaishnavi_banthe_f5a8b9b4/phantomshell-ai-2mm8</link>
      <guid>https://dev.to/vaishnavi_banthe_f5a8b9b4/phantomshell-ai-2mm8</guid>
      <description>&lt;p&gt;title: "PhantomShell AI: A Ghost in the Terminal 👻"&lt;br&gt;
published: false&lt;br&gt;
tags: devchallenge, hf26challenge&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;👻 &lt;strong&gt;PhantomShell AI — Ghost in the Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PhantomShell AI is a spooky terminal assistant designed to help beginners understand Linux commands and recognize potentially dangerous operations.&lt;/p&gt;

&lt;p&gt;Inspired by the Ghost in the Machine theme, I wanted to make learning terminal safety more engaging while helping users understand what commands might do before they run them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;💻 Beginner-friendly explanations of terminal commands.&lt;/li&gt;
&lt;li&gt;🛡️ Risk classification for potentially dangerous operations.&lt;/li&gt;
&lt;li&gt;👻 A spooky terminal-inspired interface.&lt;/li&gt;
&lt;li&gt;📜 Local interaction history using SQLite.&lt;/li&gt;
&lt;li&gt;🌙 Lightweight design intended to work without downloading large AI models.&lt;/li&gt;
&lt;li&gt;🧪 Automated tests for core functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application is designed to analyze submitted commands rather than execute them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/banthevaishnavi/PhantomShell_AI" rel="noopener noreferrer"&gt;https://github.com/banthevaishnavi/PhantomShell_AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvan28garsr918cgz6fc9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvan28garsr918cgz6fc9.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots:&lt;/strong&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq6n9vqmwya603jem2joc.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq6n9vqmwya603jem2joc.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Explore the source code:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/banthevaishnavi/PhantomShell_AI" rel="noopener noreferrer"&gt;https://github.com/banthevaishnavi/PhantomShell_AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project uses Python and Streamlit for the interface, SQLite for local history, and a separate safety-analysis module.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built PhantomShell AI with a focus on simplicity, limited hardware resources, and beginner-friendly security education.&lt;/p&gt;

&lt;p&gt;The project uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; for application logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for the interactive interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; for local storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pytest&lt;/strong&gt; for automated testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; for source control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One important design decision was to avoid requiring users to download large model weights onto their computers.&lt;/p&gt;

&lt;p&gt;The current implementation uses deterministic explanations and command-safety rules when no inference backend is configured. These rules operate locally and do not require an external AI service.&lt;/p&gt;

&lt;p&gt;A genuine open-weight model inference integration remains necessary for the project to fully meet this challenge's central AI requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation gives developers the freedom to inspect, modify, and extend the tools they build with.&lt;/p&gt;

&lt;p&gt;For PhantomShell AI, a lightweight local architecture means that command analysis and history can remain on the user's machine without requiring a cloud service.&lt;/p&gt;

&lt;p&gt;It also allows the project to evolve: a compatible open-weight model can be integrated without redesigning the entire application.&lt;/p&gt;

&lt;p&gt;The goal is to keep the tool accessible to developers with limited hardware resources while maintaining control over how commands are analyzed and how user data is stored.&lt;/p&gt;

&lt;p&gt;The current deterministic implementation works without an AI service, but it does not replace the need for genuine open-weight inference to satisfy the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It 👻
&lt;/h2&gt;

&lt;p&gt;A terminal can feel intimidating when you're learning Linux. A single unfamiliar command can look like a spell, and some commands can have serious consequences.&lt;/p&gt;

&lt;p&gt;PhantomShell AI turns that experience into a small encounter with a helpful ghost: one that explains commands, highlights risks, and encourages users to understand before executing.&lt;/p&gt;

&lt;p&gt;The idea is simple: make terminal learning less intimidating while encouraging safer computing habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overall challenge: submission intended for consideration.&lt;/li&gt;
&lt;li&gt;Partner categories: none claimed at this stage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;My next step is to integrate and test a genuine open-weight inference backend that fits the project's lightweight design.&lt;/p&gt;

&lt;p&gt;I'd love to hear suggestions for improving command-risk detection, beginner-friendly explanations, and privacy-conscious AI integration.&lt;/p&gt;

&lt;p&gt;Thanks for checking out PhantomShell AI! 👻&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hacktoberfest</category>
      <category>hf26challenge</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>Lazy Ticket AI</title>
      <dc:creator>vaishnavi Banthe</dc:creator>
      <pubDate>Wed, 21 Oct 2026 11:34:29 +0000</pubDate>
      <link>https://dev.to/vaishnavi_banthe_f5a8b9b4/lazy-ticket-ai-39pd</link>
      <guid>https://dev.to/vaishnavi_banthe_f5a8b9b4/lazy-ticket-ai-39pd</guid>
      <description>&lt;p&gt;title: "LazyTicket AI: Automate Support Tickets with Open-Weight AI"&lt;br&gt;
published: false&lt;br&gt;
tags: devchallenge, hf26challenge, opensource, python&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady].&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;🎫 &lt;strong&gt;LazyTicket AI — Stop managing tickets. Let AI do the busywork.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Support teams spend valuable time reading tickets, identifying issues, assigning priorities, summarizing complaints, and drafting responses.&lt;/p&gt;

&lt;p&gt;I built LazyTicket AI to automate these repetitive tasks using open-weight AI. Instead of processing tickets manually, users can process a batch with a single action.&lt;/p&gt;

&lt;p&gt;Key features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI classification:&lt;/strong&gt; Categorizes tickets into bugs, billing, account issues, technical support, and general inquiries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart prioritization:&lt;/strong&gt; Assigns priority levels based on ticket content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentiment analysis:&lt;/strong&gt; Identifies customer frustration and emotional tone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic summaries:&lt;/strong&gt; Converts lengthy descriptions into concise summaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response drafting:&lt;/strong&gt; Generates suggested replies for human review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate detection:&lt;/strong&gt; Identifies potentially duplicated tickets using text similarity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart routing:&lt;/strong&gt; Recommends the appropriate support team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard and CSV support:&lt;/strong&gt; Tracks processing results and supports bulk ticket import and export.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple: spend less time organizing tickets and more time solving problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🎬 &lt;strong&gt;Project demonstration&lt;/strong&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnm9ikf5eyw8sm7vuleoz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnm9ikf5eyw8sm7vuleoz.png" alt=" " width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demonstration will show the ticket dashboard, batch processing, AI-generated results, and exported ticket data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/banthevaishnavi/lazyticketai" rel="noopener noreferrer"&gt;https://github.com/banthevaishnavi/lazyticketai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with Python and Streamlit, with SQLite for persistent storage and an open-weight AI model for ticket analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk2fycey8jih6lg93l3oh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk2fycey8jih6lg93l3oh.png" alt=" " width="800" height="374"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkfjn5mqhhdvplhlq51j7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkfjn5mqhhdvplhlq51j7.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built LazyTicket AI using Python, Streamlit, SQLite, Pandas, and scikit-learn.&lt;/p&gt;

&lt;p&gt;The AI component uses &lt;strong&gt;Gemma, an open-weight model&lt;/strong&gt;, through a configurable inference provider. The application sends ticket descriptions for analysis and uses the returned results to classify tickets, determine priority, analyze sentiment, generate summaries, recommend support teams, and draft responses.&lt;/p&gt;

&lt;p&gt;SQLite stores ticket information and processing results. TF-IDF and cosine similarity help identify potentially duplicated tickets.&lt;/p&gt;

&lt;p&gt;The workflow is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Import or select support tickets.&lt;/li&gt;
&lt;li&gt;Run the automation.&lt;/li&gt;
&lt;li&gt;Review the generated classifications, summaries, priorities, and responses.&lt;/li&gt;
&lt;li&gt;Edit results when necessary.&lt;/li&gt;
&lt;li&gt;Export the processed tickets.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The application is designed to keep humans in control of important decisions. Generated responses remain drafts rather than being sent automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-weight AI gives developers more flexibility in how they build and operate AI-powered applications.&lt;/p&gt;

&lt;p&gt;For LazyTicket AI, it provides several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model flexibility:&lt;/strong&gt; The AI component can be adapted to compatible open-weight models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduced API dependence:&lt;/strong&gt; The project is not inherently tied to a single proprietary model provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost awareness:&lt;/strong&gt; Open-weight models can reduce per-request inference costs, depending on how they are hosted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greater control:&lt;/strong&gt; Local inference can help keep ticket data on the user's machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning and experimentation:&lt;/strong&gt; Developers can modify prompts and experiment with different models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My implementation uses a configurable inference provider, so privacy and cost benefits depend on the selected deployment. Hosted inference sends ticket data to the selected provider, whereas local inference can keep processing on the user's machine.&lt;/p&gt;

&lt;p&gt;Open innovation makes it easier to experiment, adapt, and build practical automation without locking the entire application to one closed AI ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;Optional: Add a DevRelay agent session here if available.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Imagine manually processing 20 support tickets. Each one requires reading the description, identifying the issue, deciding its urgency, summarizing it, and preparing a response.&lt;/p&gt;

&lt;p&gt;LazyTicket AI brings these steps into one batch-processing workflow.&lt;/p&gt;

&lt;p&gt;Instead of repeating the same administrative tasks for every ticket, a support worker can review AI-generated results together and focus on cases that need human attention.&lt;/p&gt;

&lt;p&gt;The actual time saved depends on ticket complexity, model latency, and the amount of review required. Performance claims should be based on measured results rather than unverified estimates.&lt;/p&gt;




&lt;p&gt;Built with Python, Streamlit, SQLite, and open-weight AI.&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>RFQFlow AI: Automating RFQ Email Processing with Python and Open-Weight AI</title>
      <dc:creator>vaishnavi Banthe</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:38:05 +0000</pubDate>
      <link>https://dev.to/vaishnavi_banthe_f5a8b9b4/rfqflow-ai-automating-rfq-email-processing-with-python-and-open-weight-ai-13kl</link>
      <guid>https://dev.to/vaishnavi_banthe_f5a8b9b4/rfqflow-ai-automating-rfq-email-processing-with-python-and-open-weight-ai-13kl</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  RFQFlow AI: Automating RFQ Email Processing
&lt;/h2&gt;

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

&lt;p&gt;Businesses receive Request for Quotation (RFQ) emails containing customer details, product specifications, quantities, currencies, and delivery dates.&lt;/p&gt;

&lt;p&gt;Manually extracting this information, validating it, detecting duplicates, and transferring it into an ERP system can be repetitive and time-consuming.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;RFQFlow AI&lt;/strong&gt;, a lightweight application that demonstrates how this workflow can be automated.&lt;/p&gt;

&lt;p&gt;The application processes synthetic RFQ emails, extracts structured information, validates fields, detects duplicates, stores records in SQLite, and routes eligible records to a mock ERP service.&lt;/p&gt;

&lt;p&gt;Incomplete records are flagged for human review instead of being silently accepted.&lt;/p&gt;

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

&lt;p&gt;🚀 &lt;strong&gt;Try the application:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://banthevaishnavi-rfqflow-ai-app-rp7isz.streamlit.app/" rel="noopener noreferrer"&gt;https://banthevaishnavi-rfqflow-ai-app-rp7isz.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Repository
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/banthevaishnavi/rfqflow-ai" rel="noopener noreferrer"&gt;https://github.com/banthevaishnavi/rfqflow-ai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. RFQFlow AI Dashboard
&lt;/h3&gt;

&lt;p&gt;The dashboard provides an overview of processed RFQs, including validated records, records requiring review, duplicates, and ERP submission statuses.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcpe4tdk1r784a6izkh5b.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcpe4tdk1r784a6izkh5b.png" alt="RFQFlow AI dashboard showing RFQ processing statistics, validation statuses, and records requiring review" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Human Review and Mock ERP
&lt;/h3&gt;

&lt;p&gt;Incomplete RFQs can be reviewed by a human. Eligible records can be submitted to the mock ERP service, which returns a simulated success response.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzpgrmxv9qqkpoj1g22i5.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzpgrmxv9qqkpoj1g22i5.png" alt="Human review form showing RFQ validation details and a successful mock ERP submission response" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. RFQ Validation and Duplicate Detection
&lt;/h3&gt;

&lt;p&gt;The application allows users to filter records by status and inspect duplicate RFQs.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpc637c0lz07v501kgpo.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpc637c0lz07v501kgpo.png" alt="RFQFlow AI dashboard filtered to display duplicate RFQ records and their processing statuses" width="799" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The project uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; for processing and business logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for the interactive dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; for local database storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; for the mock ERP service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pytest&lt;/strong&gt; for automated testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama and Gemma&lt;/strong&gt; for optional local open-weight model integration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The default extraction mode uses deterministic rules. An optional integration can send email text to a locally hosted model through Ollama.&lt;/p&gt;

&lt;p&gt;Regardless of the extraction method, the application validates the resulting fields and flags missing information for review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation gives developers greater flexibility in how AI applications are built and deployed.&lt;/p&gt;

&lt;p&gt;For RFQ processing, locally hosted open-weight models offer several potential benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; A properly configured local inference setup can keep email contents on infrastructure controlled by the business rather than sending them to an external model API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost control:&lt;/strong&gt; Businesses can evaluate local inference instead of relying entirely on paid AI APIs. Actual costs depend on hardware and operational requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; Developers can experiment with different models and adapt the extraction workflow to different email formats, subject to each model's license.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human oversight:&lt;/strong&gt; Commercial workflows require more than extracting text. Validation, duplicate detection, and human review help prevent incomplete information from being treated as reliable business data.&lt;/p&gt;

&lt;p&gt;This project demonstrates the surrounding workflow and provides an optional integration path for local open-weight inference. The default extraction mode is deterministic; the screenshots do not claim that a language model generated the displayed results.&lt;/p&gt;

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

&lt;p&gt;Building RFQFlow AI helped me explore how email processing, structured data extraction, validation, database persistence, human review, and ERP integration can work together.&lt;/p&gt;

&lt;p&gt;It also reinforced the importance of handling missing information and duplicates before allowing records to proceed to the next stage.&lt;/p&gt;

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

&lt;p&gt;Potential improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connecting Outlook through Microsoft Graph with appropriate authorization.&lt;/li&gt;
&lt;li&gt;Evaluating extraction quality using a locally hosted open-weight model.&lt;/li&gt;
&lt;li&gt;Adding authentication and audit logging.&lt;/li&gt;
&lt;li&gt;Integrating with a test ERP environment.&lt;/li&gt;
&lt;li&gt;Improving error handling and production readiness.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are future improvements and are not part of the current demo.&lt;/p&gt;

&lt;p&gt;Thanks for checking out RFQFlow AI!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>ai</category>
      <category>python</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
