Inspiration

A supplier moves delivery from November 18 to November 20. The storeroom runs out on November 19. The buyer needs a replacement fast, and a similar product name can hide a different part number or pack size. We wanted software that checks the quotes and leaves the payment to a person.

What it does

RespiFlow is an agent that reorders a part before stock runs out. In the demo, a Qt simulator shows a filter (order number 6740830, packs of 22) running low. The buyer clicks Let the agent reorder, and the agent:

  1. Works out the stockout date from inventory.
  2. Reads the supplier messages. A model extracts the part, quantity, price and delivery date, and the app rejects any field not in the supplier's own text.
  3. Spots that North Supply's cheaper quote arrives too late and West Supply's has no confirmed date.
  4. Asks West Supply to confirm. The model writes the message, and the reply is simulated.
  5. Checks part, pack size, budget and date with fixed rules, then proposes one quote.

The agent cannot pay. The buyer reviews the quote and its source sentences, then approves €1.00 in PayPal Sandbox. If a supplier offers the wrong part or pack size, the agent stops and shows why.

Demo only. Inventory, supplier offers and replies are simulated. Payments use PayPal Sandbox test funds. Not affiliated with Dräger or Pall.

How we built it

Python, SQLite and a Qt simulator (C++ and QML). Meta Muse Spark reads quotes, picks the agent's next step and drafts the supplier message. Code limits what it may do: no prices or links in messages, and rules take over if the model fails. PayPal Orders v2 creates the order, the server verifies the capture, and signed webhooks recover an approved order. Render hosts the app.

Challenges we ran into

Catalog PDF columns broke across lines, so we checked each demo product against the original page. Supplier dates can be tentative, so we only accept a date after the words "confirmed delivery". On Render, Muse Spark returned HTTP 404, so the hosted app shows saved results and labels them. The live model runs locally and in the video.

Accomplishments that we're proud of

RespiFlow matched all six expected decisions in our offline evaluation and blocked checkout five times. A price-only baseline got none right. 37 Python tests and 2 Qt tests pass.

What we learned

Asking for a missing fact beats rejecting a quote. Limiting what the model may do made the agent easier to trust.

What's next for RespiFlow

Sit with a storeroom buyer, compare manual and RespiFlow reviews, then connect a real supplier inbox.

Built With

Share this project:

Updates

Submission history