تصور کنید صاحب یک مغازه کوچک در محلهای شلوغ در شهر پونه هند، حالا میتواند یک پیام بههمریخته در واتساپ را در کمتر از یک ثانیه به یک صورتحساب حرفهای تبدیل کند. این اتفاق با Parchi ممکن شده است؛ برنامهای متنباز که برای چالش «Side Hustle» در اکتوبرفست ۲۰۲۶ ساخته شده و از یک نسخه محلی Gemma 4 برای درک زبانهای ترکیبی مثل «هینگلیش» (ترکیب هندی و انگلیسی)، ماراتی و هندی استفاده میکند، بدون آنکه حتی یک بایت داده به فضای ابری ارسال شود.
خردهفروشیهای کوچک در هند که به آنها «کیرانا» (Kirana) میگویند، معمولاً برای پردازش سفارشات واتساپ به کاغذ و ماشینحساب متکی هستند. یک پیام معمولی ممکن است اینطور باشد: «داداش ۲ کیلو آرد، ۱ کره کوچک آمول، ۶ تا تخممرغ، یک مگی و پنیر هم بیار». فروشنده باید این متن را بخواند، روی کاغذ یادداشت کند (که به آن parchi میگویند)، قیمتها را پیدا کند، با ماشینحساب جمع بزند و در نهایت یک شناسه پرداخت UPI بفرستد. طبق گزارش توسعهدهندگان، این فرآیند بهشدت در معرض خطای انسانی است و هر اشتباه کوچک در مقدار یا قیمت، منجر به ضرر مالی یا نارضایتی مشتری میشود. Parchi با جایگزینی این چرخه دستی با یک خط لوله خودکار که روی لپتاپ خودِ مغازه اجرا میشود، به عنوان یک مداخله کاربردی وارد عمل شده است.
همانطور که در تحلیلهای قبلی ما دربارهی مدلهای زبانی کوچک اشاره کردیم، اجرای مدل روی سختافزار محلی، کلید دسترسی کسبوکارهای کوچک به هوش مصنوعی است. این رویکرد با تلاشهای مشابه برای بومیسازی هوش مصنوعی در پاکستان همسو است که نشان میدهد مدلهای ارزانقیمت میتوانند در درک زمینههای محلی با غولهای فناوری رقابت کنند.
بر اساس مستندات پروژه, Parchi از مدل gemma4:e4b از طریق Ollama (اولاما) — ابزاری که اجرای مدلهای هوش مصنوعی روی سیستم شخصی ساده میکند — برای انجام کارهای سنگین درک زبان استفاده میکند. این سیستم یک قانون سختگیرانه دارد: مدل متن را میخواند، اما کدهای سنتی ریاضیات را انجام میدهند. این جداسازی تضمین میکند که هوش مصنوعی هرگز قیمتها را نمیبیند و جمع کل را حساب نمیکند تا از توهم (Hallucination) — یعنی وقتی مدل با اطمینان چیزی میگوید که اصلاً وجود ندارد، شبیه دوستی که خاطرهای را اشتباه تعریف میکند — در دادههای مالی جلوگیری شود.
جزئیات فنی این خط لوله عبارت است از:
- استخراج ساختاریافته: مدل با استفاده از خروجیهای ساختاریافته Ollama و یک طرح JSON، پنج فیلد مشخص شامل
{raw, item, qty, unit, size}(متن خام، کالا، مقدار، واحد و اندازه) را برای هر خط استخراج میکند. این دقت در استخراج دادهها یادآور پیشرفتهای اخیر در پر کردن شکافهای OCR برای زبانهای محلی است که دقت استخراج اطلاعات از اسناد پیچیده را افزایش داده است. - انعطافپذیری زبانی: پرامپتها بهگونهای تنظیم شدهاند که کلمات محاورهای اعداد مثل 'dedh' (۱.۵)، 'aadha/अर्धा' (۰.۵)، 'paav kilo' (۰.۲۵ کیلوگرم) و 'darjan' (۱۲ عدد) و همچنین توصیفات اندازه مثل 'chhota/bada/लहान/मोठा' (کوچک/بزرگ) را تشخیص دهند.
- اجرای محلی: این سیستم روی یک لپتاپ با گرافیک RTX 5060 اجرا میشود و میانگین زمان پردازش هر سفارش را به ۰.۶ تا ۰.۷ ثانیه رسانده است. برای اطمینان از سرعت اولین سفارش، صفحه برنامه هنگام باز شدن، مدل را «گرم» (Warm up) میکند.
- مدیریت خطا: برای دقت بیشتر، قابلیت تفکر (Thinking) مدل خاموش و دمای (Temperature) آن روی صفر تنظیم شده است. اگر خروجی JSON غیرقابل استفاده باشد، سیستم به جای حدس زدن، یک بار تلاش مجدد میکند و سپس به فروشنده اطلاع میدهد.

پس از استخراج، کالاها به یک تطبیقدهنده پایتونی فرستاده میشوند تا با لیست قیمتهای خصوصی مغازه مقایسه شوند. سیستم ابتدا از نامهای مستعار دقیق (مثلاً تبدیل 'ande' به 'Eggs'، 'kanda' به 'Onion' و 'दूध' به 'Milk') استفاده میکند و سپس کتابخانه rapidfuzz را برای تطبیق تقریبی به کار میگیرد.
برای جلوگیری از خطا، Parchi از یک سیستم اعتبارسنجی رنگی استفاده میکند:
- سبز: نشاندهنده تطبیق کامل و بدون نقص.
- زرد: سیگنالی برای نیاز به بررسی انسانی؛ این حالت زمانی رخ میدهد که سیستم نیاز به شفافسازی داشته باشد (مثلاً «کدام اندازه از مگی؟») یا وقتی مقادیر سفارش بستههای کامل نباشند. برای مثال، سفارش «یک چهارم کیلو زیره» (۲۵۰ گرم) در حالی که در بستههای ۱۰۰ گرمی فروخته میشود، دو گزینه تککلیکی را فعال میکند: ۲ بسته ۱۰۰ گرمی یا ۳ بسته ۱۰۰ گرمی.
- قرمز: کالاهایی که موجود نیستند یا در لیست قیمتها تعریف نشدهاند.
اگر فروشنده اشتباهی را با استفاده از انتخابگر قابل جستجو اصلاح کند، سیستم آن را به خاطر میسپارد. برای مثال، وقتی «۲ لیمو» یک بار اصلاح شود، هم کلمه مشتری و هم خوانش مدل به عنوان «کلمات مشتری» برای آن محصول در لیست قیمتها ذخیره میشود. این مکانیسم اجازه میدهد سیستم بدون نیاز به تنظیم دقیق (Fine-tuning) — مثل وقتی به یک پزشک عمومی، تخصص پوست میدهیم تا روی یک حوزه دقیق شود — یاد بگیرد.
دقت مالی با استفاده از نوع داده Decimal برای تمام محاسبات پولی تضمین شده است. قیمتها منحصراً از لیست قیمتها خوانده میشوند و API هر قیمتی که مشتری در درخواست خود فرستاده باشد را نادیده میگیرد. جمع کل به نزدیکترین روپیه گرد میشود و این مقدار گردشده بهطور واضح در رسید بستهبندی و پاسخ واتساپ نمایش داده میشود.
این برنامه یک کد QR استاندارد UPI را با استفاده از پروتکل upi://pay?pa=…&am=… و کتابخانه qrcode تولید میکند. این قابلیت اجازه میدهد مبالغ دقیق پرداخت شوند بدون آنکه نیاز به درگاه پرداخت شخص ثالث باشد یا کارمزدی برای تراکنش پرداخت شود.

حریم خصوصی در معماری این برنامه یک ستون اصلی است. چون لیست مشتریان — شامل نامها، شماره تلفنها و عادتهای خرید — روی دستگاه محلی میماند، مغازه از ریسکهای حریم خصوصی مرتبط با APIهای ابری در امان است. همچنین استفاده از FastAPI، SQLite و یک صفحه HTML ساده بدون فونتهای اینترنتی یا CDNها، اجازه میدهد کل سیستم پس از دانلود مدل، کاملاً آفلاین کار کند.
در یک تست عملی با استفاده از scripts/eval.py روی ۲۰ سفارش شامل ۳۴ ردیف کالا به زبانهای هینگلیش، ماراتی، هندی و انگلیسی، سیستم روی لپتاپ RTX 5060 به دقت ۱۰۰٪ (۳۴ ردیف از ۳۴ ردیف درست) رسید. توسعهدهنده اشاره کرد که سیستم بهدرستی پیامهای غیرمرتبط با سفارش، مانند «ممنون، پول را فرستادم»، را نادیده میگیرد.
برای پایداری، ۴۱ تست واحد (Unit Test) روی بخشهای مختلف از جمله تطبیقدهنده، ریاضیات صورتحساب، اعتبارسنجی لیست قیمت و UPI، تجزیهکننده خروجی واتساپ و API اجرا شده است. یکی از این تستها بهطور خاص جلوی خطاهای تطبیق تقریبی را میگیرد؛ مثلاً قبلاً «۱ کیلو باقلوا» با «روغن ۱ لیتری Fortune» تطبیق مییافت چون هر دو عبارت «1 l» داشتند، اما اکنون با حذف کلمات مربوط به مقدار در هنگام تطبیق، این باگ رفع شده است.
از نظر اقتصادی، استفاده از APIهای بسته برای یک مغازه کیرانا ناپایدار است. حاشیه سود این مغازهها بسیار کم است و پرداخت هزینه برای هر فراخوانی API در دهها سفارش کوچک روزانه، سود آنها را میبلعد. اما در حالت محلی، خواندن یک سفارش پس از دانلود اولیه مدل، هیچ هزینهای ندارد. پرداخت یک هزینه ماهانه کوچک (مثلاً ۱۹۹ روپیه) بسیار کمتر از هزینه یک صورتحساب اشتباه در هفته است.
این پیادهسازی ثابت میکند که مدلهای وزنهای باز (Open Weights) — یعنی مدلهایی که «دستور پخت» آنها علناً منتشر شده و نه فقط غذای آماده — میتوانند مشکلات کسبوکارهای فوقمحلی را موثرتر از مدلهای عظیم ابری حل کنند. قابلیت تعویض مدلها با یک دستور ساده ollama pull (با استفاده از تنظیمات PARCHI_MODEL) تضمین میکند که مغازهدار هرگز به اکوسیستم یک فروشنده خاص وابسته نماند.
اگرچه در حال حاضر محدودیتهایی مثل نبود فاکتورهای مالیاتی (GST) و رابط کاربری متنی وجود دارد، اما مسیر آینده روشن است. از آنجا که Gemma 4 ورودی صوتی را هم میپذیرد، گام بعدی ادغام پردازش یادداشتهای صوتی است تا فروشندگان بتوانند مستقیماً از روی پیامهای صوتی مشتریان، صورتحساب صادر کنند.
گام بعدی شما
- اگر صاحب کسبوکار کوچک هستید، بررسی کنید که آیا بخشی از فرآیند ثبت سفارشات شما هنوز دستی است و میتواند با یک مدل محلی جایگزین شود.
- برای توسعهدهندگان: ابزار Ollama را نصب کنید و مدلهای کوچک (SLM) را برای کارهای استخراج داده (Extraction) در محیطهای آفلاین تست کنید.
- مطالعه مستندات Parchi در گیتهاب برای درک نحوه جداسازی لایه استنتاج AI از لایه محاسبات ریاضی.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell و بهینهسازی استنتاج محلی مراجعه کنید.




گفتگو