ساخت یک اپلیکیشن RAG در Go (Golang)
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- چگونه یک پایپ لاین RAG از ابتدا تا انتها از جمله: قطعه بندی، embedding، جستجوی برداری، بازنویسی کوئری، تزریق زمینه و تولید استریم کار میکند؟
- چگونه رابط های Go را طوری طراحی کنید که مدل زبانی بزرگ، embedder و مخزن برداری بدون دست زدن به بقیه پایگاه کد، قابل تعویض باشند؟
- چگونه توکنهای مدل زبانی بزرگ را هم به ترمینال و هم به مرورگر با رویدادهای ارسالی سرور به صورت استریم ارسال کنید؟
- چگونه همه چیز را در برابر OpenAI ،Ollama ،LM Studio یا Groq اجرا کنید - و چگونه آنها را ترکیب کنید؟ (مثلاً چت میزبانیشده با embeddingهای محلی)
- چگونه از Postgres به همراه pgvector برای جستجوی برداری در سطح تولید، شامل نمایههای HNSW و مهاجرتهای بعد embedding استفاده کنید؟
- چگونه اسناد را به صورت واکنشی با fsnotify دریافت کنید، فایلهای نیمهنوشته شده را با debouncing مدیریت کنید و دریافت مجدد توانمند را انجام دهید؟
- چگونه محتوای چندحالته را از جمله: آپلود تصویر، زیرنویسدهی با مدل دیداری و رندر کردن تصویر در چت مدیریت کنید.
پیشنیازهای دوره
- درک اولیه زبان برنامهنویسی Go
- آشنایی با خواندن و نوشتن Go اولیه (توابع، ساختارها، رابط ها، گوروتینها)
- نصب Docker به صورت محلی (برای Postgres و pgvector)
- یک کلید OpenAI API یا یک اجراکننده مدل محلی مانند Ollama - دوره با هر دو کار میکند و چگونگی جابجایی را به شما نشان میدهد.
- هیچ تجربه قبلی در RAG، یادگیری ماشین یا پایگاه داده برداری مورد نیاز نیست.
توضیحات دوره
یک سیستم RAG با سبک تولید در Go - از صفر تا چت استریم بسازید.
Retrieval-Augmented Generation را با ساختن خودتان، در Go ساده، در برابر هر مدل سازگار با OpenAI - محلی یا میزبانیشده - بیاموزید.
دست از خواندن درباره RAG بردارید و شروع به تحویل آن کنید. در این دوره عملی، شما یک سیستم کامل Retrieval-Augmented Generation را از ابتدا با استفاده از زبان برنامهنویسی Go خواهید ساخت. بدون پایتون. بدون لنگچین. بدون انتزاعات جادویی. فقط کد Go واضح و اصیل که میتوانید بخوانید، تغییر دهید و مالک آن باشید.
در پایان دوره، شما یک اپلیکیشن کاربردی خواهید داشت که شامل یک REPL چت استریم در ترمینال، یک رابط کاربری چت مبتنی بر مرورگر با رویدادهای ارسالی سرور توکن به توکن، آپلود فایل و تصویر، یک ناظر سیستم فایل پسزمینه که اسناد را به طور خودکار دریافت میکند، یک افسار ارزیابی که کیفیت بازیابی را امتیازدهی میکند، و یک بک اند Postgres + pgvector است که در داکر اجرا میشود.
چرا این دوره؟
بیشتر آموزشهای RAG بخشهای جالب را پشت یک فریمورک پنهان میکنند. شما سه خط از کتابخانه شخص دیگری را به هم وصل میکنید، کار میکند، و هیچ ایدهای ندارید که چه اتفاقی افتاده است. وقتی چیزی در تولید خراب میشود - و خواهد شد - شما گیر میافتید.
این دوره رویکرد مخالف را در پیش میگیرد. هر کامپوننت به طور صریح ساخته میشود، با مرزهای تمیز بین مفاهیم تا بتوانید دقیقاً ببینید مشتری مدل زبانی بزرگ کجا تمام میشود و مخزن برداری از کجا شروع میشود. طرح بندی بستهها مستقیماً به فصلهای درس نگاشت میشود. رابط های بین مدل زبانی بزرگ، embedder، مخزن برداری، retriever، حلقه چت و وب سرور عمداً آشکار شدهاند تا بتوانید قطعات را به عنوان تمرین جابجا کنید.
چه چیزی خواهید ساخت؟
یک اپلیکیشن RAG کوچک اما واقعی با تمام اجزای متحرک یک سیستم تولید:
- یک REPL چت استریم در ترمینال با یک چرخفلک «در حال فکر کردن» و مدیریت تاریخچه مناسب
- یک رابط کاربری چت وب ساخته شده با chi، قالبهای Go و Tailwind که توکنها را از طریق رویدادهای ارسالی سرور به مرورگر پخش میکند و با رندر مارکداون در مرورگر همراه است.
- یک ناظر سیستم فایل پسزمینه که اسناد جدید را تشخیص میدهد، آنها را تکهتکه میکند، embedding میکند و در pgvector درج یا بهروز میکند - سپس اصلها را از سر راه برمیدارد.
- یک مسیر آپلود فایل همزمان در رابط کاربری وب برای دریافت درگ و دراپ کردن با بازخورد تعداد قطعه ها
- یک پایپ لاین آپلود تصویر با زیرنویسدهی خودکار اختیاری توسط یک مدل قادر به دید، که به مرورگر برگردانده میشود و به صورت درونخطی در چت رندر میشود.
- یک chunker آگاه از پاراگراف با اندازه و overlap قابل تنظیم
- یک rewriter کوئری که مکالمه چند نوبتی را قبل از بازیابی به یک پرسش جستجوی مستقل تبدیل میکند.
- یک retriever با فیلتر تشابه کسینوسی، انتخاب ضربههای برتر K و بک اندهای قابل اتصال
- یک مخزن برداری pgvector و Postgres 18 با مهاجرتهای توانمند، نمایهگذاری HNSW و یک مسیر حذف بر اساس منبع که دریافت مجدد را تمیز نگه میدارد.
چه چیزی این دوره را متفاوت میکند؟
- کد واقعی، نه شبهکد. هر مثال در این دوره از یک پروژه کاری و قابل اجرا است.
- محلی-محور. میتوانید کل دوره را با Ollama روی لپتاپ خود کامل کنید. بدون نیاز به قبض API
- صادقانه در مورد ویژگی های خوب و بد. این دوره محدودیتهای شناخته شده را پوشش میدهد (تکهتکهساز کور نسبت به توکن است، حذف-سپس-درج تراکنشی نیست، بازیابی تصویر مبتنی بر توضیحات است) تا فضای طراحی را درک کنید، نه فقط یک پاسخ ثابت.
پشته فنی که استفاده خواهید کرد
Go ،Postgres 18 ،pgvector ،Docker Compose ،chi router، قالبهای Go ،Tailwind، رویدادهای ارسالی سرور، fsnotify، APIهای سازگار با OpenAI (با OpenAI ،Ollama ،LM Studio، Groq و دیگران کار میکند).
نتیجه دوره
وقتی این دوره را به پایان برسانید، یک اپلیکیشن RAG در سطح نمونه کار روی دستگاه خود در حال اجرا خواهید داشت، درک عمیقی از چگونگی کار هر لایه خواهید داشت و اعتماد به نفس برای انداختن همان معماری در یک محصول واقعی در محل کار را خواهید داشت. خواهید دانست چه چیزی را اندازه بگیرید، چه چیزی را عوض کنید و چه چیزی را رها کنید.
همین حالا در این دوره شرکت کنید و امروز ساخت سیستم RAG خود را شروع کنید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگانی که میخواهند بدون ترک زبان انتخابی خود، اپلیکیشن های هوش مصنوعی را درک کنند.
- مهندسان هوش مصنوعی پایتون که میخواهند ببینند RAG بدون فریمورکی که مکانیک را پنهان میکند، چگونه به نظر میرسد.
- مهندسان back-end که RAG را برای یک محصول واقعی در نظر میگیرند و یک مدل ذهنی واضح از اجزای متحرک میخواهند.
- دانشجویان و خودآموزانی که با ساختن بهترین یادگیری را دارند، نه با خواندن.
- هر کسی که از آموزشهای «pip install langchain» خسته شده و کدی میخواهد که واقعاً بتواند بخواند.
ساخت یک اپلیکیشن RAG در Go (Golang)
-
مقدمه 05:21
-
نصب Go 01:46
-
راهاندازی یک IDE 02:47
-
درخواست کمک 01:14
-
راهاندازی یک اپلیکیشن اولیه Go 21:59
-
تکمیل بسته llm 13:44
-
راهاندازی بسته چت 25:14
-
یک نکته درباره مدلهای ابری 02:08
-
راهاندازی مدل ما با Ollama 09:03
-
شروع کار با فعال کردن یک فرمان سیستم 05:02
-
راهاندازی مخزن برداری پایگاه داده در Postgres 03:15
-
تعریف یک واسط مخزن برداری 09:29
-
پیادهسازی رابط برای Postgres و pgvector: بخش 1 24:16
-
پیادهسازی رابط برای Postgres و pgvector: بخش 2 15:54
-
پیادهسازی رابط برای Postgres و pgvector: بخش 3 04:34
-
فعال کردن back-end برداری: بخش 1 08:47
-
فعال کردن back-end برداری: بخش 2 05:31
-
راهاندازی embedder ما 12:09
-
راهاندازی یک مشتری برای مدل embedding ما 07:40
-
راهاندازی یک Chunker 13:07
-
راهاندازی یک ingestor 25:11
-
بارگذاری اسناد در ingestor 27:33
-
اتصال گیرنده به اپلیکیشن 06:24
-
امتحان کردن موارد 07:31
-
RAG چگونه کار میکند؟ 04:03
-
شروع کار با بسته RAG ما 09:07
-
راهاندازی retriever و rewriter ما 28:14
-
افزودن retriever/rewriter به کد Read-Evaluate-Print-Loop 11:24
-
اتصال تغییرات ما به app.go 04:11
-
امتحان کردن موارد 06:38
-
تأیید فرمان کاربر اصلاحشده 02:34
-
راهاندازی وب سرور 1 14:23
-
راهاندازی وب سرور 2: صفحه چت 12:11
-
نمایش صفحه چت 08:30
-
فعال کردن چت وب 21:18
-
امتحان چت وب 02:30
-
آپلود فایلها به مخزن برداری از رابط وب 15:55
-
افزودن تصاویر به مخزن برداری 36:26
-
امتحان آپلود تصویر 14:36
-
گرفتن یک مدل دیداری و راهاندازی آن 11:40
-
راهاندازی مسیر و کنترلکننده برای مدل دیداری 08:51
-
امتحان زیرنویسدهی تصویر 02:47
-
تزریق فرمان چیست؟ 02:53
-
راهاندازی میانافزار دفاع در برابر تزریق فرمان 29:47
-
اتصال همه چیز 05:28
مشخصات آموزش
ساخت یک اپلیکیشن RAG در Go (Golang)
- تاریخ به روز رسانی: 1405/04/12
- سطح دوره:متوسط
- تعداد درس:45
- مدت زمان :08:33:05
- حجم :5.1GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy