پرش به محتوای اصلی
پرش به محتوای مقاله

گوگل: اتوماسیون Gemini 2.5 Flash جست‌وجوهای چندگانه در پایگاه‌داده را ممکن کرد

·۷ تیر ۱۴۰۵۶ دقیقه مطالعه
راهنما
ساخت سیستم RAG از صفر — استفاده از ابزار: جستجوی خودکار توسط مدل زبانی
ساخت سیستم RAG از صفر — استفاده از ابزار: جستجوی خودکار توسط مدل زبانی
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

تغییر پارادایم از خط‌لوله‌های ثابت (Hardcoded Pipelines) به حلقه‌های تصمیم‌گیرنده (Agentic Loops) در RAG؛ جایی که مدل به‌جای اجرای دستور، استراتژی بازیابی را بر اساس نیاز لحظه‌ای طراحی می‌کند.

اگر توسعه‌دهنده هستید و با تأخیر زیاد یا پاسخ‌های ناقص در سیستم‌های بازیابی داده دست‌وپنجه نرم می‌کنید، باید بدانید که منطق سخت‌افزاریِ قدیمی در حال مرگ است. اکنون مدل‌ها می‌توانند به‌جای پیروی از یک دستورالعمل خطی، مانند یک مدیر پروژه تصمیم بگیرند که چه ابزاری در چه زمانی لازم است.

طبق یک راهنمای توسعه‌دهندگان که در ۲۷ ژوئن ۲۰۲۶ منتشر شد، مدل Gemini 2.5 Flash اکنون قادر است استفاده از ابزارها را به‌طور خودکار مدیریت کند. در حالی که خط‌لوله‌های سنتی RAG بر یک جریان ثابت «پرسش $\rightarrow$ جست‌وجو $\rightarrow$ پاسخ» تکیه داشتند، این مدل اکنون از توالی‌های سخت‌کد شده فراتر رفته و استراتژی بهینه جست‌وجو را در لحظه و بر اساس پرس‌وجوی کاربر تصمیم‌گیری می‌کند.

سیستم‌های قدیمی تولید بازیابی‌افزا (RAG) — شبیه دانش‌آموزی که قبل از جواب دادن، اول کتاب درسی را باز می‌کند و از آن نقل می‌آورد — اغلب از منطقی صلب و انعطاف‌ناپذیر رنج می‌برند. همان‌طور که در تحلیل قبلی ما درباره‌ی کاهش هزینه‌های استنتاج در DeepInfra اشاره کردیم، گلوگاه فعلی توسعه‌دهندگان دیگر فقط هزینه نیست، بلکه هوشمندیِ فرآیند بازیابی است. اکثر سیستم‌ها بدون توجه به اینکه آیا مدل پاسخ را می‌داند یا خیر، جست‌وجو را فعال می‌کنند که منجر به اتلاف توکن (Token) — تکه‌های کوچکی از متن که مدل تکه‌تکه می‌خورد — و افزایش تأخیر می‌شود.

گذار به استفاده خودکار از ابزار

بر اساس مستندات آموزشی dev.to، تغییر بنیادین در این است که به‌جای توالی‌های کدنویسی شده، امضاهای توابع (Function Signatures) و توصیفات آن‌ها به مدل داده می‌شود. مدل بر اساس فیلد description در اعلان تابع تصمیم می‌گیرد که آیا به یک ابزار نیاز دارد یا خیر. این رویکرد در واقع بخشی از تغییر پارادایم مدیریت ابزارهایی است که مدل را از یک مخزن دانش ساده به یک کنترل‌کننده فعال تبدیل می‌کند. برای مثال، اگر پرس‌وجوی کاربر ساده باشد، مانند «۲ به‌علاوه ۲ چند می‌شود؟»، مدل به‌طور کامل از مرحله جست‌وجو عبور کرده و پاسخ را مستقیماً تولید می‌کند.

با قابلیت استفاده از ابزار (Tool Use)، جریان کار از یک خط‌لوله سخت به یک فرآیند تصمیم‌گیری پویا تبدیل می‌شود: پرسش $\rightarrow$ تصمیم مدل $\rightarrow$ اجرای search() در صورت نیاز $\rightarrow$ تصمیم مجدد مدل $\rightarrow$ پاسخ نهایی. این انعطاف‌پذیری زمانی حیاتی است که پرس‌وجوی مناسب برای جست‌وجو با سؤال اصلی کاربر متفاوت باشد، یا زمانی که برای بهبود پاسخ نهایی، نیاز به چندین جست‌وجوی مجزا با عبارات مختلف باشد.

وقتی نیاز به جست‌وجو تشخیص داده شود، سیستم از کتابخانه psycopg2 برای برقراری اتصال به پایگاه‌داده و از مدل gemini-embedding-001 برای تولید یک بردار معنایی (Embedding) — مثل کارت معرفی عددی برای هر واژه که می‌گوید این کلمه «همسایه‌ی» چه کلمات دیگری است — با ۷۶۸ بُعد استفاده می‌کند. مدل سپس آرگومان‌های دقیق تابع search_documents را، شامل رشته‌ی پرس‌وجو (query) و تعداد اسناد بازیابی (top_k)، تعیین می‌کند.

سازوکارهای فنی اجرای ابزار

تعامل بین کاربر، مدل و محیط اجرا طبق یک الگوی تبادل مشخص پیش می‌رود:

  • درخواست اولیه: کاربر، ابزارهای در دسترس و سؤال خود را به مدل ارسال می‌کند.
  • فراخوانی تابع: مدل با یک شیء function_call پاسخ می‌دهد (به عنوان مثال: name: "search_documents", args: { query: "F1 score" }).
  • اجرا: کد پایتون شما تابع را اجرا کرده و نتایج را از پایگاه‌داده برداری (Vector Database) بازیابی می‌کند.
  • نتیجه تابع: کد، مقدار function_result را به مدل بازمی‌گرداند.
  • سنتز نهایی: مدل بررسی می‌کند که آیا اکنون اطلاعات کافی برای ارائه پاسخ متنی را در اختیار دارد یا خیر.

در پیاده‌سازی پایه (در فایل 06_tool_basic.py)، تابع search_documents از یک پرس‌وجوی SQL برای محاسبه شباهت با استفاده از عملگر برداری <=> استفاده می‌کند: SELECT title, body, category, 1 - (embedding <=> %s::vector) AS similarity. این سازوکار تضمین می‌کند که مرتبط‌ترین اسناد بر اساس فاصله برداری استخراج شوند.

مسیریابی از طریق توصیفات دقیق

این پیاده‌سازی با ارائه چندین ابزار به مدل، مسیریابی (Routing) پیشرفته‌ای را معرفی می‌کند. برای مثال، توسعه‌دهنده در فایل 07_tool_multi.py دو ابزار جست‌وجوی مجزا تعریف کرده است:

  • search_documents: ابزاری توصیف شده برای «جست‌وجو در تمام دسته‌ها، زمانی که دسته نامعلوم است یا سؤال چندین حوزه را پوشش می‌دهد.»
  • search_by_category: ابزاری مخصوص برای جست‌وجو در دسته‌های «ML، Python یا Cloud» در صورتی که سؤال به‌طور واضح یک دسته خاص را هدف قرار داده باشد.

در این ساختار، توصیفات ابزارها به منطق اصلی مسیریابی تبدیل می‌شوند. مهندسی پرامپت (Prompt Engineering) — هنر سؤال درست پرسیدن برای گرفتن بهترین جواب — در نوشتن این توصیفات، تضمین می‌کند که مدل بهینه‌ترین ابزار را برای هر وظیفه انتخاب کند. یک توصیف مبهم اغلب منجر به انتخاب تصادفی ابزار می‌شود، در حالی که توصیفات دقیق، نرخ موفقیت مسیریابی را تقریباً در هر بار اجرا به حداکثر می‌رسانند.

حلقه عامل‌محور و حافظه

پیشرفت اصلی در «حلقه‌ی عامل‌محور» (Agentic Loop) است که در فایل 08_tool_agent.py پیاده شده است. در این ساختار، تاریخچه گفتگو به عنوان حافظه عامل (Agent Memory) عمل می‌کند. هر فراخوانی ابزار و نتیجه‌ی متعاقب آن به لیستی به نام contents اضافه شده و در هر گام دوباره به مدل تزریق می‌شود.

این قابلیت به مدل اجازه می‌دهد استدلال‌های چندمرحله‌ای (Multi-step Reasoning) انجام دهد. با این حال، پیاده‌سازی این حلقه‌ها همیشه بدون نقص نیست؛ چنان‌که برخی تحلیل‌ها نشان می‌دهند شکست عامل‌های هوش مصنوعی لزوماً به دلیل حجم متن نیست، بلکه ریشه در نحوه بازخوانی اطلاعات دارد. برای مثال، وقتی کاربر درباره معیارهای ارزیابی ML و پیاده‌سازی آن‌ها در پایتون می‌پرسد، عامل با یک جست‌وجوی اولیه متوقف نمی‌شود. بلکه ممکن است ابتدا جست‌وجویی برای شناسایی معیارها انجام دهد و سپس یک جست‌وجوی هدفمند دوم برای یافتن قطعه‌کدهای scikit-learn اجرا کند و در نهایت پاسخ را سنتز نماید. در مثال ارائه شده، عامل این کار را در ۳ گام به پایان رساند:

۱. search_by_category({'query': 'ML evaluation metrics', 'category': 'ML'})
۲. search_by_category({'query': 'scikit-learn model evaluation', 'category': 'ML'})
۳. ترکیب نهایی اطلاعات و ارائه پاسخ.

پل پیاده‌سازی

تابع dispatch() به عنوان پل ارتباطی حیاتی بین درخواست‌های رشته‌ای مدل و اجرای واقعی کد پایتون عمل می‌کند. این تابع نام‌هایی مانند search_by_category را به منطق پایتون متناظر نگاشت می‌کند تا اطمینان حاصل شود که قصد مدل به یک عملیات دیتابیسی تبدیل می‌شود. همچنین تابع run_agent این فرآیند را با یک محدودیت max_steps (که پیش‌فرض آن ۸ است) مدیریت می‌کند تا از ایجاد حلقه‌های بی‌نهایت جلوگیری شود و در عین حال فرصت کافی برای جمع‌آوری اطلاعات مکمل به مدل داده شود.

این رویکرد، خط‌لوله RAG را به یک عامل (Agent) پویا تبدیل می‌کند. مدل به‌صورت تکرارشونده اطلاعات را جمع‌آوری کرده و پیشرفت خود را با هدف کاربر می‌سنجد تا زمانی که تصمیم بگیرد پاسخ قطعی را تولید کند.

برای توسعه‌دهندگان، این یعنی انتقال بار منطقی از نوشتن زنجیره‌های پیچیده if-else در پایتون به اصلاح توصیفات متنی ابزارها. تاریخچه گفتگو باعث می‌شود مدل بداند چه چیزی را بازیابی کرده و چه چیزی هنوز ناقص است.

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

گام بعدی شما

  • بررسی ساختار function_call در مستندات Gemini برای جایگزینی منطق‌های شرطی سخت در اپلیکیشن‌های خود.
  • تمرکز بر نوشتن توصیفات (description) دقیق برای ابزارها به‌جای پیچه کردن کد پایتون.
  • تست کردن محدودیت max_steps برای یافتن تعادل میان دقت پاسخ و هزینه استنتاج.

اما تأثیر این رویکرد بر مدیریت حافظه در مقیاس بالا هنوز ناشناخته است — در تحلیل ما درباره پروتکل زمینه مدل (MCP) به این موضوع بپردازید.

چرا این موضوع مهم است؟

این تغییر با تکیه بر تخصص مدل در تصمیم‌گیری، اتلاف توکن‌ها و تأخیر در سیستم‌های RAG را به‌طور چشم‌گیر کاهش می‌دهد. اعتبار این روش در توانایی مدل برای انجام جست‌وجوهای چندمرحله‌ای تأیید شده است.

تأثیر برای ایران

توسعه‌دهندگان ایرانی که از Gemini API استفاده می‌کنند، می‌توانند با این متد هزینه‌های استنتاج خود را کاهش دهند و دقت بات‌های سازمانی خود را بدون تغییر در زیرساخت دیتابیس بالا ببرند.

·نگاه ما
تحریریه دات‌هوش

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

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.