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

ترکیب Pydantic و OpenAI توهمات ارجاع در عامل‌های هوش مصنوعی را حذف کرد

·۳۰ شهریور ۱۴۰۵۳ دقیقه مطالعه
راهنما
کد در حال اجرا در محیط توسعه، نمایشگر برنامه‌نویسی با رابط کاربری تیره و متغیرهای فعال
کد در حال اجرا در محیط توسعه، نمایشگر برنامه‌نویسی با رابط کاربری تیره و متغیرهای فعال
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی مهندسی پرامپت با قراردادهای سخت‌گیرانه تایپ‌شده (Typed Contracts) برای حذف توهمات ارجاع؛ در حالی که پیش‌تر تلاش‌ها بر روی بهبود پرامپت بود، اکنون کنترل در سطح Runtime اعمال می‌شود.

اگر امروز یک عامل هوش مصنوعی را برای استخراج داده از مستندات شرکتتان به کار می‌گیرید، احتمالاً با مشکل ارجاعات ساختگی یا همان توهمات مواجه شده‌اید. تصور کنید سیستمی داشته باشید که فراخوانی ابزارها را به‌جای متن خام، به‌عنوان طرح‌واره‌های تایپ‌شده (Typed Schemas) پردازش کند. با به‌کارگیری این رویکرد در یک معماری عامل‌محور (Agentic) آماده برای محیط تولید با استفاده از OpenAI و Pydantic، توسعه‌دهندگان می‌توانند قراردادهای مرزی سخت‌گیرانه‌ای را اعمال کنند تا ارجاعات توهمی حذف شوند. این سیستم اجازه می‌دهد هر شناسه‌ی منبعی (Source ID) که در مرحله جست‌وجو واقعاً بازیابی نشده است، به‌صورت برنامه‌ریزی‌شده پاک‌سازی شود.

بر اساس مستندات منتشرشده در ۲۱ سپتامبر ۲۰۲۶، استفاده از این معماری اجازه می‌دهد تا یک لایه دفاعی معرفی شود که هر آرگومان ابزار و هر پاسخ نهایی را در برابر یک کلاس پایتون پیش‌تعریف‌شده اعتبارسنجی می‌کند. اکثر عامل‌های هوش مصنوعی با مشکل «مبنی‌سازی» (Grounding) دست‌وپنجه نرم می‌کنند؛ وضعیتی که در آن مدل ادعا می‌کند یک حقیقت از سندی خاص استخراج شده، اما در واقع آن ارجاع را اختراع کرده است. این مشکل به این دلیل تداوم می‌یابد که خروجی‌های استاندارد مدل‌های زبانی بزرگ (LLM) ساختاریافته نیستند.

همان‌طور که در تحلیل قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، تکیه بر «درخواست از مدل برای صادق بودن» هرگز نتیجه‌بخش نیست. مدل‌های زبانی — مثل کتابخانه‌داری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب می‌دهد — به‌طور پیش‌فرض خروجی‌های غیرساختاریافته تولید می‌کنند که کنترل آن‌ها دشوار است.

حفاظ‌های فنی سیستم

این سامانه برای تضمین قابلیت اطمینان بر سه رکن اصلی استوار است:

  • طرح‌واره‌های تایپ‌شده: با استفاده از Pydantic، عامل برای ورودی‌ها SearchParams و برای خروجی‌ها GroundedAgentResponse را تعریف می‌کند. در SearchParams تعداد نتایج (top_k) بین ۱ تا ۵ محدود شده و یک فیلتر دسته‌بندی اختیاری گنجانده شده است. در مقابل، GroundedAgentResponse مدل را مجبور می‌کند به‌جای نوشتن پاراگراف‌های محاوره‌ای، یک پاسخ مستقیم که از متن استخراج شده و لیستی دقیق از شناسه‌های تکه‌های متن (cited_chunk_ids) را برگرداند.
  • شبکه‌سازی دفاعی: ابزار fetch_live_content از کتابخانه httpx با مهلت زمانی (Timeout) سخت‌گیرانه ۴ ثانیه‌ای (شامل ۲ ثانیه برای اتصال) استفاده می‌کند. این ابزار دارای مدیریت استثنا (Exception Handling) برای خطاهای HTTPStatusError و RequestError است تا از کرش کردن عامل در زمان شکست APIهای خارجی جلوگیری کند. این ابزار داده‌های خام JSON را از نقاط انتهایی مانند jsonplaceholder.typicode.com دریافت کرده و آن‌ها را به اشیاء استاندارد ContentChunk تبدیل می‌کند که شامل URL منبع، متن و یک امتیاز (Score) است.
  • تأیید قطعی (Deterministic): در گام نهایی، یک مرحله سخت‌گیرانه برای مقایسه شناسه‌های ارجاع داده شده توسط مدل با مجموعه‌ی شناسه‌هایی که واقعاً توسط ابزار جست‌وجو بازگردانده شده‌اند، اجرا می‌شود. اگر مدل شناسه‌ای را اختراع کند، سیستم هشدار [Verification Alert] صادر کرده و آن را پیش از نمایش به کاربر به‌طور خودکار حذف می‌کند.

گردش‌کار پیاده‌سازی

به نقل از گزارش فنی این پروژه، عامل یک حلقه چهارمرحله‌ای را اجرا می‌کند. ابتدا مدلی مانند gpt-4o-mini با یک پرامپت سیستمی (System Prompt) فراخوانی می‌شود که به آن دستور می‌دهد پاسخ‌ها را صرفاً و به‌طور سخت‌گیرانه بر اساس تکه‌های بازیابی شده بنا کند. مدل با استفاده از یک طرح‌واره tool_definitions که مستقیماً از Pydantic مشتق شده است، تصمیم می‌گیرد که آیا به ابزار نیاز دارد یا خیر.

در مرحله دوم، فراخوانی ابزار اجرا می‌شود. سیستم رشته‌ی func_args_str را از طریق Pydantic تجزیه می‌کند تا از خطاهای فرمت یا تزریق پرامپت (Injection) جلوگیری شود. اگر خطای ValidationError یا JSONDecodeError رخ دهد، به‌جای توقف برنامه، یک پیام خطای ساختاریافته به مدل بازگردانده می‌شود تا مدل بتواند خطای خود را اصلاح کند.

سپس با استفاده از متد beta.chat.completions.parse تضمین می‌شود که پاسخ نهایی دقیقاً با طرح‌واره JSON مورد نیاز مطابقت دارد. این کار تضمین می‌کند که خروجی حتماً یک شیء معتبر از نوع GroundedAgentResponse باشد.

در نهایت، متد استاتیک _verify_citations اجرا می‌شود. این بررسی قطعی تضمین می‌کند که عامل هیچ شناسه‌ی ارجاعی غیرموجود را اختراع نکرده باشد و بدین ترتیب اعتماد کاربر در سمت کلاینت حفظ شود.

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

برای توسعه‌دهندگان، این یعنی کاهش شدید نیاز به بازبینی دستی پاسخ‌ها. با انتقال اعتماد از مدل به اعتبارسنج Pydantic، تیم‌ها می‌توانند عامل‌ها را در محیط‌های تولیدی که در آن‌ها شواهد قابل تأیید یک الزام قانونی یا عملیاتی است، مستقر کنند.

گام بعدی شما

برای پیاده‌سازی این سیستم، شما باید کتابخانه‌های httpx و pydantic و openai را از طریق pip نصب کنید. سپس پیش از مقداردهی اولیه کلاینت OpenAI، مرزهای خروجی خود را به‌صورت مدل‌های Pydantic تعریف نمایید.

  • نصب کتابخانه‌های مورد نیاز.
  • تعریف مدل‌های Pydantic برای ورودی و خروجی.
  • جایگزینی متدهای Parse قدیمی با beta.chat.completions.parse برای اجبار مدل به خروجی JSON.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

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

این متدولوژی با تکیه بر اعتبار ساختارهای داده‌ای Pydantic، امکان استقرار عامل‌های هوش مصنوعی در حوزه‌های حساس (مانند حقوق و پزشکی) را فراهم می‌کند. در واقع، اعتماد از سطح احتمالی مدل به سطح قطعی کد منتقل شده است.

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

برنامه‌نویسان ایرانی که در حال توسعه دستیارهای سازمانی هستند، می‌توانند با این متد هزینه بازبینی دستی پاسخ‌ها را کاهش دهند. دسترسی به این قابلیت نیازمند APIهای OpenAI است که از طریق سرویس‌های واسط در دسترس است.

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

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

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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