وقتی وارد دنیای توسعه ابزارها با هوش مصنوعی می‌شوید، اولین چیزی که باید یاد بگیرید این است که چطور از دیوارهای نامرئی وب عبور کنید و ایده‌های ذهنی‌تان را در سریع‌ترین زمان ممکن به یک محصول واقعی و قابل استفاده تبدیل کنید. در دنیای واقعی، ما همیشه به ای‌پی‌آی‌های رسمی و شسته-رفته دسترسی نداریم؛ گاهی مجبوریم خودمان دست‌به‌کار شویم، ساختار شبکه یک سایت را کالبدشکافی کنیم و دیتایی که نیاز داریم را بیرون بکشیم.

در این مسیر، چهار سناریو و چالش واقعی وجود دارد که هر کدام مهارت‌های متفاوتی را در شما تقویت می‌کنند:

  • رصد هوشمند و خودکار (پروژه مانیتورینگ بلیت): عبور از محدودیت‌های دسترسی و اتوماتیک‌سازی فرآیندها به کمک کارهای زمان‌بندی‌شده (Cron Jobs).
  • کالبدشکافی و بازطراحی (پروژه استخراج وبینارها): کشف دیتای مخفی در شبکه و ساخت یک پوسته کاملاً جدید برای یک سرویس موجود.
  • دنیای سه‌بعدی و هوش مصنوعی تصویری (پروژه شبیه‌ساز سه-بعدی کمد): ترکیب کتابخانه‌های گرافیکی وب با مدل‌های زاینده تصویر برای خلق یک تجربه تعاملی.
  • تجمیع داده از منابع پراکنده (پروژه مدیریت سبد سرمایه): اتصال به چندین منبع داده متفاوت و نمایش یکپارچه آن‌ها برای حل یک نیاز مالی شخصی.

بسیاری از افراد تصور می‌کنند برای ساخت چنین ابزارهایی نیاز به معماری‌های پیچیده یا زیرساخت‌های گران‌قیمت دارند، اما واقعیت این است که با یک فایل ساده روی هاست شخصی‌تان هم می‌توانید کارهای بزرگی انجام دهید. برای شروع، بیایید روی جذاب‌ترین و چالش‌برانگیزترین سناریو تمرکز کنیم: ساخت یک دستیار خودکار برای شکار بلیت‌های ارزان‌قیمت.

کالبدشکافی شبکه: چطور بدون اجازه، دیتا بگیریم؟

اولین قدم برای ساخت یک سیستم رصد قیمت، فهمیدن نحوه رفتار سایت هدف است. وقتی شما در مرورگر خود مبدأ و مقصد پروازی را جستجو می‌کنید، پشت صحنه چه اتفاقی می‌افتد؟ مرورگر شما یک درخواست پنهان (XHR) به سرورهای آن سایت می‌فرستد و اطلاعات پروازها را در قالب یک فایل متنی تمیز (JSON) تحویل می‌گیرد.

طراحان فرانت‌اند معمولاً این دیتا را به شکل جدول و نمودار به شما نشان می‌دهند، اما برای ما، همان متن خام کافی است. چالش اصلی اینجاست: این سایت‌ها ای‌پی‌آی عمومی ندارند و اگر مستقیماً از داخل مرورگر خود به آن‌ها درخواست بفرستید، با خطاهای امنیتی (مثل CORS) مواجه می‌شوید.

راهکار چیست؟ دور زدن مرورگر و استفاده از سرور خودی. وقتی درخواست شما از سمت یک زبان برنامه‌نویسیِ سمت سرور مثل PHP ارسال شود، دیگر محدودیت‌های مرورگر وجود نخواهد داشت. سرور شما نقش یک واسطه را بازی می‌کند؛ دیتای خام را می‌گیرد، آن را فیلتر می‌کند و قیمت‌ها را استخراج می‌کند.

از فرانت‌اند تا اتوماسیون: گام‌های اجرایی اسپرینت اول

برای اینکه در شلوغی کدهای خود گم نشوید، پروژه را به مراحل کوچک و سریع تقسیم می‌کنیم. هدف اسپرینت اول این است که بتوانیم دیتای واقعی را مانیتور کنیم و روی صفحه نمایش دهیم.

۱. شبیه‌سازی با دیتای ماک (Mock Data)

قبل از اینکه خود را درگیر چالش‌های شبکه و اتصال به سایت هدف کنید، ابتدا یک نمونه از دیتای خروجی آن‌ها (همان فایل JSON) را ذخیره کنید. رابط کاربری (UI) خود را بر اساس این فایل فرضی بسازید. این کار به شما کمک می‌کند بدون قطعی اینترنت یا بلاک شدن توسط سرور هدف، ابتدا ظاهر و منطق برنامه خود را تست کنید.

۲. اتصال به ای‌پی‌آی داخلی و مدیریت داینامیک تاریخ

حالا وقت آن است که دیتای فرضی را با دیتای زنده جایگزین کنید. اسکریپت سرور خود را طوری بنویسید که تاریخ روزهای آینده را هم پوشش دهد. برای مثال، کاربر باید بتواند وضعیت پروازهای ۱۵ روز آینده را ببیند. با کلیک روی هر تاریخ، برنامه باید به صورت خودکار درخواست جدیدی برای همان روز ارسال کند.

۳. داینامیک کردن مبدأ و مقصد

سیستم را از حالت تک‌مسیره (مثلاً فقط تهران-مشهد) خارج کنید. با اضافه کردن دو منوی کشویی ساده برای مبدأ و مقصد، به کاربر اجازه دهید هر مسیری را که می‌خواهد انتخاب کند و قیمت‌های همان لحظه را تحویل بگیرد.

اسپرینت دوم: هوشمندسازی و انتقال به تلگرام

یک ابزار مانیتورینگ زمانی واقعاً مفید است که نیازی به چک کردن مداوم آن نداشته باشید. اینجاست که مفهوم «کران جاب» (Cron Job) وارد بازی می‌شود. کران‌جاب یعنی اجرای کارهای زمان‌بندی‌شده بدون دخالت انسان.

در این مرحله، شما به سرور خود دستور می‌دهید که مثلاً «هر ۳۰ دقیقه یک‌بار، قیمت مسیر تهران-شیراز را چک کن». سرور این کار را در پس‌زمینه انجام می‌دهد. اما چطور این اطلاعات را به دست کاربر برسانیم؟ با متصل کردن اسکریپت به یک ربات تلگرام.

اگر قیمت بلیت از یک حد مشخص پایین‌تر آمد، سرور یک درخواست پِلِکانی به توکن ربات تلگرام شما می‌فرستد و پیام هشدار روی گوشی شما ظاهر می‌شود. در فاز پیشرفته‌تر، این رابطه دوطرفه می‌شود؛ یعنی شما می‌توانید به ربات پیام بفرستید: «قیمت فردا را بده» و ربات در همان ثانیه پاسخ را برای شما بفرستد. همه این‌ها، بدون نیاز به ابزارهای پیچیده هوش مصنوعی و تنها با معماری درست کدهای سمت سرور انجام‌پذیر است.