<?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: Noor Ul Huda</title>
    <description>The latest articles on DEV Community by Noor Ul Huda (@noor_ulhuda_67fbcf3d4b66).</description>
    <link>https://dev.to/noor_ulhuda_67fbcf3d4b66</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%2F4157740%2F1b23fbc8-26c9-45cc-ac48-e86e840f85fd.png</url>
      <title>DEV Community: Noor Ul Huda</title>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noor_ulhuda_67fbcf3d4b66"/>
    <language>en</language>
    <item>
      <title>Orderly: An AI WhatsApp Order-Taker That Refuses to Guess</title>
      <dc:creator>Noor Ul Huda</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:07:23 +0000</pubDate>
      <link>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-588b</link>
      <guid>https://dev.to/noor_ulhuda_67fbcf3d4b66/orderly-an-ai-whatsapp-order-taker-that-refuses-to-guess-588b</guid>
      <description>&lt;h1&gt;
  
  
  Orderly: An AI WhatsApp Order-Taker That Refuses to Guess
&lt;/h1&gt;

&lt;p&gt;Small shops often receive customer orders through WhatsApp like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice, 1 litre oil, and 1 kg sugar.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But real messages can be much messier — Telugu + English, corrections, unclear quantities, or voice notes.&lt;/p&gt;

&lt;p&gt;The difficult part isn't just understanding the message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real problem is knowing whether the AI understood the complete order correctly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why I built &lt;strong&gt;Orderly&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;Orderly is an AI-assisted WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It converts messy text and voice orders into structured orders and checks them before confirmation.&lt;/p&gt;

&lt;p&gt;The core principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the order is clear and the evidence is sufficient, Orderly can mark it &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If something is unclear, missing, incomplete, or unsafe to verify, it returns &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; instead of guessing.&lt;/p&gt;

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

&lt;p&gt;🎥 &lt;a href="https://github.com/noorulhuda07/ORDERLY_DEVPOST_HACKTOBERFEST_CHALLENGE1/blob/main/ORDERLY_DEMO_VIDEO.mp4" rel="noopener noreferrer"&gt;Watch the Orderly Demo Video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows Orderly processing customer orders, validating extracted items, and handling cases where confirmation should not be automatic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Transcript
&lt;/h3&gt;

&lt;p&gt;Hi, this is Orderly, an AI-powered WhatsApp order-taker for small shops.&lt;/p&gt;

&lt;p&gt;It handles messy text and voice orders, including Telugu-English messages.&lt;/p&gt;

&lt;p&gt;The key principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Orderly checks the extracted items against the catalog and validates the customer's request.&lt;/p&gt;

&lt;p&gt;If the evidence is sufficient, the order can be &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If anything is unclear or incomplete, Orderly returns &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; instead of guessing.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Never falsely confirm an incomplete order.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for improving safe AI-powered ordering for small shops.&lt;/p&gt;

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

&lt;p&gt;🔗 &lt;a href="https://github.com/noorulhuda07/ORDERLY_DEVPOST_HACKTOBERFEST_CHALLENGE1" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Orderly is built as a small Python application with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web interface&lt;/li&gt;
&lt;li&gt;CLI&lt;/li&gt;
&lt;li&gt;Deterministic validation&lt;/li&gt;
&lt;li&gt;Catalog checks&lt;/li&gt;
&lt;li&gt;Automated safety tests&lt;/li&gt;
&lt;li&gt;Fake extractors for deterministic adversarial testing&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The pipeline is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer message → transcription → AI extraction → deterministic validation → catalog verification → confirmation/review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For voice orders, speech is transcribed before extraction.&lt;/p&gt;

&lt;p&gt;The AI produces structured order information, but the application does &lt;strong&gt;not&lt;/strong&gt; treat the AI response as proof that the extraction is complete or correct.&lt;/p&gt;

&lt;p&gt;The deterministic code checks the extracted information against the customer's message and the shop catalog.&lt;/p&gt;

&lt;p&gt;This separation is intentional.&lt;/p&gt;

&lt;p&gt;An LLM can misunderstand a message, hallucinate an item, or simply miss something.&lt;/p&gt;

&lt;p&gt;So the system is designed so that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI proposes. Code verifies. Evidence determines whether confirmation is allowed.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Safety First
&lt;/h2&gt;

&lt;p&gt;One of the biggest risks I focused on was &lt;strong&gt;customer-item omission&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, if a customer says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice and 5 litres sunflower oil”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;but the AI extracts only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“2 kg rice”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;a normal pipeline might accidentally confirm the incomplete order.&lt;/p&gt;

&lt;p&gt;Orderly is designed to treat this as a &lt;code&gt;NEEDS_REVIEW&lt;/code&gt; situation rather than assuming that the extracted list is complete.&lt;/p&gt;

&lt;p&gt;I specifically tested adversarial cases involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple products with one item omitted&lt;/li&gt;
&lt;li&gt;Three products with one or more items omitted&lt;/li&gt;
&lt;li&gt;Middle-item omission&lt;/li&gt;
&lt;li&gt;Final-item omission&lt;/li&gt;
&lt;li&gt;The same product with different sizes&lt;/li&gt;
&lt;li&gt;Corrections&lt;/li&gt;
&lt;li&gt;Mixed Telugu + English orders&lt;/li&gt;
&lt;li&gt;“And also” constructions&lt;/li&gt;
&lt;li&gt;Long messages containing unrelated text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is &lt;strong&gt;not&lt;/strong&gt; to maximize the number of &lt;code&gt;CONFIRMED&lt;/code&gt; orders.&lt;/p&gt;

&lt;p&gt;The goal is to avoid falsely confirming an incomplete order.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;This project uses open-source AI because useful AI systems should not always require a closed cloud service.&lt;/p&gt;

&lt;p&gt;Open models and open-source tools make it possible for developers to experiment, inspect the pipeline, run models locally, and build systems for specific real-world problems.&lt;/p&gt;

&lt;p&gt;For a small-shop use case, local and open tooling can also provide more control over how customer data is processed.&lt;/p&gt;

&lt;p&gt;The important lesson for me is that open AI becomes more useful when it is combined with traditional deterministic software rather than being trusted blindly.&lt;/p&gt;

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

&lt;p&gt;I used AI-assisted development to inspect the project, improve the implementation, create adversarial safety tests, investigate edge cases, and verify the application.&lt;/p&gt;

&lt;p&gt;The development process focused heavily on finding cases where an AI extraction could appear correct while still being incomplete.&lt;/p&gt;

&lt;p&gt;That led to a stronger design principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never confuse a successful AI response with proof that the customer's complete request was understood.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;The automated test suite contains &lt;strong&gt;156 tests: 155 passed, 0 failed, and 1 expected failure (xfail).&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%2Ftzr84oemjtno5mtxd40t.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%2Ftzr84oemjtno5mtxd40t.png" alt="Orderly automated test suite showing 156 tests collected, with 155 tests passed, 0 failed, and 1 expected failure (xfail). The terminal output demonstrates the project's deterministic safety, validation, and adversarial testing results." width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The expected failure is intentional. It documents a known limitation involving an unknown product such as &lt;code&gt;bellam&lt;/code&gt; when the extractor completely omits that product and the customer message does not provide enough recognizable evidence for the completeness checker to detect the omission.&lt;/p&gt;

&lt;p&gt;The limitation is documented rather than hidden.&lt;/p&gt;

&lt;p&gt;The tests are primarily &lt;strong&gt;deterministic safety and validation tests&lt;/strong&gt;. They use controlled/fake extraction behavior to test whether the application fails safely when extraction is incomplete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-Gemma validation was not performed in the current environment&lt;/strong&gt;, so these test results should not be interpreted as evidence of real-model extraction quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Limitations
&lt;/h2&gt;

&lt;p&gt;Orderly is a prototype, not a production-ready autonomous ordering system.&lt;/p&gt;

&lt;p&gt;Completeness is difficult to guarantee perfectly for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completely unknown products&lt;/li&gt;
&lt;li&gt;Ambiguous language&lt;/li&gt;
&lt;li&gt;Speech-recognition errors&lt;/li&gt;
&lt;li&gt;Unusual phrasing&lt;/li&gt;
&lt;li&gt;Product names appearing in unrelated text&lt;/li&gt;
&lt;li&gt;Corrections that are difficult to resolve&lt;/li&gt;
&lt;li&gt;Messages where the customer's intent cannot be reliably identified&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A particularly important limitation is that a completeness checker cannot mathematically prove that an LLM extracted every possible customer intent from arbitrary natural language.&lt;/p&gt;

&lt;p&gt;Therefore, the safest behavior is to request human confirmation whenever sufficient evidence is unavailable.&lt;/p&gt;

&lt;p&gt;Because of this documented limitation, Orderly should &lt;strong&gt;not&lt;/strong&gt; be considered production-safe for unattended autonomous ordering.&lt;/p&gt;

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

&lt;p&gt;Orderly started as an AI order-taking idea, but the more important lesson became &lt;strong&gt;verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI is good at understanding messy human language.&lt;/p&gt;

&lt;p&gt;Code is better at enforcing deterministic rules.&lt;/p&gt;

&lt;p&gt;Putting the two together creates a safer system than relying on either one alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI extracts. Code verifies. Catalog decides. Human confirms when evidence is insufficient.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most important design decision was not making the AI say &lt;code&gt;CONFIRMED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It was making sure that &lt;strong&gt;when the system cannot establish that the customer's complete request is represented, it refuses to guess.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try Orderly, explore the code, and share your feedback or ideas for making AI-powered ordering safer for small shops.&lt;/p&gt;




&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #hf26challenge #opensource #ai #python
&lt;/h1&gt;

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