آنچه در ساخت محتوای آگاه از Pipeline در Astro آموختم

شما می‌توانید بدون فراخوانی یک API هوش مصنوعی در هر بار مشاهده صفحه، محتوای اختصاصی برای انواع مختلف مدل‌ها ایجاد کنید.

من یک دایرکتوری ابزارهای هوش مصنوعی با استفاده از Astro ساختم. در ابتدا، تمام صفحات مدل‌ها مشابه به نظر می‌رسیدند. خلاصه‌ها منحصربه‌فرد بودند، اما بخش‌های راهنما عمومی بودند. صفحه‌ای برای یک مدل صوتی و صفحه‌ای برای یک مدل متنی، هر دو متن‌های پرکننده (filler text) خالی و یکسانی را نشان می‌دادند.

این موضوع برای کاربران بد است و همچنین برای SEO نیز مضر است.

من این مشکل را با استفاده از یک فیلد متادیتای واحد از HuggingFace حل کردم: pipeline_tag.

نحوه عملکرد سیستم به این صورت است:

  • ذخیره‌سازی داده‌ها: فرآیند ETL من، pipeline_tag را در مرحله fetch در پایگاه داده ذخیره می‌کند.
  • منطق زمان ساخت (Build Time): Astro این تگ را در طول فرآیند تولید سایت استاتیک بارگذاری می‌کند.
  • مسیرهای تصمیم‌گیری: من از یک کد ساده برای بررسی تگ استفاده می‌کنم. اگر تگ "text-generation" باشد، صفحه توصیه‌های مربوط به LLM را نشان می‌دهد. اگر "audio" باشد، توصیه‌های مربوط به گفتار (speech) را نمایش می‌دهد.
  • هزینه زمان اجرا (Runtime) صفر: تمام این منطق‌ها در زمان ساخت (build) انجام می‌شوند. کاربر یک HTML ساده دریافت می‌کند. هنگام بازدید از سایت، هیچ فراخوانی API یا پردازش اضافی وجود ندارد.

من همچنین از این داده‌ها برای ایجاد سیگنال‌های کاربردپذیری بهتر استفاده کردم:

سطوح دانلود: به جای نمایش صرف یک عدد، مدل‌ها را در دسته‌های "تثبیت‌شده" (established)، "پرکاربرد" (actively-used) یا "خاص" (niche) دسته‌بندی می‌کنم. این کار به کاربر می‌گوید که آیا از پشتیبانی جامعه کاربری برخوردار خواهد بود یا خیر. • افیلیت‌های مرتبط: صفحات LLM لینک‌های اجاره GPU را نشان می‌دهند. صفحات Embedding لینک‌های متفاوت و مرتبط‌تری را نمایش می‌دهند. • کنترل ایندکس: اگر مدلی داده‌های ضعیف یا تگ‌های مفقود داشته باشد، از تگ "noindex" استفاده می‌کنم. این کار از نمایش صفحات با کیفیت پایین در نتایج جستجوی گوگل جلوگیری می‌کند.

ملاحظات (Trade-offs):

  • تگ‌های غیردقیق: برخی از نویسندگان، مدل‌ها را به اشتباه تگ‌گذاری می‌کنند. من این موضوع را با استفاده از یک راهکار جایگزین (fallback) به راهنمای عمومی مدیریت می‌کنم.
  • پیچیدگی کد: کامپوننت صفحه اکنون طولانی‌تر شده است. قصد دارم با بزرگتر شدن آن، این بخش را به توابع کمکی (helper functions) بازنویسی (refactor) کنم.

نتیجه، سایتی است که بدون هزینه سنگین تولید هوش مصنوعی در لحظه (real-time)، برای کاربر شخصی‌سازی شده به نظر می‌رسد.

منبع: https://dev.to/morinaga/what-i-learned-building-pipeline-aware-content-variants-in-a-static-astro-directory-1op4