با استفاده از منطق هوش مصنوعی فایربیس ، برنامهها و ویژگیهای وب مبتنی بر هوش مصنوعی را با استنتاج ترکیبی بسازید. استنتاج ترکیبی، اجرای استنتاج با استفاده از مدلهای روی دستگاه را در صورت وجود و بازگشت یکپارچه به مدلهای میزبانی شده در فضای ابری را در غیر این صورت (و برعکس) امکانپذیر میکند.
این صفحه نحوه شروع به کار با SDK کلاینت را شرح میدهد. پس از تکمیل این تنظیمات استاندارد، گزینهها و قابلیتهای پیکربندی اضافی (مانند خروجی ساختاریافته) را بررسی کنید.
توجه داشته باشید که استنتاج روی دستگاه برای برنامههای وب که روی کروم دسکتاپ اجرا میشوند، پشتیبانی میشود.
موارد استفاده پیشنهادی و قابلیتهای پشتیبانیشده
موارد استفاده توصیه شده:
استفاده از یک مدل روی دستگاه برای استنتاج، موارد زیر را ارائه میدهد:
- حریم خصوصی پیشرفته
- زمینه محلی
- استنتاج بدون هزینه
- قابلیت آفلاین
استفاده از قابلیتهای ترکیبی موارد زیر را ارائه میدهد:
- صرف نظر از مدل دستگاه یا اتصال به اینترنت، به ۱۰۰٪ مخاطبان خود دسترسی داشته باشید
قابلیتها و ویژگیهای پشتیبانیشده برای استنتاج روی دستگاه:
استنتاج روی دستگاه فقط از تولید متن تک نوبتی ( نه چت) با خروجی استریمینگ یا غیر استریمینگ پشتیبانی میکند. این قابلیت از قابلیتهای تولید متن زیر پشتیبانی میکند:
تولید متن از ورودی فقط متنی
تولید متن از ورودی متن و تصویر ، به ویژه انواع تصاویر ورودی JPEG و PNG
همچنین میتوانید خروجی ساختاریافته، شامل JSON و enums، تولید کنید .
قبل از اینکه شروع کنی
به موارد زیر توجه کنید:
استنتاج با استفاده از یک مدل روی دستگاه از Prompt API کروم استفاده میکند؛ در حالی که استنتاج با استفاده از یک مدل میزبانی ابری از ارائهدهنده API Gemini انتخابی شما (یا Gemini Developer API یا Vertex AI Gemini API ) استفاده میکند.
این صفحه نحوه شروع توسعه با استفاده از localhost را شرح میدهد (برای کسب اطلاعات بیشتر در مورد استفاده از APIها در localhost به مستندات Chrome مراجعه کنید).
پس از تکمیل این تنظیمات استاندارد، گزینهها و قابلیتهای پیکربندی اضافی (مانند خروجی ساختاریافته) را بررسی کنید.
بعد از اینکه ویژگی مورد نظر خود را پیادهسازی کردید، میتوانید به کاربران نهایی این امکان را بدهید که آن را در برنامهی اصلی خود امتحان کنند .
شروع کار روی لوکال هاست
این مراحل شروع، تنظیمات کلی مورد نیاز برای هر درخواست پشتیبانیشدهای که میخواهید ارسال کنید را شرح میدهند.
مرحله ۱ : کروم و Prompt API را برای استنتاج روی دستگاه تنظیم کنید
مطمئن شوید که از نسخه جدید کروم استفاده میکنید. آن را از طریق chrome://settings/help بهروزرسانی کنید.
استنتاج روی دستگاه از Chrome v139 و بالاتر در دسترس است.با تنظیم پرچم زیر روی Enabled ، مدل چندوجهی روی دستگاه را فعال کنید:
-
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
-
کروم را مجدداً راهاندازی کنید.
(اختیاری) قبل از اولین درخواست، مدل روی دستگاه را دانلود کنید.
رابط برنامهنویسی کاربردی Prompt در کروم تعبیه شده است؛ با این حال، مدل روی دستگاه به طور پیشفرض در دسترس نیست. اگر قبل از اولین درخواست خود برای استنتاج روی دستگاه، هنوز مدل را دانلود نکرده باشید، درخواست به طور خودکار دانلود مدل را در پسزمینه آغاز میکند.
ابزارهای توسعهدهنده > کنسول را باز کنید.
دستور زیر را اجرا کنید:
await LanguageModel.availability();مطمئن شوید که خروجی
available،downloadingیاdownloadableاست.اگر خروجی
downloadableاست، دانلود مدل را با اجرای دستور زیر آغاز کنید:await LanguageModel.create();میتوانید از تابع فراخوانی
monitorزیر برای گوش دادن به پیشرفت دانلود استفاده کنید و قبل از ارسال درخواست، ازavailableمدل مطمئن شوید:const session = await LanguageModel.create({ monitor(m) { m.addEventListener("downloadprogress", (e) => { console.log(`Downloaded ${e.loaded * 100}%`); }); }, });
مرحله 2 : یک پروژه Firebase راهاندازی کنید و برنامه خود را به Firebase متصل کنید
وارد کنسول Firebase شوید و سپس پروژه Firebase خود را انتخاب کنید.
اگر از قبل پروژه Firebase ندارید، روی دکمه کلیک کنید تا یک پروژه Firebase جدید ایجاد شود و سپس از یکی از گزینههای زیر استفاده کنید:
گزینه ۱ : با وارد کردن نام پروژه جدید در اولین مرحله از گردش کار، یک پروژه Firebase کاملاً جدید (و پروژه Google Cloud زیربنایی آن به طور خودکار) ایجاد کنید.
گزینه ۲ : با کلیک روی «افزودن فایربیس به پروژه گوگل Google Cloud » (در پایین صفحه)، « افزودن فایربیس» را به یک پروژه گوگل کلود موجود اضافه کنید. در اولین مرحله از گردش کار، نام پروژه موجود را وارد کنید و سپس پروژه را از لیست نمایش داده شده انتخاب کنید.
مراحل باقیمانده از گردش کار روی صفحه را برای ایجاد یک پروژه Firebase تکمیل کنید. توجه داشته باشید که در صورت درخواست، نیازی به تنظیم Google Analytics برای استفاده از Firebase AI Logic SDKs ندارید .
در کنسول Firebase ، به صفحه منطق هوش مصنوعی فایربیس بروید.
برای شروع یک گردش کار هدایتشده که به شما در تنظیم APIها و منابع مورد نیاز پروژهتان کمک میکند، روی «شروع به کار» کلیک کنید.
پروژه خود را طوری تنظیم کنید که از یک ارائهدهنده « Gemini API » استفاده کند.
توصیه میکنیم برای شروع از رابط برنامهنویسی نرمافزار Gemini Developer API استفاده کنید. در هر مرحله، میتوانید رابط برنامهنویسی نرمافزار Vertex AI Gemini (و الزامات آن برای صدور صورتحساب) را تنظیم کنید .
برای Gemini Developer API ، کنسول APIهای مورد نیاز را فعال کرده و یک کلید API Gemini در پروژه شما ایجاد میکند.
این کلید API مربوط به Gemini را به کدبیس برنامه خود اضافه نکنید . اطلاعات بیشتر.اگر در گردش کار کنسول از شما خواسته شد، دستورالعملهای روی صفحه را برای ثبت برنامه خود و اتصال آن به Firebase دنبال کنید.
برای افزودن SDK به برنامه خود، به مرحله بعدی این راهنما بروید.
مرحله ۳ : اضافه کردن SDK
کتابخانه Firebase دسترسی به APIها را برای تعامل با مدلهای مولد فراهم میکند. این کتابخانه به عنوان بخشی از Firebase JavaScript SDK for Web گنجانده شده است.
نصب Firebase JS SDK برای وب با استفاده از npm:
npm install firebaseمقداردهی اولیه فایربیس در برنامه شما:
import { initializeApp } from "firebase/app"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig);
مرحله ۴ : سرویس را مقداردهی اولیه کنید و یک نمونه مدل ایجاد کنید
برای مشاهده محتوا و کد مخصوص ارائهدهنده در این صفحه، روی ارائهدهنده API Gemini خود کلیک کنید. |
قبل از ارسال درخواست سریع به مدل، موارد زیر را تنظیم کنید.
سرویس را برای ارائهدهنده API انتخابی خود مقداردهی اولیه کنید.
یک نمونه
GenerativeModelایجاد کنید. حتماً موارد زیر را انجام دهید:فراخوانی
getGenerativeModelپس از یا در حین تعامل کاربر نهایی (مانند کلیک روی دکمه). این یک پیشنیاز برایinferenceModeاست.modeرا روی یکی از موارد زیر تنظیم کنید:PREFER_ON_DEVICE: در صورت موجود بودن، از مدل روی دستگاه استفاده کنید؛ در غیر این صورت، به مدل میزبانی ابری برگردید .ONLY_ON_DEVICE: در صورت موجود بودن، از مدل روی دستگاه استفاده میکند؛ در غیر این صورت، یک استثنا ایجاد میکند .PREFER_IN_CLOUD: در صورت موجود بودن، از مدل میزبانی ابری استفاده کنید؛ در غیر این صورت، به مدل روی دستگاه برگردید .ONLY_IN_CLOUD: در صورت موجود بودن، از مدل میزبانی ابری استفاده کنید؛ در غیر این صورت، یک استثنا ایجاد کنید .
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Call `getGenerativeModel` after or on an end-user interaction
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
مرحله ۵ : ارسال درخواست سریع به یک مدل
این بخش به شما نشان میدهد که چگونه انواع مختلف ورودی را برای تولید انواع مختلف خروجی ارسال کنید، از جمله:
اگر میخواهید خروجی ساختاریافته (مانند JSON یا enums) تولید کنید، از یکی از مثالهای «تولید متن» زیر استفاده کنید و علاوه بر آن ، مدل را طوری پیکربندی کنید که طبق طرحواره ارائه شده پاسخ دهد .
تولید متن از ورودی فقط متنی
| قبل از امتحان کردن این نمونه، مطمئن شوید که بخش « شروع به کار » این راهنما را تکمیل کردهاید. |
میتوانید از generateContent() برای تولید متن از یک اعلان که حاوی متن است استفاده کنید:
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
توجه داشته باشید که Firebase AI Logic از پخش پاسخهای متنی با استفاده از generateContentStream (به جای generateContent ) نیز پشتیبانی میکند.
تولید متن از ورودی متن و تصویر (چندوجهی)
| قبل از امتحان کردن این نمونه، مطمئن شوید که بخش « شروع به کار » این راهنما را تکمیل کردهاید. |
شما میتوانید از تابع generateContent() برای تولید متن از یک اعلان که شامل فایلهای متنی و تصویری است استفاده کنید—که mimeType هر فایل ورودی و خود فایل را ارائه میدهد.
انواع تصویر ورودی پشتیبانیشده برای استنتاج درون دستگاهی PNG و JPEG هستند.
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Converts a File object to a Part object.
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
async function run() {
// Provide a text prompt to include with the image
const prompt = "Write a poem about this picture:";
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call `generateContent` with the text and image
const result = await model.generateContent([prompt, imagePart]);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
توجه داشته باشید که Firebase AI Logic از پخش پاسخهای متنی با استفاده از generateContentStream (به جای generateContent ) نیز پشتیبانی میکند.
به کاربران نهایی اجازه دهید تا ویژگی شما را امتحان کنند
برای اینکه کاربران نهایی بتوانند ویژگی شما را در برنامهتان امتحان کنند، باید در نسخه آزمایشی Chrome Origin ثبتنام کنید . توجه داشته باشید که این نسخههای آزمایشی مدت زمان و میزان استفاده محدودی دارند.
برای نسخه آزمایشی Prompt API Chrome Origin ثبت نام کنید. به شما یک توکن داده خواهد شد.
این توکن را در هر صفحه وبی که میخواهید ویژگی آزمایشی برای آن فعال شود، ارائه دهید. از یکی از گزینههای زیر استفاده کنید:
توکن را به عنوان یک متا تگ در تگ
<head>قرار دهید:<meta http-equiv="origin-trial" content=" TOKEN ">توکن را به عنوان یک هدر HTTP ارائه دهید:
Origin-Trial: TOKENتوکن را به صورت برنامهنویسی شده ارائه دهید.
چه کار دیگری میتوانید انجام دهید؟
شما میتوانید از گزینهها و قابلیتهای پیکربندی اضافی مختلفی برای تجربیات ترکیبی خود استفاده کنید:
ویژگیهایی که هنوز برای استنتاج روی دستگاه در دسترس نیستند
به عنوان یک نسخه پیشنمایش، همه قابلیتهای Web SDK برای استنتاج روی دستگاه در دسترس نیستند. ویژگیهای زیر هنوز برای استنتاج روی دستگاه پشتیبانی نمیشوند (اما معمولاً برای استنتاج مبتنی بر ابر در دسترس هستند).
تولید متن از انواع ورودی فایل تصویری غیر از JPEG و PNG
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
ONLY_ON_DEVICEخطایی ایجاد خواهد کرد.
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
تولید متن از ورودیهای صوتی، تصویری و اسناد (مانند PDF)
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
ONLY_ON_DEVICEخطایی ایجاد خواهد کرد.
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
تولید تصاویر با استفاده از مدلهای Gemini یا Imagen
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
ONLY_ON_DEVICEخطایی ایجاد خواهد کرد.
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
ارائه فایلها با استفاده از URLها در درخواستهای چندوجهی. شما باید فایلها را به عنوان دادههای درونخطی به مدلهای روی دستگاه ارائه دهید.
چت چند نوبتی
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
ONLY_ON_DEVICEخطایی ایجاد خواهد کرد.
- میتواند به مدل میزبانی ابری جایگزین شود؛ با این حال، حالت
پخش دو طرفه با Gemini Live API
ارائه ابزارهایی به مدل برای کمک به تولید پاسخ (مانند فراخوانی تابع، اجرای کد، زمینه URL و اتصال به جستجوی گوگل)
تعداد توکنها
- همیشه خطا میدهد. تعداد دفعات نمایش بین مدلهای میزبانی ابری و مدلهای روی دستگاه متفاوت خواهد بود، بنابراین هیچ راه حل جایگزین شهودی وجود ندارد.
نظارت هوش مصنوعی در کنسول Firebase برای استنتاج روی دستگاه.
- توجه داشته باشید که هرگونه استنتاج با استفاده از مدلهای میزبانی ابری، درست مانند سایر استنتاجها با استفاده از کیت توسعه نرمافزار (SDK) کلاینت Firebase AI Logic برای وب، قابل نظارت است.
درباره تجربه خود با Firebase AI Logic بازخورد دهید