Gemini API به صورت پیشفرض پاسخها را به صورت متن بدون ساختار برمیگرداند. با این حال، برخی موارد استفاده به متن ساختاریافته مانند JSON نیاز دارند. به عنوان مثال، ممکن است از پاسخ برای سایر کارهای پایین دستی که به یک طرح داده ثابت نیاز دارند استفاده کنید.
برای اطمینان از اینکه خروجی تولید شده مدل همیشه به یک طرح واره خاص پایبند است، می توانید یک طرح پاسخ تعریف کنید، که مانند یک طرح اولیه برای پاسخ های مدل عمل می کند. سپس می توانید مستقیماً داده ها را از خروجی مدل با پس پردازش کمتر استخراج کنید.
در اینجا چند نمونه آورده شده است:
اطمینان حاصل کنید که پاسخ یک مدل JSON معتبر تولید می کند و با طرح ارائه شده شما مطابقت دارد.
به عنوان مثال، مدل میتواند ورودیهای ساختاریافتهای را برای دستور العملها ایجاد کند که همیشه شامل نام دستور غذا، فهرست مواد تشکیل دهنده و مراحل است. سپس می توانید به راحتی این اطلاعات را در رابط کاربری برنامه خود تجزیه و نمایش دهید.نحوه پاسخگویی یک مدل را در طول وظایف طبقه بندی محدود کنید.
به عنوان مثال، میتوانید مدل را به جای برچسبهایی که مدل تولید میکند (که میتواند درجهای از تنوع مانندgood
،positive
،positive
یاnegative
داشته باشد)، متنی را با مجموعهای از برچسبها (مثلاً مجموعهای خاص از فهرستها مانند مثبت وnegative
)،bad
کند.
این راهنما به شما نشان میدهد که چگونه میتوانید خروجی JSON را با ارائه responseSchema
در یک فراخوان برای generateContent
ایجاد کنید. بر روی ورودی فقط متن تمرکز دارد، اما Gemini همچنین میتواند پاسخهای ساختاری به درخواستهای چندوجهی تولید کند که شامل تصاویر، ویدیوها و صدا به عنوان ورودی است.
در پایین این صفحه نمونه های بیشتری وجود دارد، مانند نحوه تولید مقادیر enum به عنوان خروجی . برای مشاهده نمونههای اضافی از نحوه تولید خروجی ساختاریافته، فهرست طرحوارههای نمونه و پاسخهای مدل را در اسناد Google Cloud بررسی کنید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، راهنمای شروع را کامل کنید، که نحوه راهاندازی پروژه Firebase را توضیح میدهد، برنامه خود را به Firebase متصل کنید، SDK را اضافه کنید، سرویس Vertex AI را راهاندازی کنید، و یک نمونه GenerativeModel
ایجاد کنید.
مرحله 1 : یک طرح پاسخ را تعریف کنید
برای تعیین ساختار خروجی مدل، نام فیلدها و نوع داده مورد انتظار برای هر فیلد، یک طرح پاسخ تعریف کنید.
هنگامی که یک مدل پاسخ خود را تولید می کند، از نام فیلد و زمینه از درخواست شما استفاده می کند. برای اینکه منظور شما واضح باشد، توصیه می کنیم از یک ساختار واضح، نام فیلدهای بدون ابهام و حتی توضیحات در صورت نیاز استفاده کنید.
ملاحظاتی برای طرحواره های پاسخ
هنگام نوشتن طرح پاسخ به موارد زیر توجه کنید:
اندازه طرح پاسخ در حد توکن ورودی به حساب می آید.
ویژگی طرح پاسخ از انواع MIME پاسخ زیر پشتیبانی می کند:
application/json
: خروجی JSON همانطور که در طرح پاسخ تعریف شده است (مفید برای الزامات خروجی ساختاریافته)text/x.enum
: خروجی مقدار enum همانطور که در طرح پاسخ تعریف شده است (مفید برای وظایف طبقه بندی)
ویژگی طرحواره پاسخ از فیلدهای طرحواره زیر پشتیبانی می کند:
enum
items
maxItems
nullable
properties
required
اگر از یک فیلد پشتیبانینشده استفاده میکنید، مدل همچنان میتواند به درخواست شما رسیدگی کند، اما فیلد را نادیده میگیرد. توجه داشته باشید که لیست بالا زیرمجموعه ای از شی طرح OpenAPI 3.0 است (به مرجع طرحواره Vertex AI مراجعه کنید).
بهطور پیشفرض، برای Vertex AI در Firebase SDK، همه فیلدها ضروری در نظر گرفته میشوند مگر اینکه آنها را بهعنوان اختیاری در آرایه
optionalProperties
مشخص کنید. برای این فیلدهای اختیاری، مدل می تواند فیلدها را پر کند یا آنها را رد کند.توجه داشته باشید که این برخلاف رفتار پیشفرض برای Vertex AI Gemini API است.
مرحله 2 : یک درخواست با یک طرح پاسخ برای تولید JSON ارسال کنید
مثال زیر نحوه تولید خروجی JSON ساخت یافته را نشان می دهد.
برای تولید خروجی ساختاریافته، باید در طول مقداردهی اولیه مدل، responseMimeType
مناسب (در این مثال، application/json
) و همچنین responseSchema
را که میخواهید مدل استفاده کند، مشخص کنید.
استفاده از responseSchema
توسط همه مدل های Gemini (به جز مدل های Gemini 1.0 ) پشتیبانی می شود.
نحوه انتخاب یک مدل و به صورت اختیاری مکان مناسب برای مورد استفاده و برنامه خود را بیاموزید.
نمونه های اضافی
برای مشاهده نمونههای اضافی از نحوه استفاده و تولید خروجی ساختاریافته، فهرست طرحوارههای نمونه و پاسخهای مدل را در اسناد Google Cloud بررسی کنید.
مقادیر enum را به عنوان خروجی تولید کنید
مثال زیر نحوه استفاده از طرح پاسخ را برای یک کار طبقه بندی نشان می دهد. از مدل خواسته می شود تا ژانر یک فیلم را بر اساس توضیحات آن شناسایی کند. خروجی یک مقدار enum متن ساده است که مدل از لیستی از مقادیری که در طرح پاسخ ارائه شده تعریف شده اند، انتخاب می کند.
برای انجام این کار طبقهبندی ساختاریافته، باید در طول اولیهسازی مدل، responseMimeType
مناسب (در این مثال، text/x.enum
) و همچنین responseSchema
را که میخواهید مدل استفاده کند، مشخص کنید.
نحوه انتخاب یک مدل و به صورت اختیاری مکان مناسب برای مورد استفاده و برنامه خود را بیاموزید.
گزینه های دیگر برای کنترل تولید محتوا
- در مورد طراحی سریع بیشتر بیاموزید تا بتوانید مدل را تحت تأثیر قرار دهید تا خروجی خاصی برای نیازهای شما ایجاد کند.
- پارامترهای مدل را برای کنترل نحوه ایجاد پاسخ توسط مدل پیکربندی کنید. برای مدلهای Gemini ، این پارامترها شامل حداکثر توکنهای خروجی، دما، topK و topP هستند. برای مدل های Imagen ، این موارد شامل نسبت ابعاد، تولید شخص، واترمارک و غیره است.
- از تنظیمات ایمنی برای تنظیم احتمال دریافت پاسخ هایی که ممکن است مضر تلقی شوند، از جمله سخنان مشوق عداوت و تنفر و محتوای صریح جنسی استفاده کنید.
- دستورالعمل های سیستم را برای هدایت رفتار مدل تنظیم کنید. این ویژگی مانند یک «مقدمه» است که قبل از اینکه مدل در معرض هر دستورالعمل دیگری از کاربر نهایی قرار گیرد، اضافه میکنید.
درباره تجربه خود با Vertex AI در Firebase بازخورد بدهید