آموزش ساخت اپلیکیشن RAG با زبان گو (Golang) - آخرین آپدیت

دانلود Building a RAG application in Go (Golang)

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: تولید تقویت شده با بازیابی (RAG) را با ساخت یک سیستم واقعی با زبان Go و مدل‌های سازگار با OpenAI (چه محلی و چه ابری) بیاموزید. در این دوره خواهید آموخت: - نحوه عملکرد واقعی خط لوله RAG از ابتدا تا انتها: تکه‌تکه کردن (Chunking)، جاسازی (Embedding)، جستجوی برداری، بازنویسی پرس‌وجو، تزریق متن و تولید استریمینگ. - طراحی اینترفیس‌های Go به گونه‌ای که LLM، مدل Embedder و ذخیره‌ساز برداری بدون تغییر در کدنویسی قابل تعویض باشند. - نحوه استریم کردن توکن‌های LLM در ترمینال و مرورگر با استفاده از Server-Sent Events (SSE). - اجرای سیستم با OpenAI، Ollama، LM Studio یا Groq و ترکیب آن‌ها (مثلاً چت ابری با جاسازی محلی). - استفاده از Postgres و pgvector برای جستجوی برداری در سطح تولید، شامل ایندکس‌های HNSW و مهاجرت ابعاد جاسازی. - وارد کردن واکنش‌گرای اسناد با fsnotify، مدیریت فایل‌های نیمه‌نوشته و بازخوانی مجدد بدون تکرار. - مدیریت محتوای چندوجهی: آپلود تصویر، شرح تصاویر توسط مدل‌های Vision و رندر کردن تصاویر در چت. پیش نیازها: - درک پایه از زبان برنامه‌نویسی Go. - توانایی خواندن و نوشتن کدهای پایه Go (توابع، استراکت‌ها، اینترفیس‌ها و گوروتین‌ها). - نصب Docker به صورت محلی (برای Postgres و pgvector). - کلید API OpenAI یا اجرای مدل محلی مانند Ollama. - هیچ تجربه قبلی در زمینه RAG، یادگیری ماشین (ML) یا پایگاه داده‌های برداری نیاز نیست.

ساخت سیستم RAG در سطح تولید با Go — از صفر تا چت استریمینگ

تولید تقویت شده با بازیابی (RAG) را با ساختن آن توسط خودتان، با زبان خالص Go و مدل‌های سازگار با OpenAI بیاموزید.


خواندن درباره RAG را متوقف کنید و شروع به پیاده‌سازی آن کنید. در این دوره عملی، شما یک سیستم کامل Retrieval-Augmented Generation را از پایه با زبان Go خواهید ساخت. بدون پایتون، بدون LangChain و بدون انتزاع‌های جادویی؛ فقط کدهای شفاف و اصیل Go که می‌توانید آن‌ها را بخوانید، تغییر دهید و کاملاً مالک آن‌ها باشید.


در پایان دوره، شما یک اپلیکیشن کاربردی خواهید داشت که دارای: یک REPL چت استریمینگ در ترمینال، رابط کاربری وب با SSE برای دریافت توکن‌به-توکن، قابلیت آپلود فایل و تصویر، یک ناظر سیستم فایل در پس‌زمینه برای وارد کردن خودکار اسناد، سیستمی برای ارزیابی کیفیت بازیابی و بک‌اِند Postgres + pgvector در داکر است.


چرا این دوره؟

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


این دوره رویکردی متضاد دارد. هر جزء به صورت صریح ساخته می‌شود تا دقیقاً بدانید کلاینت LLM کجا تمام می‌شود و ذخیره‌ساز برداری کجا شروع می‌شود. ساختار بسته‌ها مستقیماً با فصل‌های دوره مطابقت دارد و اینترفیس‌ها را عمداً باز گذاشته‌ایم تا بتوانید قطعات را به عنوان تمرین جایگزین کنید.


این همان دوره‌ای است که آرزو داشتم هنگام یادگیری RAG وجود داشت.


چه چیزی خواهید ساخت

یک اپلیکیشن RAG کوچک اما واقعی با تمام اجزای یک سیستم تولیدی:

  • یک streaming chat REPL در ترمینال با انیمیشن «در حال تفکر» و مدیریت تاریخچه مناسب

  • یک رابط کاربری وب ساخته شده با chi، قالب‌های Go و Tailwind، با استریم توکن‌ها از طریق SSE و رندر Markdown

  • یک ناظر سیستم فایل (Filesystem Watcher) در پس‌زمینه که اسناد جدید را شناسایی، تکه‌تکه و جاسازی کرده و در pgvector ذخیره می‌کند

  • مسیر آپلود فایل همزمان در وب با قابلیت درگ-اند-دراپ و بازخورد تعداد تکه‌ها

  • یک خط لوله آپلود تصویر با قابلیت شرح خودکار توسط مدل‌های Vision و نمایش در چت

  • یک تکه‌کننده (Chunker) آگاه به پاراگراف با اندازه و هم‌پوشانی قابل تنظیم

  • یک بازنویس پرس‌وجو (Query Rewriter) که گفتگوهای چندمرحله‌ای را به یک پرس‌وجوی جستجوی مستقل تبدیل می‌کند

  • یک بازیاب (Retriever) با فیلتر شباهت کسینوسی، انتخاب Top-K و بک‌اِندهای قابل تعویض

  • ذخیره‌ساز برداری pgvector + Postgres 18 با مهاجرت‌های Idempotent و ایندکس HNSW


چه چیزهایی خواهید آموخت

  • نحوه عملکرد کامل خط لوله RAG: از تکه‌تکه کردن و جاسازی تا جستجوی برداری و تولید استریمینگ

  • طراحی اینترفیس‌های Go برای قابلیت تعویض LLM، Embedder و Vector Store

  • نحوه استریم کردن توکن‌ها به ترمینال و مرورگر با Server-Sent Events

  • اجرای سیستم با OpenAI, Ollama, LM Studio یا Groq و ترکیب مدل‌های ابری و محلی

  • استفاده از Postgres + pgvector برای جستجوی برداری در مقیاس تولید

  • وارد کردن واکنش‌گرای اسناد با استفاده از fsnotify و مدیریت فایل‌های ناقص

  • کار با محتوای چندوجهی: آپلود تصویر و شرح تصاویر توسط مدل‌های بینایی

  • دیباگ کردن این مسئله که «چرا مدل از اسناد من استفاده نکرد؟»


تفاوت این دوره با دیگران

  • کد واقعی، نه شبه‌کد. تمام مثال‌ها از یک پروژه واقعی و قابل اجرا هستند.

  • اول‌ویت با مدل‌های محلی. می‌توانید کل دوره را با Ollama روی لپ‌تاپ خود به پایان برسانید بدون هزینه API.

  • شفافیت در مورد نقاط ضعف. محدودیت‌های هر روش (مانند Chunking بدون توجه به توکن) بررسی می‌شود تا فضای طراحی را بشناسید.


تکنولوژی‌های مورد استفاده

Go, Postgres 18, pgvector, Docker Compose, chi router, Go templates, Tailwind, Server-Sent Events, fsnotify, OpenAI-compatible APIs.


نتیجه دوره

در پایان این دوره، شما یک اپلیکیشن RAG با کیفیتِ نمونه‌کار (Portfolio) روی سیستم خود خواهید داشت، درک عمیقی از هر لایه به دست می‌آورید و اعتماد به نفس لازم برای پیاده‌سازی این معماری در پروژه‌های واقعی کاری را خواهید داشت.


همین حالا ثبت‌نام کنید و ساخت سیستم RAG خود را آغاز کنید.


سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • نصب زبان Go Installing Go

  • راه‌اندازی محیط توسعه (IDE) Setting up an IDE

  • نحوه درخواست کمک Asking for help

شروع به کار Getting started

  • راه‌اندازی یک اپلیکیشن پایه Go Setting up a basic Go application

  • تکمیل بسته llm Finishing up the llm package

  • راه‌اندازی بسته chat Setting up the chat package

  • نکاتی درباره مدل‌های ابری A note about Cloud models

  • راه‌اندازی مدل با Ollama Setting up our model with Ollama

راه‌اندازی ذخیره‌ساز برداری Setting up our Vector Store

  • شروع با فعال‌سازی System Prompt Getting started by enabling a system prompt

  • راه‌اندازی ذخیره‌ساز برداری در Postgres Setting up the database Vector Store in Postgres

  • تعریف اینترفیس Vector Store Defining a Vector Store interface

  • پیاده‌سازی اینترفیس برای Postgres و pgvector: بخش اول Implement the interface for Postgres & pgvector: Part I

  • پیاده‌سازی اینترفیس برای Postgres و pgvector: بخش دوم Implement the interface for Postgres & pgvector: Part II

  • پیاده‌سازی اینترفیس برای Postgres و pgvector: بخش سوم Implement the interface for Postgres & pgvector: Part III

  • فعال‌سازی بک‌اِند برداری: بخش اول Enabling the vector back end: Part I

  • فعال‌سازی بک‌اِند برداری: بخش دوم Enabling the vector back end: Part II

افزودن اسناد به ذخیره‌ساز برداری Adding Documents to the Vector Store

  • راه‌اندازی Embedder Setting up our embedder

  • راه‌اندازی کلاینت برای مدل جاسازی (Embedding) Setting up a client for our embedding model

  • راه‌اندازی تکه‌کننده (Chunker) Setting up a chunker

  • راه‌اندازی واردکننده (Ingestor) Setting up an ingestor

  • بارگذاری اسناد در Ingestor Loading documents into the ingestor

  • اتصال Ingestor به اپلیکیشن Wiring the ingestor into the app

  • تست و بررسی عملکرد Trying things out

پیاده‌سازی تولید تقویت شده با بازیابی (RAG) Implementing Retrieval Augmented Generation (RAG)

  • RAG چگونه کار می‌کند How RAG works

  • شروع کار با بسته RAG Getting started with our RAG package

  • راه‌اندازی Retriever و Rewriter Setting up our retriever and rewriter

  • افزودن بازیاب/بازنویس به کد REPL Adding the retriever/rewriter into the Read-Evaluate-Print-Loop code

  • اتصال تغییرات به app.go Wiring our changes into app.go

  • تست و بررسی عملکرد Trying things out

  • تأیید پرس‌وجوی تغییر یافته کاربر Verifying the modified user prompt

راه‌اندازی اپلیکیشن وب Setting up a Web App

  • راه‌اندازی وب‌سرور: بخش اول Setting up the web server I

  • راه‌اندازی وب‌سرور: بخش دوم (صفحه چت) Setting up the web server II: the chat page

  • نمایش صفحه چت Displaying the chat page

  • فعال‌سازی چت وب Enabling web chat

  • تست چت وب Trying out web chat

  • آپلود فایل‌ها به ذخیره‌ساز برداری از طریق وب Uploading files to the vector store from the web interface

  • افزودن تصاویر به ذخیره‌ساز برداری Adding images to the vector store

  • تست آپلود تصویر Trying out image upload

  • دریافت و راه‌اندازی مدل Vision Getting a vision model and setting it up

  • راه‌اندازی مسیر و هندلر برای مدل Vision Setting up the route and handler for the vision model

  • تست شرح تصاویر Trying out image captioning

ملاحظات استقرار و دیپلوی Considerations for deployment

  • تزریق پرامپت (Prompt Injection) چیست What is Prompt Injection

  • راه‌اندازی میان‌افزار دفاع در برابر تزریق پرامپت Setting up prompt injection defense middleware

  • اتصال نهایی قطعات Wiring things up

نمایش نظرات

آموزش ساخت اپلیکیشن RAG با زبان گو (Golang)
جزییات دوره
8.5 hours
45
(آخرین آپدیت)
479
4.7 از 5
دارد
دارد
دارد
Trevor Sawler
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar