<?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: sarvadnya sonje</title>
    <description>The latest articles on DEV Community by sarvadnya sonje (@sarvadnya_sonje_f5007623b).</description>
    <link>https://dev.to/sarvadnya_sonje_f5007623b</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%2F4177161%2F35ba313d-4889-4246-80da-b0c26411f6b1.png</url>
      <title>DEV Community: sarvadnya sonje</title>
      <link>https://dev.to/sarvadnya_sonje_f5007623b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarvadnya_sonje_f5007623b"/>
    <language>en</language>
    <item>
      <title>MenuGlot: Offline AI Menu Maker for Local Restaurants</title>
      <dc:creator>sarvadnya sonje</dc:creator>
      <pubDate>Sat, 17 Oct 2026 18:56:52 +0000</pubDate>
      <link>https://dev.to/sarvadnya_sonje_f5007623b/menuglot-offline-ai-menu-maker-for-local-restaurants-gn1</link>
      <guid>https://dev.to/sarvadnya_sonje_f5007623b/menuglot-offline-ai-menu-maker-for-local-restaurants-gn1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;MenuGlot turns a photo of a restaurant menu into a clean, print-ready menu with English and Marathi names, half/full prices, short descriptions and a QR code.&lt;/p&gt;

&lt;p&gt;Small local hotels often have menus in only one language, so new customers and tourists can't read them. MenuGlot fixes that in minutes. It runs fully on a laptop using Qwen2.5-VL (3B) through Ollama, so there is no API cost and the hotel's data never leaves the machine.&lt;/p&gt;

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

&lt;p&gt;I tested it on a real local hotel's menu (Veg Rice section, 9 dishes). The model read the photo and produced English and Marathi names, half/full prices, descriptions and a QR code, all offline on my laptop.&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%2Ft5z4wdn48as7omc1iuww.jpeg" 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%2Ft5z4wdn48as7omc1iuww.jpeg" alt="Original menu photo" width="800" height="579"&gt;&lt;/a&gt;&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%2Fis2l628nxvaiab5xxr6r.jpeg" 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%2Fis2l628nxvaiab5xxr6r.jpeg" alt="MenuGlot result" width="800" height="1043"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sarvadnyasonje" rel="noopener noreferrer"&gt;
        sarvadnyasonje
      &lt;/a&gt; / &lt;a href="https://github.com/sarvadnyasonje/menuglot" rel="noopener noreferrer"&gt;
        menuglot
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;# MenuGlot&lt;/p&gt;
&lt;p&gt;Offline AI menu maker for local restaurants. Upload a menu photo and get a print-ready menu with English and Marathi names, half/full prices and a QR code.&lt;/p&gt;
&lt;p&gt;## Setup&lt;/p&gt;
&lt;p&gt;1. Install Ollama and run: ollama pull qwen2.5vl:3b&lt;/p&gt;
&lt;p&gt;2. pip install -r requirements.txt&lt;/p&gt;
&lt;p&gt;3. py -m streamlit run app.py&lt;/p&gt;
&lt;p&gt;## Why open-source?&lt;/p&gt;
&lt;p&gt;- Runs fully offline on a laptop, no API cost&lt;/p&gt;
&lt;p&gt;- Menu and prices never leave the machine&lt;/p&gt;
&lt;p&gt;- Per-hotel glossary.json fixes dish names the model gets wrong&lt;/p&gt;
&lt;p&gt;- Swapping to a bigger model is a one-line change&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sarvadnyasonje/menuglot" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


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

&lt;ul&gt;
&lt;li&gt;Python + Streamlit for the UI&lt;/li&gt;
&lt;li&gt;Ollama running Qwen2.5-VL 3B locally. It reads the menu photo and returns JSON (dish names, half/full prices, veg/non-veg, short descriptions)&lt;/li&gt;
&lt;li&gt;A per-hotel glossary.json overrides the Marathi names, because the 3B model misread "Veg" as "क्षेत्र" in Devanagari&lt;/li&gt;
&lt;li&gt;The menu is generated as HTML with a QR code (qrcode library), then printed to PDF from the browser&lt;/li&gt;
&lt;li&gt;Big menus overwhelm a 3B model, so I process one section at a time (9 dishes)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runs offline, zero API cost.&lt;/strong&gt; After the one-time model download, nothing needs the internet. That is why charging a small hotel ₹500 per menu is realistic. A paid API would eat most of that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy.&lt;/strong&gt; The hotel's menu and prices never leave the laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tunable for a niche.&lt;/strong&gt; The 3B model misread "Veg" in Devanagari. A per-hotel glossary fixed it. With a closed API I couldn't change the model, only work around it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; Swapping to a bigger model (like 7B) is a one-line change in app.py.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I built this step by step with an AI assistant guiding me through setup, debugging and the final code. No DevRelay session saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;I have not shown MenuGlot to the hotel owner yet, so there is no paying user so far. I tested it on a real hotel's menu (Veg Rice section, 9 dishes) and kept the PDF for myself.&lt;/p&gt;

&lt;p&gt;Next step: show the PDF to the hotel, ask if they would pay ₹500 for the full menu in English and Marathi, and note what they want changed. I will update this post with their reply.&lt;/p&gt;

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