از Docusaurus تا WordPress: سه روش برای ساخت چت هوش مصنوعی

من سه معماری مختلف برای چت هوش مصنوعی ساخته‌ام. هر کدام از آن‌ها مشکل متفاوتی را حل می‌کنند.

هدف پیدا کردن بهترین تکنولوژی نیست. هدف این است که تکنولوژی را با کاربر هدف خود مطابقت دهید.

۱. ایندکس استاتیک (Docusaurus + Vercel) این روش از یک فایل JSON در داخل یک سایت استاتیک استفاده می‌کند. یک مرحله‌ی build، فایل‌های markdown شما را به یک ایندکس واحد تبدیل می‌کند. جستجو با استفاده از یک serverless function در حافظه (in-memory) انجام می‌شود.

• بهترین برای: سایت‌های مستنداتی که مالک آن‌ها هستید. • مزایا: بدون نیاز به زیرساخت اضافی. سریع و ارزان است. • معایب: قابلیت مقیاس‌پذیری ندارد. فقط برای مقادیر کمی از متن کار می‌کند.

۲. سرویس مقیاس‌پذیر (Neon + pgvector) این روش از یک پایگاه داده Postgres با پشتیبانی از vector استفاده می‌کند. برای یافتن سریع داده‌ها، از جستجوی معنایی (semantic search) واقعی بهره می‌برد.

• بهترین برای: محصولات SaaS با کاربران زیاد. • مزایا: حجم عظیمی از داده‌ها را مدیریت می‌کند. از حساب‌های چندکاربره و تاریخچه (history) پشتیبانی می‌کند. • معایب: به زیرساخت مدیریت‌شده و کار عملیاتی بیشتری نیاز دارد.

۳. پلاگین آماده (WordPress) این نسخه، vectorها را مستقیماً در پایگاه داده WordPress قرار می‌دهد. از PHP برای انجام جستجوی brute-force روی تکه‌های متن (text chunks) استفاده می‌کند.

• بهترین برای: مشتریانی که یک پلاگین ساده WordPress می‌خواهند. • مزایا: بدون نیاز به تنظیمات اضافی. روی هر هاست WordPress کار می‌کند. در داخل همان پایگاه داده سایت باقی می‌ماند. • معایب: برای مجموعه‌داده‌های بسیار بزرگ، کندتر است.

نکات کلیدی:

  • معماری را با نحوه استقرار (deployment) مطابقت دهید. پلاگین WordPress که به یک پایگاه داده جداگانه نیاز داشته باشد، پلاگین مفیدی نیست.
  • کوچک شروع کنید. یک ایندکس JSON استاتیک ثابت می‌کند که تجربه کاربری شما قبل از ساخت پایگاه‌های داده پیچیده، به درستی کار می‌کند.
  • جستجوی brute-force برای سایت‌های کوچک مناسب است. برای چند هزار قطعه متن، به اندازه کافی سریع است. تا زمانی که مجبور نشده‌اید، از موتورهای vector پیچیده استفاده نکنید.
  • کد خود را منعطف نگه دارید. برای vector store خود از یک interface استفاده کنید. این کار به شما اجازه می‌دهد بدون بازنویسی اپلیکیشن، از JSON به Postgres سوئیچ کنید.
  • امنیت مهم است. کلیدهای API را در هر لایه رمزنگاری کنید. از مدل bring-your-own-key استفاده کنید تا با داده‌های حساس کاربران درگیر نشوید.

منبع: https://dev.to/kaidanov/from-docusaurus-mai-to-a-wordpress-ai-chat-with-vectors-41ba