تولید خروجی ساخت یافته (مانند JSON) با استفاده از API Gemini، تولید خروجی ساختاریافته (مانند JSON) با استفاده از Gemini API


Gemini API به صورت پیش‌فرض پاسخ‌ها را به صورت متن بدون ساختار برمی‌گرداند. با این حال، برخی موارد استفاده به متن ساختاریافته مانند JSON نیاز دارند. به عنوان مثال، ممکن است از پاسخ برای سایر کارهای پایین دستی که به یک طرح داده ثابت نیاز دارند استفاده کنید.

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

در اینجا چند نمونه آورده شده است:

  • اطمینان حاصل کنید که پاسخ یک مدل JSON معتبر تولید می کند و با طرح ارائه شده شما مطابقت دارد.
    به عنوان مثال، مدل می‌تواند ورودی‌های ساختاریافته‌ای را برای دستور العمل‌ها ایجاد کند که همیشه شامل نام دستور غذا، فهرست مواد تشکیل دهنده و مراحل است. سپس می توانید به راحتی این اطلاعات را در رابط کاربری برنامه خود تجزیه و نمایش دهید.

  • نحوه پاسخگویی یک مدل را در طول وظایف طبقه بندی محدود کنید.
    به عنوان مثال، می‌توانید مدل را به جای برچسب‌هایی که مدل تولید می‌کند (که می‌تواند دارای درجه‌ای از تنوع مانند good ، positive ، متنی را با مجموعه‌ای از برچسب‌ها (مثلاً مجموعه‌ای خاص از فهرست‌ها مانند positive و negative ) حاشیه‌نویسی کند. ، negative یا bad ).

این راهنما به شما نشان می‌دهد که چگونه می‌توانید خروجی JSON را با ارائه responseSchema در یک فراخوان برای generateContent ایجاد کنید. بر روی ورودی فقط متن تمرکز دارد، اما Gemini همچنین می‌تواند پاسخ‌های ساختاری به درخواست‌های چندوجهی تولید کند که شامل تصاویر، ویدیوها و صدا به عنوان ورودی است.

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

قبل از شروع

اگر قبلاً این کار را نکرده‌اید، راهنمای شروع به کار برای Vertex AI in Firebase SDK را تکمیل کنید. مطمئن شوید که تمام کارهای زیر را انجام داده اید:

  1. یک پروژه Firebase جدید یا موجود راه اندازی کنید، از جمله استفاده از طرح قیمت گذاری Blaze و فعال کردن API های مورد نیاز.

  2. برنامه خود را به Firebase وصل کنید، از جمله ثبت برنامه خود و افزودن پیکربندی Firebase به برنامه خود.

  3. SDK را اضافه کنید و سرویس Vertex AI و مدل تولیدی را در برنامه خود راه اندازی کنید.

بعد از اینکه برنامه خود را به Firebase متصل کردید، SDK را اضافه کردید و سرویس Vertex AI و مدل تولیدی را راه اندازی کردید، آماده فراخوانی Gemini API هستید.

مرحله 1 : یک طرح پاسخ را تعریف کنید

برای تعیین ساختار خروجی مدل، نام فیلدها و نوع داده مورد انتظار برای هر فیلد، یک طرح پاسخ تعریف کنید.

هنگامی که یک مدل پاسخ خود را تولید می کند، از نام فیلد و زمینه از درخواست شما استفاده می کند. برای اینکه منظور شما واضح باشد، توصیه می کنیم از یک ساختار واضح، نام فیلدهای بدون ابهام و حتی توضیحات در صورت نیاز استفاده کنید.

ملاحظاتی برای طرحواره های پاسخ

هنگام نوشتن طرح پاسخ به موارد زیر توجه کنید:

  • اندازه طرح پاسخ در حد توکن ورودی به حساب می آید.

  • ویژگی طرح پاسخ از انواع MIME پاسخ زیر پشتیبانی می کند:

    • application/json : خروجی JSON همانطور که در طرح پاسخ تعریف شده است (مفید برای الزامات خروجی ساختاریافته)

    • text/x.enum : خروجی مقدار enum همانطور که در طرح پاسخ تعریف شده است (مفید برای وظایف طبقه بندی)

  • ویژگی طرحواره پاسخ از فیلدهای طرحواره زیر پشتیبانی می کند:

    enum
    items
    maxItems
    nullable
    properties
    required

    اگر از یک فیلد پشتیبانی‌نشده استفاده می‌کنید، مدل همچنان می‌تواند به درخواست شما رسیدگی کند، اما فیلد را نادیده می‌گیرد. توجه داشته باشید که لیست بالا زیرمجموعه ای از شی طرح OpenAPI 3.0 است (به مرجع طرحواره Vertex AI مراجعه کنید).

  • به‌طور پیش‌فرض، برای Vertex AI in Firebase SDK، همه فیلدها ضروری در نظر گرفته می‌شوند مگر اینکه آنها را به‌عنوان اختیاری در آرایه optionalProperties مشخص کنید. برای این فیلدهای اختیاری، مدل می تواند فیلدها را پر کند یا آنها را رد کند.

    توجه داشته باشید که این برخلاف رفتار پیش‌فرض برای Vertex AI Gemini API است.

مرحله 2 : یک درخواست با یک طرح پاسخ برای تولید JSON ارسال کنید

مثال زیر نحوه تولید خروجی JSON ساخت یافته را نشان می دهد.

برای تولید خروجی ساختاریافته، باید در طول مقداردهی اولیه مدل، responseMimeType مناسب (در این مثال، application/json ) و همچنین responseSchema را که می‌خواهید مدل استفاده کند، مشخص کنید.

استفاده از responseSchema توسط Gemini 1.5 Pro و Gemini 1.5 Flash پشتیبانی می شود.

نحوه انتخاب مدل Gemini و به صورت اختیاری مکان مناسب برای مورد استفاده و برنامه خود را بیاموزید.

نمونه های اضافی

برای مشاهده نمونه‌های اضافی از نحوه استفاده و تولید خروجی ساختاریافته، فهرست طرح‌واره‌های نمونه و پاسخ‌های مدل را در اسناد Google Cloud بررسی کنید.

مقادیر enum را به عنوان خروجی تولید کنید

مثال زیر نحوه استفاده از طرح پاسخ را برای یک کار طبقه بندی نشان می دهد. از مدل خواسته می شود تا ژانر یک فیلم را بر اساس توضیحات آن شناسایی کند. خروجی یک مقدار enum متن ساده است که مدل از لیستی از مقادیری که در طرح پاسخ ارائه شده تعریف شده اند، انتخاب می کند.

برای انجام این کار طبقه‌بندی ساختاریافته، باید در طول اولیه‌سازی مدل، responseMimeType مناسب (در این مثال، text/x.enum ) و همچنین responseSchema که می‌خواهید مدل استفاده کند، مشخص کنید.

نحوه انتخاب مدل Gemini و به صورت اختیاری مکان مناسب برای مورد استفاده و برنامه خود را بیاموزید.

گزینه های دیگر برای کنترل تولید محتوا

  • در مورد طراحی سریع بیشتر بیاموزید تا بتوانید مدل را تحت تأثیر قرار دهید تا خروجی خاصی برای نیازهای شما ایجاد کند.
  • پارامترهای مدل را برای کنترل نحوه ایجاد پاسخ توسط مدل پیکربندی کنید. این پارامترها شامل حداکثر توکن های خروجی، دما، topK و topP هستند.
  • از تنظیمات ایمنی برای تنظیم احتمال دریافت پاسخ هایی که ممکن است مضر تلقی شوند، از جمله سخنان مشوق عداوت و تنفر و محتوای صریح جنسی استفاده کنید.
  • دستورالعمل های سیستم را برای هدایت رفتار مدل تنظیم کنید. این ویژگی مانند یک «مقدمه» است که قبل از اینکه مدل در معرض هر دستورالعمل دیگری از کاربر نهایی قرار گیرد، اضافه می‌کنید.


درباره تجربه خود با Vertex AI in Firebase بازخورد بدهید