Files

102 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات درس‌نامه: تزریق قابلیت‌های پیشرفته هوش مصنوعی؛ جستجوی معنایی (Vector Search) و تولید هوشمند محتوا
- **شناسه در سیلابس:** `L15.6`
- **فصل:** فصل ۱۵: تکامل محصول با AI (Ch 15)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۲۰ دقیقه
- **پیش‌نیازهای مستقیم:** `L15.5` (بهبود ساختار کد و ری‌فکتورینگ امن)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** تفاوت میان «جستجوی کلیدواژه‌ای سنتی» (Keyword Search) و «جستجوی معنایی برداری» (Semantic Vector Search) را شرح دهد و بداند چرا کاربری که کلمه «بانک اطلاعاتی» را سرچ می‌کند باید پروژه‌های برچسب‌خورده با «PostgreSQL» را ببیند.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** نحوه کارکرد اکستنشن **pgvector** در پایگاه داده PostgreSQL و پایگاه داده Supabase را برای محاسبه شباهت کسینوسی (Cosine Similarity) میان بردارها ارزیابی کند.
- [ ] **به‌کار ببندد (Apply):** یک ویژگی هوشمند در پنل ادمین پیاده کند که با دریافت لینک گیت‌هاب پروژه، توضیحات جذاب فارسی، خلاصه فنی و تگ‌های سئو را به صورت خودکار با خروجی ساختاریافته JSON تولید نماید.
- [ ] **ایجاد کند (Create):** قابلیت جستجوی هوشمند در میان پروژه‌ها و مهارت‌های پورتفولیو را با مدل‌های تولید بردار (Text Embeddings) راه‌اندازی و به رابط کاربری متصل کند.
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **فراتر از چت‌بات‌های ساده: هوش مصنوعی نامرئی در بافت محصول:**
* هوش مصنوعی فقط چت‌باکس گوشه صفحه نیست؛ می‌تواند موتور جستجو، دستیار تولید محتوا و پالایشگر داده‌های محصول باشد.
2. **کالبدشکافی جستجوی معنایی و بردارها (Vector Embeddings):**
* چرا جستجوی متنی معمولی شکست می‌خورد؟ (عدم تطابق کلمات هم‌معنی).
* بردار چیست؟ تبدیل معنای هر پروژه به یک رشته عدد در فضا (مثلاً ۱۵۳۶ بُعد) که پروژه‌های مشابه در نزدیکی هم قرار می‌گیرند.
3. **فعال‌سازی اکستنشن قدرتمند `pgvector` در Supabase:**
* فعال‌سازی با دستور تک‌خطی: `create extension if not exists vector;`.
* افزودن ستون `embedding vector(1536)` به جدول پروژه‌ها.
* نوشتن تابع جستجوی شباهت کسینوسی در SQL با عملگر `<=>`.
4. **تولید خودکار شناسنامه پروژه در پنل مدیریت با AI:**
* فیچر: ادمین آدرس گیت‌هاب یا چند خط یادداشت خام تایپ می‌کند $\rightarrow$ دکمه «تکمیل هوشمند با AI» را می‌زند $\rightarrow$ مدل با قابلیت Structured Outputs / JSON Schema یک پکیج کامل شامل: تیتر جذاب، ۳ پاراگراف توضیحات فارسی روان، دسته‌بندی و لیست تگ‌ها را استخراج و فیلدهای فرم را خودکار پر می‌کند!
5. **خروجی ساختارمند با JSON Schema (پرهیز از پرحرفی مدل):**
* الزام مدل زبانی به برگرداندن یک شیء JSON بدون احوالپرسی یا توضیحات اضافه.
6. **کال‌اوت‌های آموزشی و هشدار کوئرا:**
* کال‌اوت بنفش (`<details class="violet">`): مفهوم شباهت کسینوسی (Cosine Similarity)؛ چگونگی سنجش زاویه میان دو بردار معنایی در فضای چندبُعدی.
* کال‌اوت سبز (`<details class="green">`): هزینه ناچیز مدل‌های Embedding (مانند `text-embedding-3-small`) که ساخت بردار برای هزاران پروژه کمتر از چند هزار تومان هزینه دارد.
* کال‌اوت قرمز (`<details class="red">`): تولید بردارها را در هنگام جستجوی کاربر فقط برای عبارت ورودی انجام دهید؛ بردار پروژه‌ها باید از قبل یک‌بار تولید و در دیتابیس ذخیره شده باشد.
### آنچه نباید وارد آن شویم (Out-of-Scope):
- آموزش شبکه‌های عصبی Transformer و معماری داخلی آنها.
- پیاده‌سازی خوشه‌بندی‌های بدون نظارت K-Means در لایه دیتابیس.
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Semantic Search | جستجوی معنایی | جستجوی مبتنی بر درک مقصود و معنای عمیق مفاهیم به جای تطابق کلمه به کلمه متن |
| Vector Embedding | تعبیه برداری | تبدیل متون به بردارهای عددی چندبعدی به گونه‌ای که کلمات هم‌معنی در فضا به هم نزدیک باشند |
| pgvector | اکستنشن پی‌جی‌وکتور | افزونه رسمی پایگاه داده PostgreSQL برای ذخیره، ایندکس و جستجوی فوق‌سریع بردارها |
| Cosine Similarity | شباهت کسینوسی | معیار ریاضی سنجش زاویه میان دو بردار که میزان همبستگی مفهومی آن‌ها را معین می‌کند |
| Structured JSON Output | خروجی ساختاریافته جیسون | وادار کردن مدل هوش مصنوعی به رعایت یک قالب و اسکیمای سخت‌گیرانه داده‌ها برای مصرف در برنامه |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` ذخیره شده و در جدول تک‌خانه‌ای وسط‌چین درج شوند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** فضای سه‌بعدی نئونی پر از نقاط نوری معلق (بردارها) که با خطوط نورانی به کلمات «پایگاه داده»، «Supabase» و «SQL» متصل شده‌اند.
2. **تفاوت جستجوی کلیدواژه‌ای با جستجوی برداری معنایی:** `images/keyword-vs-semantic-search.png`
* **موضوع:** اینفوگرافیک مقایسه‌ای: جستجوی «فروشگاه آنلاین» در جستجوی سنتی نتایج «E-Commerce» را نمی‌یابد؛ در جستجوی معنایی این دو دقیقاً در کنار هم قرار دارند.
3. **معماری جستجوی معنایی در Supabase با pgvector:** `images/supabase-pgvector-flow.png`
* **موضوع:** فلوچارت: کاربر در اینپوت سرچ تایپ می‌کند $\rightarrow$ تولید بردار کوئری با مدل $\rightarrow$ کوئری SQL در سوپابیس با عملگر کسینوس $\rightarrow$ برگرداندن پروژه‌ها به ترتیب شباهت.
4. **دکمه جادویی تولید محتوای پروژه در پنل مدیریت:** `images/ai-project-generator-ui.png`
* **موضوع:** اسکرین‌شات از فرم ثبت پروژه در پنل ادمین با دکمه «تولید هوشمند با AI» و انیمیشن پر شدن خودکار فیلدهای توضیحات و تگ‌ها.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# تزریق قابلیت‌های پیشرفته هوش مصنوعی؛ جستجوی معنایی (Vector Search) و تولید هوشمند محتوا`
2. **مقدمه:** هوش مصنوعی تا کنون کد می‌نوشت؛ حال وقت آن است که قابلیت‌های جادویی هوش مصنوعی را به عنوان قلب تپنده پورتفولیو به نمایش بگذاریم!
3. **جدول کاور درس**
4. **استعاره جستجوی کتاب در کتابخانه بر اساس موضوع به جای عنوان جلد:**
* وقتی از کتابدار کتابی درباره «آشپزی ایتالیایی» می‌خواهید، او کتاب «طرز تهیه پاستا» را می‌آورد حتی اگر کلمه ایتالیا روی جلد نباشد.
5. **مبانی بردارها و ریاضیات معنایی (Vector Embeddings):**
* چگونه هوش مصنوعی متون را به مختصات فضایی تبدیل می‌کند.
6. **راه‌اندازی `pgvector` در Supabase و ذخیره بردار پروژه‌ها:**
* نوشتن مایگریشن فعال‌سازی اکستنشن و افزودن ستون `embedding`.
7. **پیاده‌سازی ماژول جستجوی معنایی پورتفولیو در Next.js:**
* ساخت اینپوت جستجوی هوشمند در هدر سایت با افکت لودینگ برداری.
8. **ساخت ویژگی تولید خودکار مشخصات پروژه با Structured Outputs:**
* پرامپت فرمت JSON Schema برای استخراج سئو و متن فارسی از روی یادداشت‌های خام یا ریپوی گیت‌هاب.
9. **جعبه پرامپت طلایی: ساخت اندپوینت جستجوی معنایی با ایجنت:**
* پرامپت دقیق:
> «من اکستنشن `vector` را در Supabase فعال کرده‌ام. لطفاً ۱) یک تابع RPC در دیتابیس برای جستجوی شباهت کسینوسی پروژه‌ها بنویس، ۲) یک Route Handler برای تولید بردار متن سرچ با استفاده از مدل `text-embedding-3-small` اوپن‌ای‌آی یا OpenRouter ایجاد کن، و ۳) کامپوننت جستجو در فرانت‌اند را به گونه‌ای متصل کن که نتایج مرتبط را به صورت آنی نمایش دهد.»
10. **باکس نکته Quera (`<details class="violet">`):** استفاده از کش در جستجوی معنایی؛ برای عبارات جستجوی متداول، بردارها را کش کنید تا هزینه به حداقل برسد.
11. **باکس هشدار Quera (`<details class="red">`):** هرگز بردارها را به صورت پویا در سمت کلاینت تولید نکنید؛ کلید API هوش مصنوعی باید در محیط امن سرور اکشن بماند.
12. **باکس رضایت‌بخش Quera (`<details class="green">`):** تست سرچ کلماتی که در سایت نیستند (مثل «توسعه سمت کاربر») و دیدن لود شدن فوری پروژه‌های React و Next.js!
13. **جمع‌بندی درس‌نامه:** تسلط بر هوش مصنوعی پیشرفته داخلی؛ ورود به دنیای ساخت فرآیندهای خودمختار چندمرحله‌ای (Agentic Workflows) در درس بعدی.
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] تفاوت جستجوی متنی سنتی و جستجوی معنایی برداری با مثال‌های شفاف تبیین شود.
- [ ] نحوه فعال‌سازی و کاربرد اکستنشن `pgvector` در Supabase آموزش داده شود.
- [ ] تولید خروجی ساختاریافته JSON Schema برای تولید خودکار دیتای پروژه‌ها تشریح گردد.
- [ ] پرامپت‌های ساخت اندپوینت جستجوی برداری در متن درس لحاظ شوند.