<?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>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>
