۱. قبل از شروع
افزونههای فایربیس به شما این امکان را میدهند که با حداقل کد، قابلیتهای از پیش آمادهشدهای را به برنامههای خود اضافه کنید - حتی قابلیتهای مبتنی بر هوش مصنوعی. این آزمایشگاه کد به شما نشان میدهد که چگونه دو افزونه فایربیس را در یک برنامه وب ادغام کنید تا بتوانید از API Gemini برای تولید توضیحات تصویر، خلاصهسازیها و حتی توصیههای شخصیسازیشده بر اساس زمینه ارائه شده و ورودی کاربر نهایی استفاده کنید.
در این آزمایشگاه کد، یاد خواهید گرفت که چگونه یک برنامه وب مبتنی بر هوش مصنوعی بسازید که با افزونههای Firebase، تجربیات کاربری جذابی را ارائه دهد.
پیشنیازها
- آشنایی با Node.js، Next.js و TypeScript.
آنچه یاد خواهید گرفت
- نحوه استفاده از افزونههای فایربیس برای API جمینی جهت پردازش زبان.
- نحوه استفاده از توابع ابری برای فایربیس برای ایجاد یک زمینه افزوده برای مدل زبانی شما.
- نحوه استفاده از جاوا اسکریپت برای دسترسی به خروجی تولید شده توسط Firebase Extensions.
آنچه نیاز دارید
- یک مرورگر دلخواه مانند گوگل کروم
- یک محیط توسعه با ویرایشگر کد و ترمینال
- یک حساب گوگل برای ایجاد و مدیریت پروژه Firebase شما
۲. برنامه وب، سرویسهای فایربیس و افزونهها را بررسی کنید
در این بخش، برنامه وبی را که با این آزمایشگاه کد خواهید ساخت، مرور خواهید کرد و همچنین در مورد سرویسهای Firebase و افزونههای Firebase که استفاده خواهید کرد، اطلاعات کسب خواهید کرد.
برنامه وب
در این آزمایشگاه کد، شما یک برنامه وب به نام Friendly Conf خواهید ساخت.
کارکنان کنفرانس دوستانه تصمیم گرفتند از هوش مصنوعی برای ایجاد یک تجربه کاربری لذتبخش و شخصیسازیشده برای شرکتکنندگان خود استفاده کنند. اپلیکیشن کنفرانس تکمیلشده، یک چتبات هوش مصنوعی مکالمهای را در اختیار شرکتکنندگان قرار میدهد که توسط یک مدل هوش مصنوعی مولد چندوجهی (که به عنوان مدل زبان بزرگ یا LLM نیز شناخته میشود) پشتیبانی میشود و میتواند به سؤالات مربوط به موضوعات کلی، متناسب با برنامه و مباحث کنفرانس، پاسخ دهد. این چتبات دارای پیشینه و دانش در مورد تاریخ/زمان فعلی و موضوعات و برنامه کنفرانس دوستانه است، بنابراین پاسخهای آن میتواند در تمام این زمینهها لحاظ شود.

سرویسهای فایربیس
در این آزمایشگاه کد، از بسیاری از سرویسها و ویژگیهای Firebase استفاده خواهید کرد و بیشتر کد اولیه برای آنها در اختیار شما قرار گرفته است. جدول زیر شامل سرویسهایی است که استفاده خواهید کرد و دلایل استفاده از آنها را شرح میدهد.
خدمات | دلیل استفاده |
شما از قابلیت ورود با گوگل برای برنامه وب استفاده میکنید. | |
شما دادههای متنی را در Cloud Firestore ذخیره میکنید، که سپس توسط Firebase Extensions پردازش میشود. | |
شما از فضای ذخیرهسازی ابری میخوانید و مینویسید تا گالریهای تصویر را در برنامه وب نمایش دهید. | |
شما قوانین امنیتی را برای کمک به ایمنسازی دسترسی به سرویسهای Firebase خود اعمال میکنید. | |
شما افزونههای فایربیس مرتبط با هوش مصنوعی را پیکربندی و نصب میکنید و نتایج را درون برنامه وب نمایش میدهید. | |
جایزه: میزبانی فایربیس | شما میتوانید به صورت اختیاری از Firebase Hosting برای ارائه برنامه وب خود استفاده کنید (بدون نیاز به مخزن GitHub). |
مزیت: میزبانی برنامه Firebase | شما میتوانید به صورت اختیاری از میزبانی برنامهی ساده و جدید Firebase برای ارائهی برنامهی وب پویای Next.js خود (متصل به یک مخزن GitHub) استفاده کنید. |
افزونههای فایربیس
افزونههای فایربیس که در این آزمایشگاه کد استفاده خواهید کرد شامل موارد زیر است:
افزونهها مفید هستند زیرا به رویدادهایی که در پروژه Firebase شما اتفاق میافتد واکنش نشان میدهند. هر دو افزونهای که در این آزمایشگاه کد استفاده شدهاند، هنگام ایجاد اسناد جدید در مجموعههای از پیش تنظیم شده در Cloud Firestore واکنش نشان میدهند.
۳. محیط توسعه خود را تنظیم کنید
نسخه Node.js خود را تأیید کنید
- در ترمینال خود، تأیید کنید که Node.js نسخه 20.0.0 یا بالاتر را نصب کردهاید:
node -v
- اگر نسخه Node.js 20.0.0 یا بالاتر را ندارید، آخرین نسخه LTS را دانلود و نصب کنید .
کد منبع codelab را دریافت کنید
اگر حساب گیتهاب دارید:
- با استفاده از الگوی ما از github.com/FirebaseExtended/codelab-gemini-api-extensions یک مخزن جدید ایجاد کنید

- مخزن گیتهاب codelab که تازه ایجاد کردهاید را کلون کنید:
git clone https://github.com/<your-github-handle>/codelab-gemini-api-extensions
اگر گیت را نصب ندارید یا ترجیح میدهید مخزن جدیدی ایجاد نکنید:
مخزن گیتهاب را به صورت یک فایل زیپ دانلود کنید .
بررسی ساختار پوشهها
پوشه ریشه شامل یک فایل README.md است که با استفاده از دستورالعملهای ساده، شروع سریعی برای اجرای برنامه وب ارائه میدهد. با این حال، اگر شما یک یادگیرنده تازهکار هستید، باید این codelab (به جای quickstart) را تکمیل کنید زیرا codelab شامل جامعترین مجموعه دستورالعملها است.
اگر مطمئن نیستید که کد را به درستی طبق دستورالعملهای این آزمایشگاه کد اعمال کردهاید یا خیر، میتوانید کد راهحل را در شاخه end git پیدا کنید.
نصب رابط خط فرمان فایربیس
- تأیید کنید که Firebase CLI نصب شده است و نسخه آن ۱۳.۶ یا بالاتر است:
firebase --version
- اگر Firebase CLI را نصب کردهاید، اما نسخه ۱۳.۶ یا بالاتر نیست، آن را بهروزرسانی کنید:
npm update -g firebase-tools
- اگر Firebase CLI را نصب ندارید، آن را نصب کنید:
npm install -g firebase-tools
اگر به دلیل خطاهای مجوز قادر به بهروزرسانی یا نصب Firebase CLI نیستید، به مستندات npm مراجعه کنید یا از گزینه نصب دیگری استفاده کنید.
وارد فایربیس شوید
- در ترمینال خود، به پوشه
codelab-gemini-api-extensionsبروید و وارد Firebase شوید: اگر ترمینال شما میگوید که قبلاً به Firebase وارد شدهاید، میتوانید از بخش «راهاندازی پروژه Firebase» در این آزمایشگاه کد عبور کنید.cd codelab-gemini-api-extensions firebase login
- در ترمینال خود، بسته به اینکه میخواهید Firebase دادهها را جمعآوری کند یا خیر،
YیاNرا وارد کنید. (هر دو گزینه برای این codelab کار میکند) - در مرورگر خود، حساب گوگل خود را انتخاب کرده و روی «مجاز» کلیک کنید.
۴. پروژه فایربیس خود را راهاندازی کنید
در این بخش، یک پروژه Firebase راهاندازی کرده و یک برنامه وب Firebase را در آن ثبت خواهید کرد. همچنین چند سرویس Firebase را که توسط برنامه وب نمونه در ادامه این آزمایشگاه کد استفاده میشود، فعال خواهید کرد.
تمام مراحل این بخش در کنسول Firebase انجام میشود.
ایجاد یک پروژه فایربیس
- با استفاده از همان حساب گوگلی که در مرحله قبل استفاده کردید، وارد کنسول Firebase شوید.
- برای ایجاد یک پروژه جدید، روی دکمه کلیک کنید و سپس نام پروژه را وارد کنید (برای مثال،
AI Extensions Codelab). - روی ادامه کلیک کنید.
- در صورت درخواست، شرایط Firebase را مرور و قبول کنید و سپس روی ادامه کلیک کنید.
- (اختیاری) دستیار هوش مصنوعی را در کنسول Firebase (با نام "Gemini در Firebase") فعال کنید.
- برای این codelab، به گوگل آنالیتیکس نیاز ندارید ، بنابراین گزینه گوگل آنالیتیکس را غیرفعال کنید .
- روی ایجاد پروژه کلیک کنید، منتظر بمانید تا پروژه شما آماده شود و سپس روی ادامه کلیک کنید.
طرح قیمتگذاری فایربیس خود را ارتقا دهید
برای استفاده از افزونههای فایربیس (و سرویسهای ابری زیربنایی آنها) و همچنین فضای ذخیرهسازی ابری برای فایربیس، پروژه فایربیس شما باید در طرح قیمتگذاری پرداخت در محل (Blaze) باشد، به این معنی که به یک حساب پرداخت ابری متصل باشد.
- یک حساب Cloud Billing به یک روش پرداخت، مانند کارت اعتباری، نیاز دارد.
- اگر در استفاده از فایربیس و گوگل کلود تازهکار هستید، بررسی کنید که آیا واجد شرایط دریافت اعتبار ۳۰۰ دلاری و یک حساب کاربری رایگان ابری هستید یا خیر.
- اگر این codelab را به عنوان بخشی از یک رویداد انجام میدهید، از برگزارکننده خود بپرسید که آیا امکان استفاده از فضای ابری (Cloud credits) وجود دارد یا خیر.
همچنین توجه داشته باشید که با فعال بودن قابلیت پرداخت در پروژه Firebase خود، هزینه تماسهایی که افزونه با API Gemini برقرار میکند از شما دریافت خواهد شد (صرف نظر از اینکه کدام ارائهدهنده را انتخاب کنید، Google AI یا Vertex AI). درباره قیمتگذاری Google AI و Vertex AI بیشتر بدانید.
برای ارتقاء پروژه خود به طرح Blaze، مراحل زیر را دنبال کنید:
- در کنسول Firebase، گزینه ارتقاء پلن خود را انتخاب کنید.
- طرح Blaze را انتخاب کنید. دستورالعملهای روی صفحه را دنبال کنید تا یک حساب Cloud Billing به پروژه شما متصل شود.
اگر به عنوان بخشی از این ارتقا نیاز به ایجاد یک حساب Cloud Billing داشتید، ممکن است لازم باشد برای تکمیل ارتقا، به روند ارتقا در کنسول Firebase برگردید.
یک برنامه وب به پروژه Firebase خود اضافه کنید
- به صفحه نمای کلی پروژه در پروژه Firebase خود بروید و سپس کلیک کنید
وب . 
- در کادر متنی «نام مستعار برنامه» ، یک نام مستعار به یاد ماندنی برای برنامه وارد کنید، مانند
My AI Extensions - روی ثبت برنامه > بعدی > بعدی > ادامه برای کنسول کلیک کنید.
شما میتوانید از تمام مراحل مربوط به «میزبانی» در جریان برنامه وب صرف نظر کنید، زیرا بعداً در این آزمایشگاه کد، به صورت اختیاری یک سرویس میزبانی راهاندازی خواهید کرد.

عالی! شما اکنون یک برنامه وب را در پروژه جدید Firebase خود ثبت کردهاید.
راه اندازی احراز هویت فایربیس
- با استفاده از پنل ناوبری سمت چپ، به بخش احراز هویت (Authentication) بروید.
- روی شروع به کار کلیک کنید.
- در ستون ارائه دهندگان اضافی ، روی Google > Enable کلیک کنید.

- در کادر متن «نام پروژه برای عموم» ، یک نام مفید مانند
My AI Extensions Codelabوارد کنید. - در منوی ایمیل پشتیبانی برای پروژه ، آدرس ایمیل خود را انتخاب کنید.
- روی ذخیره کلیک کنید.

راه اندازی کلود فایر استور
- در پنل سمت چپ کنسول Firebase، گزینه Build را باز کرده و سپس Firestore database را انتخاب کنید.
- روی ایجاد پایگاه داده کلیک کنید.
- شناسه پایگاه داده را روی
(default)تنظیم کنید. - مکانی را برای پایگاه داده خود انتخاب کنید، سپس روی Next کلیک کنید.
برای یک اپلیکیشن واقعی، شما میخواهید مکانی را انتخاب کنید که به کاربرانتان نزدیک باشد. - روی شروع در حالت آزمایشی کلیک کنید. سلب مسئولیت مربوط به قوانین امنیتی را مطالعه کنید.
بعداً در این آزمایشگاه کد، قوانین امنیتی را برای ایمنسازی دادههای خود اضافه خواهید کرد. بدون اضافه کردن قوانین امنیتی برای پایگاه داده خود، برنامه را به صورت عمومی توزیع یا افشا نکنید . - روی ایجاد کلیک کنید.
راهاندازی فضای ذخیرهسازی ابری برای فایربیس
- در پنل سمت چپ کنسول Firebase، گزینه Build را باز کرده و سپس Storage را انتخاب کنید.
- روی شروع به کار کلیک کنید.
- مکانی را برای سطل ذخیرهسازی پیشفرض خود انتخاب کنید.
کاربران درUS-WEST1،US-CENTRAL1وUS-EAST1میتوانند از ردیف «همیشه رایگان» برای Google Cloud Storage بهرهمند شوند. کاربران در سایر مناطق ، از قیمتها و میزان استفاده از Google Cloud Storage پیروی میکنند. - روی شروع در حالت آزمایشی کلیک کنید. سلب مسئولیت مربوط به قوانین امنیتی را مطالعه کنید.
بعداً در این آزمایشگاه کد، قوانین امنیتی را برای ایمنسازی دادههای خود اضافه خواهید کرد. بدون اضافه کردن قوانین امنیتی برای مخزن ذخیرهسازی خود، برنامه را به صورت عمومی توزیع یا در معرض نمایش قرار ندهید . - روی ایجاد کلیک کنید.
در بخش بعدی این آزمایشگاه کد، دو افزونه Firebase را که در برنامه وب در طول این آزمایشگاه کد استفاده خواهید کرد، نصب و پیکربندی خواهید کرد.
۵. افزونهی «ساخت چتبات با رابط برنامهنویسی Gemini» را راهاندازی کنید
افزونهی «ساخت چتبات با Gemini API» را نصب کنید.
- به افزونهی «ساخت چتبات با استفاده از رابط برنامهنویسی Gemini» بروید.
- روی نصب در کنسول Firebase کلیک کنید.
- پروژه Firebase خود را انتخاب کنید و سپس روی Next کلیک کنید.
- در بخش «بررسی APIهای فعالشده و منابع ایجادشده» ، روی «فعال کردن» در کنار هر سرویسی که به شما پیشنهاد میشود کلیک کنید و سپس روی «بعدی» کلیک کنید.

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

- افزونه را پیکربندی کنید:
- در منوی Gemini API Provider ، انتخاب کنید که آیا میخواهید از Gemini API از Google AI یا Vertex AI استفاده کنید. برای توسعهدهندگانی که از Firebase استفاده میکنند، توصیه میکنیم از
Vertex AIاستفاده کنند. - در کادر متن مسیر مجموعه Firestore ،
users/{uid}/discussion/{discussionId}/messagesرا وارد کنید.
در مراحل بعدی این آزمایشگاه کد، اضافه کردن اسناد به این مجموعه، افزونه را وادار به فراخوانی رابط برنامهنویسی Gemini خواهد کرد. - در منوی موقعیت مکانی Cloud Functions ، مکان مورد نظر خود را انتخاب کنید (مانند
Iowa (us-central1)یا مکانی که قبلاً برای پایگاه داده Firestore خود مشخص کردهاید). - تمام مقادیر دیگر را به صورت پیشفرض باقی بگذارید.
- در منوی Gemini API Provider ، انتخاب کنید که آیا میخواهید از Gemini API از Google AI یا Vertex AI استفاده کنید. برای توسعهدهندگانی که از Firebase استفاده میکنند، توصیه میکنیم از
- روی نصب افزونه کلیک کنید و منتظر بمانید تا افزونه نصب شود.
افزونهی «ساخت چتبات با Gemini API» را امتحان کنید
اگرچه هدف این آزمایشگاه کد، تعامل با افزونهی «ساخت چتبات با رابط برنامهنویسی Gemini» از طریق یک برنامهی وب است، اما بهتر است ابتدا با امتحان کردن این افزونه در کنسول Firebase، نحوهی کار آن را بیاموزید.
این افزونه هر زمان که یک سند Firestore در مجموعه users/{uid}/discussion/{discussionId}/messages ایجاد شود، فعال میشود، که میتوانید این کار را در کنسول Firebase انجام دهید.
- در کنسول Firebase، به Firestore بروید و سپس کلیک کنید
جمعآوری را از ستون اول شروع کنید . - در کادر متنی شناسه مجموعه ، نام
usersرا وارد کنید و سپس روی بعدی کلیک کنید. - در کادر متنی شناسه سند ، روی شناسه خودکار کلیک کنید و سپس روی ذخیره کلیک کنید.
- در مجموعه
users، کلیک کنید
شروع جمعآوری . 
- در کادر متنی شناسه مجموعه ،
messagesرا وارد کنید و سپس روی بعدی کلیک کنید.- در کادر متنی شناسه سند ، روی شناسه خودکار کلیک کنید.
- در کادر متن فیلد ،
promptرا وارد کنید - در کادر متنی Value ،
Tell me 5 random fruitsرا وارد کنید.
- روی ذخیره کلیک کنید و چند ثانیه صبر کنید.
وقتی این سند را اضافه کردید، افزونه باعث شد تا API مربوط به Gemini را فراخوانی کند. سندی که به مجموعه messages اضافه کردید، اکنون نه تنها شامل prompt شما، بلکه شامل response مدل به درخواست شما نیز میشود.

با اضافه کردن یک سند دیگر به مجموعه messages ، افزونه را دوباره فعال کنید:
- در مجموعه
messages، کلیک کنید
سند اضافه کنید . - در کادر متنی شناسه سند ، روی شناسه خودکار کلیک کنید.
- در کادر متن فیلد ،
promptرا وارد کنید - در کادر متنی Value ، عبارت
And now, vegetablesرا وارد کنید. - روی ذخیره کلیک کنید و چند ثانیه صبر کنید. سندی که به مجموعه
messagesاضافه کردهاید، اکنون شاملresponseبه درخواست شما است.
هنگام تولید این پاسخ، مدل Gemini از دانش تاریخی حاصل از پرسوجوی قبلی شما استفاده کرد.
۶. برنامه وب را تنظیم کنید
برای اجرای برنامه وب، باید دستورات را در ترمینال خود اجرا کنید و کد را در ویرایشگر کد خود اضافه کنید.
رابط خط فرمان فایربیس را برای اجرا در پروژه فایربیس خود تنظیم کنید
در ترمینال خود، با اجرای دستور زیر به CLI بگویید که از پروژه Firebase شما استفاده کند:
firebase use YOUR_PROJECT_ID
استقرار قوانین امنیتی برای Firestore و Cloud Storage
کدبیس این آزمایشگاه کد، از قبل مجموعهای از قوانین امنیتی Firestore و قوانین امنیتی Cloud Storage را برای شما نوشته است. پس از استقرار این قوانین امنیتی، سرویسهای Firebase شما در پروژه Firebase شما از سوءاستفاده محافظت بهتری خواهند داشت.
- برای اعمال قوانین امنیتی، این دستور را در ترمینال خود اجرا کنید:
firebase deploy --only firestore:rules,storage
- اگر از شما پرسیده شد که آیا میخواهید به Cloud Storage نقش IAM برای استفاده از قوانین بین سرویسی را بدهید،
YیاNرا وارد کنید. (هر دو گزینه برای این codelab کار میکند)
برنامه وب خود را به پروژه Firebase خود وصل کنید
کدبیس برنامه وب شما باید بداند که از کدام پروژه Firebase برای پایگاه داده، فضای ذخیرهسازی و غیره استفاده کند. شما این کار را با اضافه کردن پیکربندی Firebase خود به کدبیس برنامه خود انجام میدهید.
- پیکربندی Firebase خود را دریافت کنید:
- در کنسول فایربیس، به تنظیمات پروژه در پروژه فایربیس خود بروید.
- به بخش «برنامههای شما» (Your apps) بروید و برنامه وب ثبتشده خود را انتخاب کنید.
- در پنل تنظیمات و پیکربندی SDK ، کد کامل
initializeAppشامل const مربوط بهfirebaseConfigرا کپی کنید.
- پیکربندی Firebase خود را به کدبیس برنامه وب خود اضافه کنید:
- در ویرایشگر کد خود، فایل
src/lib/firebase/firebase.config.jsرا باز کنید. - همه موارد موجود در فایل را انتخاب کنید و کدی را که کپی کردهاید جایگزین کنید.
- فایل را ذخیره کنید.
- در ویرایشگر کد خود، فایل
پیشنمایش برنامه وب را در مرورگر خود مشاهده کنید
- در ترمینال خود، وابستگیها را نصب کنید و سپس برنامه وب را اجرا کنید:
npm install npm run dev
- در مرورگر خود، به آدرس اینترنتی میزبانی محلی بروید تا برنامه وب را مشاهده کنید. برای مثال، در بیشتر موارد، آدرس اینترنتی http://localhost:3000/ یا چیزی شبیه به آن است.
از چتبات برنامه وب استفاده کنید
- در مرورگر خود، به تبی که برنامه وب Friendly Conf به صورت محلی در آن اجرا میشود، برگردید.
- روی «ورود با گوگل» کلیک کنید و در صورت لزوم، حساب گوگل خود را انتخاب کنید.
- پس از ورود به سیستم، یک پنجره چت خالی مشاهده خواهید کرد.
- یک عبارت خوشامدگویی (مثل
hi) تایپ کنید و سپس روی ارسال کلیک کنید. - چند ثانیه صبر کنید تا ربات چت پاسخ دهد.
چتبات موجود در برنامه با یک پاسخ عمومی پاسخ میدهد.

چتبات را برای اپلیکیشن اختصاصی کنید
شما به مدل Gemini زیربنایی که توسط چتبات برنامه وب شما استفاده میشود نیاز دارید تا جزئیات مربوط به کنفرانس را هنگام تولید پاسخ برای شرکتکنندگان با استفاده از برنامه، بداند. روشهای زیادی برای کنترل و هدایت این پاسخها وجود دارد و در این بخش از codelab، ما با ارائه "زمینه" در اعلان اولیه (به جای فقط ورودی از کاربر برنامه وب) یک روش بسیار اساسی را به شما نشان میدهیم.
- در برنامه وب مرورگر خود، با کلیک روی دکمه قرمز "x" (کنار پیام در تاریخچه چت) مکالمه را پاک کنید.
- در ویرایشگر کد خود، فایل
src/app/page.tsxرا باز کنید. - به پایین اسکرول کنید و کد موجود در خط ۹۳ یا نزدیک به آن که
prompt: userMsgنشان میدهد، با کد زیر جایگزین کنید:
prompt: preparePrompt(userMsg, messages), - فایل را ذخیره کنید.
- به برنامه وب که در مرورگر شما اجرا میشود، برگردید.
- دوباره، یک عبارت خوشامدگویی (مثل
hi) تایپ کنید و سپس روی ارسال کلیک کنید. - چند ثانیه صبر کنید تا ربات چت پاسخ دهد.

چتبات با دانشی که از زمینه ارائه شده در src/app/lib/context.md هدایت میشود، پاسخ میدهد. حتی اگر شما درخواست خاصی را تایپ نکرده باشید، مدل Gemini بر اساس این زمینه و همچنین تاریخ/زمان فعلی، یک توصیه شخصیسازی شده تولید میکند. اکنون میتوانید سوالات تکمیلی را مشخص کنید و عمیقتر بررسی کنید.
این زمینهی گسترشیافته برای چتبات مهم است، اما نباید آن را به کاربر برنامهی وب نشان دهید. در اینجا نحوهی پنهان کردن آن آمده است:
- در ویرایشگر کد خود، فایل
src/app/page.tsxرا باز کنید. - به پایین اسکرول کنید و کد موجود در خط ۵۶ یا نزدیک به آن که میگوید
...doc.data(),با کد زیر جایگزین کنید:
...prepareMessage(doc.data()), - فایل را ذخیره کنید.
- به برنامه وب که در مرورگر شما اجرا میشود، برگردید.
- صفحه را دوباره بارگذاری کنید.
همچنین میتوانید قابلیت مکالمه با چتبات با استفاده از پیشینهی تاریخی را امتحان کنید:
- در کادر متن «نوشتن پیام» ، سوالی مانند این بپرسید:
Any other interesting talks about AI?ربات چت پاسخی را برمیگرداند. - در کادر متنی «نوشتن پیام» ، یک سؤال تکمیلی مرتبط با سؤال قبلی بپرسید:
Give me a few more details about the last one.
چتبات با دانش قبلی پاسخ میدهد. از آنجایی که تاریخچه چت اکنون بخشی از متن است، چتبات سوالات بعدی را میفهمد.
۷. افزونهی «وظایف چندوجهی با رابط برنامهنویسی Gemini» را راهاندازی کنید
افزونهی «وظایف چندوجهی با رابط برنامهنویسی Gemini» رابط برنامهنویسی Gemini را با پیامهای چندوجهی فراخوانی میکند که شامل یک پیام متنی و همچنین یک URL فایل پشتیبانیشده یا URL ذخیرهسازی ابری هستند (توجه داشته باشید که حتی API هوش مصنوعی Gemini گوگل نیز از یک URL ذخیرهسازی ابری به عنوان زیرساخت URL فایل زیربنایی خود استفاده میکند). این افزونه همچنین از متغیرهای handlebars برای جایگزینی مقادیر از سند Cloud Firestore برای سفارشیسازی پیام متنی پشتیبانی میکند.
در برنامه خود، هر زمان که تصویری را در یک مخزن ذخیرهسازی ابری آپلود میکنید، میتوانید یک URL ایجاد کنید و آن URL را به یک سند جدید Cloud Firestore اضافه کنید - به این ترتیب افزونه را برای ایجاد یک اعلان چندوجهی و فراخوانی Gemini API فعال میکند. در کد منبع این codelab، ما قبلاً کد لازم برای آپلود تصویر و نوشتن URL در یک سند Firestore را ارائه دادهایم.
افزونهی «وظایف چندوجهی با رابط برنامهنویسی Gemini» را نصب کنید.
- به افزونهی «وظایف چندوجهی با رابط برنامهنویسی نرمافزار Gemini» بروید.
- روی نصب در کنسول Firebase کلیک کنید.
- پروژه فایربیس خود را انتخاب کنید.
- روی بعدی > بعدی > بعدی کلیک کنید تا به بخش پیکربندی افزونه برسید.
- در منوی Gemini API Provider ، انتخاب کنید که آیا میخواهید از Gemini API از Google AI یا Vertex AI استفاده کنید. برای توسعهدهندگانی که از Firebase استفاده میکنند، توصیه میکنیم از
Vertex AIاستفاده کنند. - در کادر متن مسیر مجموعه Firestore ،
galleryرا وارد کنید. - در کادر متن درخواست ، عبارت زیر را وارد کنید:
Please describe the provided image; if there is no image, say "no image" - در کادر متن فیلد تصویر ،
imageرا وارد کنید. - در منوی موقعیت مکانی Cloud Functions ، مکان مورد نظر خود را انتخاب کنید (مانند
Iowa (us-central1)یا مکانی که قبلاً برای پایگاه داده Firestore خود مشخص کردهاید). - تمام مقادیر دیگر را به صورت پیشفرض باقی بگذارید.
- در منوی Gemini API Provider ، انتخاب کنید که آیا میخواهید از Gemini API از Google AI یا Vertex AI استفاده کنید. برای توسعهدهندگانی که از Firebase استفاده میکنند، توصیه میکنیم از
- روی نصب افزونه کلیک کنید و منتظر بمانید تا افزونه نصب شود.
افزونهی «وظایف چندوجهی با رابط برنامهنویسی نرمافزار Gemini» را امتحان کنید
اگرچه هدف این آزمایشگاه کد، تعامل با افزونهی «وظایف چندوجهی با رابط برنامهنویسی Gemini» از طریق یک برنامهی وب است، اما بهتر است ابتدا با امتحان کردن این افزونه در کنسول Firebase، نحوهی کار آن را بیاموزید.
این افزونه هر زمان که یک سند Firestore در مجموعه users/{uid}/gallery ایجاد شود، فعال میشود، که میتوانید این کار را در کنسول Firebase انجام دهید. سپس این افزونه، آدرس اینترنتی تصویر Cloud Storage را در سند Cloud Firestore دریافت کرده و آن را به عنوان بخشی از اعلان چندوجهی در فراخوانی به API Gemini ارسال میکند.
ابتدا، یک تصویر را در یک فضای ذخیرهسازی ابری آپلود کنید:
- به بخش Storage در پروژه Firebase خود بروید.
- کلیک
ایجاد پوشه . - در کادر متن نام پوشه ،
galleryرا وارد کنید
- روی افزودن پوشه کلیک کنید.
- در پوشه
gallery، روی «بارگذاری فایل» کلیک کنید. - یک فایل تصویری JPEG برای آپلود انتخاب کنید.
در مرحله بعد، آدرس اینترنتی فضای ذخیرهسازی ابری (Cloud Storage URL) تصویر را به یک سند Firestore اضافه کنید (که محرک افزونه است):
- در پروژه Firebase خود به Firestore بروید
- کلیک
جمعآوری را از ستون اول شروع کنید . - در کادر متن شناسه مجموعه ،
galleryرا وارد کنید و سپس روی Next کلیک کنید. - یک سند به مجموعه اضافه کنید:
- در کادر متنی شناسه سند ، روی شناسه خودکار کلیک کنید.
- در کادر متنی فیلد ،
imageرا وارد کنید. در کادر مقدار، آدرس مکانی ذخیرهسازی تصویری که آپلود کردهاید را وارد کنید.
- روی افزودن فیلد کلیک کنید.
- در کادر متن Field ،
publishedوارد کنید. در کادر Type، مقدار boolean را انتخاب کنید. در کادر Value،trueانتخاب کنید.
- روی ذخیره کلیک کنید و چند ثانیه صبر کنید.
مجموعه gallery اکنون شامل سندی است که حاوی پاسخی به درخواست شما است.
از گالری تصاویر برنامه وب استفاده کنید
- در مرورگر خود، به تبی که برنامه وب Friendly Conf به صورت محلی در آن اجرا میشود، برگردید.
- روی برگه ناوبری گالری کلیک کنید.
- شما یک گالری از تصاویر آپلود شده و توضیحات تولید شده توسط هوش مصنوعی را مشاهده خواهید کرد. این گالری باید شامل تصویری باشد که قبلاً در پوشه
galleryدر بخش ذخیرهسازی خود آپلود کردهاید. - برای آپلود روی دکمه « آپلود » کلیک کنید و یک تصویر JPEG دیگر انتخاب کنید.
- چند ثانیه صبر کنید تا تصویر در گالری نمایش داده شود. چند لحظه بعد، توضیحات تولید شده توسط هوش مصنوعی برای تصویر تازه آپلود شده نیز نمایش داده میشود.
اگر میخواهید کد مربوط به نحوهی پیادهسازی این مورد را درک کنید، به src/app/gallery/page.tsx در کدبیس برنامهی وب مراجعه کنید.
۸. مزیت: اپلیکیشن خود را مستقر کنید
فایربیس روشهای مختلفی برای استقرار یک برنامه وب ارائه میدهد. برای این آزمایشگاه کد، یکی از گزینههای زیر را انتخاب کنید:
- گزینه ۱: میزبانی فایربیس - اگر تصمیم دارید مخزن گیتهاب خودتان را ایجاد نکنید (و فقط کد منبع خود را به صورت محلی روی دستگاه خود ذخیره کنید) از این گزینه استفاده کنید.
- گزینه ۲: میزبانی برنامه Firebase - اگر میخواهید هر زمان که تغییرات را به مخزن GitHub خود اعمال میکنید، بهطور خودکار مستقر شود، از این گزینه استفاده کنید. این سرویس جدید Firebase بهطور خاص برای پاسخگویی به نیازهای برنامههای پویای Next.js و Angular ساخته شده است.
گزینه ۱: استقرار با استفاده از میزبانی فایربیس
اگر تصمیم دارید مخزن گیتهاب خودتان را ایجاد نکنید (و فقط کد منبع خود را به صورت محلی روی دستگاه خود ذخیره کنید) از این گزینه استفاده کنید.
- در ترمینال خود، با اجرای این دستورات، Firebase Hosting را راهاندازی کنید:
firebase experiments:enable webframeworks firebase init hosting
- برای دریافت پیام:
Detected an existing Next.js codebase in your current directory, should we use this?کلیدYرا فشار دهید. - برای سوال:
In which region would you like to host server-side content, if applicable?یا مکان پیشفرض یا مکانی را که قبلاً در این آزمایشگاه کد استفاده کردهاید، انتخاب کنید. سپسEnter(یاreturnدر macOS) را فشار دهید. - برای دریافت پیام:
Set up automatic builds and deploys with GitHub?Nرا فشار دهید. - با اجرای این دستور، برنامه وب خود را روی هاستینگ مستقر کنید:
firebase deploy --only hosting
کار تمام است! اگر برنامه خود را بهروزرسانی کردید و میخواهید آن نسخه جدید را مستقر کنید، کافیست firebase deploy --only hosting دوباره اجرا کنید و Firebase Hosting برنامه شما را میسازد و دوباره مستقر میکند.
گزینه ۲: استقرار با استفاده از میزبانی برنامه Firebase
اگر میخواهید هر زمان که تغییرات را به مخزن گیتهاب خود اضافه میکنید، بهطور خودکار اعمال شوند، از این گزینه استفاده کنید.
- تغییرات خود را در گیتهاب ثبت کنید.
- در کنسول فایربیس، در پروژه فایربیس خود به بخش App Hosting بروید.
- روی شروع > اتصال به گیتهاب کلیک کنید.
- حساب کاربری و مخزن گیتهاب خود را انتخاب کنید. روی «بعدی» کلیک کنید.
- در Deployment setting > Root directory ، نام پوشهای که کد منبع شما در آن قرار دارد را وارد کنید (اگر
package.jsonشما در دایرکتوری ریشه مخزن شما نیست). - برای شاخهی Live ، شاخهی اصلی مخزن GitHub خود را انتخاب کنید. روی Next کلیک کنید.
- یک شناسه برای بکاند خود وارد کنید (برای مثال،
chatbot). - روی «پایان» و «استقرار» کلیک کنید.
آماده شدن استقرار جدید شما چند دقیقه طول خواهد کشید. میتوانید وضعیت استقرار را در بخش میزبانی برنامه (App Hosting ) کنسول Firebase بررسی کنید.
از این نقطه به بعد، هر بار که تغییری را به مخزن گیتهاب خود ارسال میکنید، Firebase App Hosting به طور خودکار برنامه شما را میسازد و مستقر میکند.
۹. نتیجهگیری
تبریک میگویم! شما در این آزمایشگاه کد به موفقیتهای زیادی دست یافتید!
نصب و پیکربندی افزونهها
شما از کنسول Firebase برای پیکربندی و نصب افزونههای مختلف Firebase که از هوش مصنوعی مولد استفاده میکنند، استفاده کردید. استفاده از افزونههای Firebase راحت است زیرا نیازی به یادگیری و نوشتن تعداد زیادی کد تکراری برای مدیریت احراز هویت با سرویسهای Google Cloud یا منطق توابع Cloud بکاند برای گوش دادن و تعامل با سرویسها و APIهای Firestore و Google Cloud ندارید.
امتحان کردن افزونهها با استفاده از کنسول Firebase
به جای اینکه مستقیماً به سراغ کدنویسی بروید، بر اساس ورودی که از طریق Firestore یا Cloud Storage ارائه دادهاید، زمانی را صرف درک نحوه کار این افزونههای genAI کردهاید. این امر میتواند به ویژه هنگام اشکالزدایی خروجی یک افزونه مفید باشد.
ساخت یک اپلیکیشن وب مبتنی بر هوش مصنوعی
شما یک برنامه وب مبتنی بر هوش مصنوعی ساختهاید که از افزونههای فایربیس برای دسترسی به تنها چند قابلیت مدل جمینی استفاده میکند.
در برنامه وب، شما از افزونه «Chatbot with Gemini API» برای ارائه یک رابط چت تعاملی به کاربر استفاده میکنید که شامل زمینههای خاص برنامه و تاریخی در مکالمات است - جایی که هر پیام در یک سند Firestore که به یک کاربر خاص محدود شده است، ذخیره میشود.
این برنامه وب همچنین از افزونه «وظایف چندوجهی با رابط برنامهنویسی Gemini» برای تولید خودکار توضیحات تصویر برای تصاویر آپلود شده استفاده میکرد.
مراحل بعدی
- با دستورالعملها آزمایش کنید و از پنجره بزرگ زمینه در Google AI Studio یا Vertex AI Studio بهره ببرید.
- درباره جستجوی نسل افزوده بازیابی هوش مصنوعی (RAG) اطلاعات کسب کنید.
- یک آزمایشگاه کدنویسی خودآموز را امتحان کنید که نحوه اضافه کردن یک چتبات به یک برنامه Firebase موجود با استفاده از Genkit (که یک سرویس چارچوب هوش مصنوعی جدید است) را نشان میدهد.
- درباره قابلیتهای جستجوی شباهت در Firestore و Cloud SQL برای PostgreSQL اطلاعات کسب کنید.
- به چتبات خود آموزش دهید که با فراخوانی تابع ، برنامهی موجود شما را فراخوانی کند.