1. לפני שמתחילים
במעבדת הקוד הזה, אתה לומד כיצד לבנות אפליקציות אינטרנט המופעלות על ידי בינה מלאכותית המספקות חוויות משתמש משכנעות עם תוספי Firebase.
דרישות מוקדמות
- ידע ב-Node.js וב-JavaScript
מה תלמד
- כיצד להשתמש בהרחבות הקשורות ל-AI לעיבוד שפה וקלט וידאו.
- כיצד להשתמש ב-Cloud Functions עבור Firebase כדי ליצור צינור בין הרחבות.
- כיצד להשתמש ב-JavaScript כדי לגשת לפלט שהופק על ידי הרחבות.
מה אתה צריך
- דפדפן לבחירתך, כגון Google Chrome
- סביבת פיתוח עם עורך קוד ומסוף
- חשבון Google ליצירה וניהול של פרויקט Firebase שלך
2. סקור אפליקציות אינטרנט ושירותי Firebase שלהם
חלק זה מתאר את אפליקציות האינטרנט שתבנה במעבדת הקוד הזה ובאיזה Firebase תשתמש כדי לבנות אותן.
אפליקציית ביקורת
חברת חולצות מוצפת מביקורות ארוכות על אחת מהחולצות שלה ואינה בטוחה בדירוג הכללי שלה. אפליקציית האינטרנט Reviewly שהושלמה מסכמת כל ביקורת, מספקת דירוג כוכבים לכל ביקורת ומשתמשת בכל ביקורת כדי להסיק דירוג כולל של המוצר. משתמשים יכולים גם להרחיב כל סקירה מסוכמת כדי לראות את הביקורת המקורית.
שֵׁרוּת | סיבת השימוש |
אחסן את הטקסט של כל ביקורת, ולאחר מכן מעובד על ידי הרחבה. | |
פרוס כללי אבטחה כדי לסייע באבטחת הגישה לשירותי Firebase שלך. | |
הוסף ביקורות מדומות לאפליקציית האינטרנט. | |
התקן, הגדר והפעל את תוסף ה- Language Tasks עם PaLM API כדי לסכם כל סקירה שנוספה ל-Firestore |
אפליקציית Chatbot
צוות המורים של בית ספר מוצף בשאלות שחוזרות על עצמן על נושאים כלליים, ולכן הם רוצים להפוך את התגובות לאוטומטיות. אפליקציית Chatbot שהושלמה מספקת לתלמידים צ'אטבוט לשיחות המופעל על ידי מודל שפה גדול (LLM) ויכול לענות על שאלות בנושאים כלליים. לצ'אטבוט יש הקשר היסטורי, כך שהתגובות שלו יכולות להביא בחשבון שאלות קודמות ששאלו תלמידים באותה שיחה.
שֵׁרוּת | סיבת השימוש |
השתמש בכניסה עם Google כדי לנהל משתמשים. | |
אחסן את הטקסט של כל שיחה; הודעות ממשתמשים מעובדות על ידי הרחבה. | |
פרוס כללי אבטחה כדי לסייע באבטחת הגישה לשירותי Firebase שלך. | |
התקן, הגדר והפעל את תוסף Chatbot עם PaLM API כדי להגיב כאשר הודעה חדשה מתווספת ל-Firestore | |
השתמש ב- Local Emulator Suite כדי להפעיל את האפליקציה באופן מקומי. | |
השתמש במסגרות אינטרנט עם אירוח כדי לשרת את האפליקציה. |
אפליקציית רמז לווידאו
משרד ממשלתי רוצה שהסרטונים שלו יספקו תיאורי אודיו כדי לשפר את הנגישות, אבל יש להם מאות סרטונים להערות והם זקוקים לגישה יעילה. אפליקציית Video Hint שהושלמה היא אב טיפוס שהמחלקה תבדוק כדי להעריך את יעילותה.
שֵׁרוּת | סיבת השימוש |
השתמש בכניסה עם Google כדי לנהל משתמשים. | |
אחסן את הטקסט של כל תקציר וידאו. | |
אחסן סרטונים וקובצי JSON עם תיאורי הווידאו. | |
פרוס כללי אבטחה כדי לסייע באבטחת הגישה לשירותי Firebase שלך. | |
התקן, הגדר והפעל הרחבות שונות (ראה רשימה למטה). | |
בנה צינור בין הרחבות עם פונקציות ענן. | |
השתמש ב- Local Emulator Suite כדי להפעיל את האפליקציה באופן מקומי. | |
השתמש במסגרות אינטרנט עם אירוח כדי לשרת את האפליקציה. |
אלו התוספים המשמשים באפליקציית Video Hint :
- תווית סרטונים עם סיומת Cloud Video AI - חלץ תוויות מכל סרטון שהועלה לאחסון.
- משימות שפה עם תוסף PaLM API - סכם את התוויות לתיאור טקסט.
- המרת טקסט לדיבור סיומת - צור גרסת שמע של תיאור הסרטון.
3. הגדר את סביבת הפיתוח שלך
אמת את גרסת ה-Node.js שלך
- במסוף שלך, ודא שמותקן אצלך Node.js v20.0.0 ומעלה:
node -v
- אם אין לך Node.js v20.0.0 ומעלה, הורד והתקן אותו .
הורד את המאגר
- אם התקנת git, שכפל את מאגר GitHub של Codelab:
git clone https://github.com/FirebaseExtended/ai-extensions-codelab.git
- אם לא התקנת git, הורד את מאגר GitHub כקובץ zip .
סקור את מבנה התיקיות
במחשב המקומי שלך, מצא את המאגר המשובט וסקור את מבנה התיקיות. הטבלה הבאה מכילה את התיקיות ותיאוריהן:
תיקיה | תיאור |
| קוד ההתחלה עבור אפליקציית האינטרנט Reviewly |
| קוד הפתרון עבור אפליקציית האינטרנט Reviewly |
| קוד ההתחלה עבור אפליקציית האינטרנט Chatbot |
| קוד הפתרון לאפליקציית האינטרנט Chatbot |
| קוד ההתחלה של אפליקציית האינטרנט Video Hint |
| קוד הפתרון עבור אפליקציית האינטרנט Video Hint |
כל תיקיה כוללת קובץ readme.md
המציע התחלה מהירה להפעיל את אפליקציית האינטרנט המתאימה, תוך שימוש בהוראות יעילות. עם זאת, אם אתה לומד בפעם הראשונה, עליך להשלים מעבדת קוד זה מכיוון שהוא מכיל את קבוצת ההוראות המקיפה ביותר.
אם אינך בטוח אם החלת נכון את הקוד כפי שהורה בכל מעבדת הקוד הזה, תוכל למצוא את קוד הפתרון עבור האפליקציות המתאימות בתיקיות reviewly-end
, chatbot-end
ו- video-hint-end
.
התקן את Firebase CLI
הפעל את הפקודה הבאה כדי לוודא שהתקנת את Firebase CLI ושהוא גרסה 12.5.4 ומעלה:
firebase --version
- אם התקנת את Firebase CLI, אבל הוא לא גרסה 12.5.4 ומעלה, עדכן אותו:
npm update -g firebase-tools
- אם אין לך את Firebase CLI מותקן, התקן אותו:
npm install -g firebase-tools
אם אינך מצליח להתקין את Firebase CLI בגלל שגיאות הרשאה, עיין בתיעוד npm או השתמש באפשרות התקנה אחרת .
היכנס ל-Firebase
- במסוף שלך, נווט לתיקיית
ai-extensions-codelab
והיכנס ל-Firebase:cd ai-extensions-codelab firebase login
- אם הטרמינל שלך אומר שאתה כבר מחובר ל-Firebase, המשך לקטע הגדר את פרויקט Firebase שלך במעבדת קוד זה.
- תלוי אם ברצונך ש-Firebase יאסוף נתונים, הזן
Y
אוN
. - בדפדפן, בחר בחשבון Google שלך ולאחר מכן לחץ על אפשר .
4. הגדר את פרויקט Firebase שלך
בחלק זה, תגדיר פרויקט Firebase ותשייך אליו אפליקציית אינטרנט של Firebase. תוכל גם להפעיל את שירותי Firebase המשמשים את יישומי האינטרנט לדוגמה.
צור פרויקט Firebase
- במסוף Firebase , לחץ על צור פרויקט .
- בתיבת הטקסט הזן את שם הפרויקט שלך , הזן
AI Extensions Codelab
(או שם פרויקט לבחירתך), ולאחר מכן לחץ על המשך . - עבור מעבדת קוד זה, אינך זקוק ל-Google Analytics, אז כבה את האפשרות הפעל את Google Analytics עבור פרויקט זה .
- לחץ על צור פרויקט .
- המתן להקצאת הפרוייקט שלך ולאחר מכן לחץ על המשך .
- בפרויקט Firebase שלך, עבור אל הגדרות פרויקט . שים לב לזהות הפרויקט שלך כי אתה צריך אותו מאוחר יותר. מזהה ייחודי זה הוא האופן שבו הפרויקט שלך מזוהה (לדוגמה, ב-CLI של Firebase).
הורד חשבון שירות Firebase
חלק מיישומי האינטרנט שתבנה במעבדת הקוד הזה משתמשות בעיבוד בצד השרת עם Next.js .
ה- SDK של Firebase Admin עבור Node.js משמש כדי להבטיח שכללי האבטחה פועלים מהקוד בצד השרת. כדי להשתמש בממשקי API ב-Firebase Admin, עליך להוריד חשבון שירות Firebase ממסוף Firebase.
- במסוף Firebase, נווט לדף חשבונות שירות בהגדרות הפרויקט שלך.
- לחץ על צור מפתח פרטי חדש > צור מפתח .
- לאחר הורדת הקובץ למערכת הקבצים שלך, קבל את הנתיב המלא לקובץ זה.
לדוגמה, אם הורדת את הקובץ לתיקיית ההורדות שלך, הנתיב המלא עשוי להיראות כך:/Users/me/Downloads/my-project-id-firebase-adminsdk-123.json
- במסוף שלך, הגדר את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS
לנתיב של המפתח הפרטי שהורדת. בסביבת יוניקס, הפקודה עשויה להיראות כך:export GOOGLE_APPLICATION_CREDENTIALS="/Users/me/Downloads/my-project-id-firebase-adminsdk-123.json"
- השאר את המסוף הזה פתוח והשתמש בו למשך שארית מעבדת הקוד הזה, מכיוון שמשתנה הסביבה שלך עלול ללכת לאיבוד אם תתחיל הפעלת טרמינל חדשה.
אם אתה פותח הפעלת מסוף חדשה, עליך להפעיל מחדש את הפקודה הקודמת.
שדרג את תוכנית התמחור שלך ב-Firebase
כדי להשתמש בפונקציות ענן ובתוספי Firebase, פרויקט Firebase שלך צריך להיות בתוכנית התמחור של Blaze , כלומר הוא משויך לחשבון Cloud Billing .
- חשבון Cloud Billing דורש אמצעי תשלום, כמו כרטיס אשראי.
- אם אתה חדש ב-Firebase וב-Google Cloud, בדוק אם אתה זכאי לזיכוי של $300 וחשבון חיוב בענן ניסיון חינם .
עם זאת, שים לב שהשלמת Codelab זה לא אמורה לגרור חיובים בפועל.
כדי לשדרג את הפרויקט שלך לתוכנית Blaze, בצע את השלבים הבאים:
- במסוף Firebase, בחר לשדרג את התוכנית שלך .
- בתיבת הדו-שיח, בחר את תוכנית Blaze ולאחר מכן עקוב אחר ההוראות שעל המסך כדי לשייך את הפרויקט שלך לחשבון Cloud Billing.
אם היית צריך ליצור חשבון Cloud Billing, ייתכן שתצטרך לנווט חזרה לזרימת השדרוג במסוף Firebase כדי להשלים את השדרוג.
הגדר שירותי Firebase במסוף Firebase
בסעיף זה, תספק ותגדיר מספר שירותי Firebase המשמשים את יישומי האינטרנט במעבדת קוד זה. שים לב שלא כל השירותים האלה נמצאים בשימוש בכל אפליקציית אינטרנט, אבל הגדרת כל השירותים האלה עכשיו היא נוחות לעבודה דרך מעבדת קוד זה.
הגדר אימות
אתה תשתמש באימות גם עם אפליקציית Chatbot וגם עם אפליקציית Video Hint . זכור, עם זאת, אם היית בונה אפליקציה אמיתית, לכל אפליקציה צריכה להיות פרויקט Firebase משלה .
- במסוף Firebase, נווט אל אימות .
- לחץ על התחל .
- בעמודה ספקים נוספים , לחץ על Google > הפעל .
- בתיבת הטקסט שם פונה לציבור עבור פרויקט , הזן שם בלתי נשכח, כגון
My AI Extensions Codelab
. - מהתפריט הנפתח דוא"ל תמיכה לפרויקט , בחר את כתובת הדוא"ל שלך.
- לחץ על שמור .
הגדר את Cloud Firestore
אתה תשתמש ב-Firestore עם כל שלוש האפליקציות. זכור, עם זאת, אם היית בונה אפליקציה אמיתית, לכל אפליקציה צריכה להיות פרויקט Firebase משלה .
- במסוף Firebase, נווט אל Firestore .
- לחץ על צור מסד נתונים > התחל במצב בדיקה > הבא .
בהמשך מעבדת הקוד הזה, תוסיף כללי אבטחה כדי לאבטח את הנתונים שלך. אין להפיץ או לחשוף אפליקציה בפומבי מבלי להוסיף כללי אבטחה עבור מסד הנתונים שלך . - השתמש במיקום ברירת המחדל או בחר מיקום לבחירתך.
עבור אפליקציה אמיתית, אתה רוצה לבחור מיקום שקרוב למשתמשים שלך. שימו לב שלא ניתן לשנות את המיקום הזה מאוחר יותר, והוא גם יהיה אוטומטית המיקום של דלי ברירת המחדל של Cloud Storage (השלב הבא). - לחץ על סיום .
הגדר אחסון בענן עבור Firebase
תשתמש ב-Cloud Storage עם אפליקציית Video Hint וכדי לנסות את התוסף Convert Text to Speech (השלב הבא של מעבדת הקוד).
- במסוף Firebase, נווט אל אחסון .
- לחץ על התחל > התחל במצב בדיקה > הבא .
בהמשך מעבדת הקוד הזה, תוסיף כללי אבטחה כדי לאבטח את הנתונים שלך. אין להפיץ או לחשוף אפליקציה בפומבי מבלי להוסיף כללי אבטחה עבור דלי האחסון שלך . - המיקום של הדלי שלך כבר אמור להיות נבחר (עקב הגדרת Firestore בשלב הקודם).
- לחץ על סיום .
בסעיפים הבאים של מעבדת קוד זה, תתקין הרחבות ותשנה את בסיסי הקוד של כל אפליקציה לדוגמה במעבדת קוד זה כדי לגרום לשלוש אפליקציות אינטרנט שונות לעבוד.
5. הגדר את התוסף "משימות שפה עם PaLM API" עבור אפליקציית Reviewly
התקן את משימות השפה עם תוסף PaLM API
- נווט אל משימות שפה עם תוסף PaLM API .
- לחץ על התקן במסוף Firebase .
- בחר את פרויקט Firebase שלך.
- בקטע סקירת ממשקי API מופעלים ומשאבים שנוצרו , לחץ על הפעל לצד כל השירותים המוצעים לך:
- לחץ על הבא > הבא.
- בתיבת הטקסט נתיב אוסף , הזן
bot
. - בתיבת הטקסט 'בקשה' , הזן
.
- בתיבת הטקסט שדות משתנים , הזן
input
. - בתיבת הטקסט של שדה תגובה , הזן
text
. - מהתפריט הנפתח מיקום פונקציות ענן , בחר Iowa (us-central1) או המיקום שבחרת בעבר עבור Firestore ו-Cloud Storage.
- מהתפריט הנפתח מודל שפה , בחר text-bison-001 .
- השאר את כל שאר הערכים כברירת המחדל שלהם.
- לחץ על התקן תוסף והמתן להתקנת התוסף.
נסה את משימות השפה עם תוסף PaLM API
בעוד שהמטרה של מעבדת קוד זה היא ליצור אינטראקציה עם תוסף Language Tasks עם PaLM API דרך אפליקציית אינטרנט, כדאי להבין כיצד התוסף עובד על ידי הפעלת התוסף באמצעות מסוף Firebase. התוסף מופעל כאשר מסמך Cloud Firestore מתווסף לאוסף bot
.
כדי לראות כיצד פועל התוסף באמצעות מסוף Firebase, בצע את השלבים הבאים:
- במסוף Firebase, נווט אל Firestore .
- באוסף
bot
, לחץהוסף מסמך .
- בתיבת הטקסט מזהה מסמך , לחץ על מזהה אוטומטי .
- בתיבת הטקסט שדה, הזן
input
. - בתיבת הטקסט ערך , הזן
Tell me about the moon
. - לחץ על שמור והמתן מספר שניות. המסמך שלך בתוך אוסף
bot
כולל כעת תגובה לשאילתה שלך.
6. הגדר את אפליקציית Reviewly לשימוש ב-Firebase
כדי להפעיל את אפליקציית Reviewly , עליך להגדיר את קוד האפליקציה שלך ואת Firebase CLI לאינטראקציה עם פרויקט Firebase שלך.
הוסף שירותי Firebase ותצורה לקוד האפליקציה שלך
כדי להשתמש ב-Firebase, בסיס הקוד של האפליקציה שלך צריך את Firebase SDK עבור השירותים שבהם ברצונך להשתמש ואת תצורת Firebase שאומרת לאותם SDK באיזה פרויקט Firebase להשתמש.
האפליקציה לדוגמה של Codelab זה כבר כוללת את כל קוד הייבוא והאתחול הנדרש עבור SDKs (ראה reviewly-start/js/reviews.js
), כך שאינך צריך להוסיף אותם. עם זאת, לאפליקציה לדוגמה יש רק ערכי מציין מיקום עבור תצורת Firebase (ראה reviewly-start/js/firebase-config.js
), לכן עליך לרשום את האפליקציה שלך בפרויקט Firebase שלך כדי לקבל את ערכי התצורה הייחודיים של Firebase עבור האפליקציה שלך.
- במסוף Firebase, בפרויקט Firebase שלך, נווט אל סקירת הפרויקט ולאחר מכן לחץ על
אינטרנט .
- בתיבת הטקסט של כינוי לאפליקציה , הזן כינוי לאפליקציה בלתי נשכחת, כגון
My Reviewly app
. - אל תבחר בתיבת הסימון הגדר גם אירוח Firebase עבור אפליקציה זו . תבצע את השלבים האלה מאוחר יותר ב-codelab.
- לחץ על הרשמה אפליקציה .
- המסוף מציג קטע קוד להוספה ואתחול של Firebase SDK עם אובייקט תצורה ספציפי לאפליקציה של Firebase. העתק את כל המאפיינים באובייקט התצורה של Firebase.
- בעורך הקוד שלך, פתח את הקובץ
reviewly-start/js/firebase-config.js
. - החלף את ערכי מציין המיקום בערכים שזה עתה העתקת. זה בסדר אם יש לך מאפיינים וערכים עבור שירותי Firebase שאתה לא משתמש בהם באפליקציית Reviewly .
- שמור את הקובץ.
- בחזרה למסוף Firebase, לחץ על המשך למסוף .
הגדר את המסוף שלך כדי להפעיל פקודות Firebase CLI נגד פרויקט Firebase שלך
- במסוף שלך, נווט אל תיקיית
ai-extensions-codelab
שהורדת קודם לכן. - נווט אל תיקיית
reviewly-start
web app:cd reviewly-start
- הפוך את Firebase CLI להפעיל פקודות נגד פרויקט Firebase ספציפי:
firebase use YOUR_PROJECT_ID
הפעל והצג את אפליקציית האינטרנט Reviewly
כדי להפעיל ולהציג את אפליקציית האינטרנט, בצע את השלבים הבאים:
- במסוף שלך, התקן תלות ולאחר מכן הפעל את אפליקציית האינטרנט:
npm install # Include the parentheses in the following command. (cd functions && npm install) npm run dev
- בדפדפן שלך, נווט אל כתובת האתר המוצגת במסוף שלך. לדוגמה: http://localhost:8080 .
הדף אמור להיטען, אך תבחין שחסרות תכונות שונות. נוסיף אותם בשלבים הבאים של מעבדת קוד זה.
7. הוסף פונקציונליות לאפליקציית Reviewly
בשלב האחרון של מעבדת הקוד הזה, הפעלת את אפליקציית Reviewly באופן מקומי, אך לא הייתה לה הרבה פונקציונליות ועדיין לא השתמשת בתוסף המותקן. בשלב זה של מעבדת הקוד, תוסיף את הפונקציונליות הזו ותשתמש באפליקציית האינטרנט כדי להפעיל את התוסף.
פריסת כללי אבטחה
האפליקציה לדוגמה של Codelab זה מכילה קבוצות של כללי אבטחה עבור Firestore ועבור Cloud Storage עבור Firebase. לאחר שתפרוס את כללי האבטחה האלה בפרויקט Firebase שלך, הנתונים במסד הנתונים ובדלי שלך מוגנים טוב יותר מפני שימוש לרעה.
אתה יכול להציג כללים אלה בקבצי firestore.rules
ו- storage.rules
.
- כדי לפרוס את כללי האבטחה האלה, הפעל את הפקודה הזו בטרמינל שלך:
firebase deploy --only firestore:rules,storage
- אם תישאל:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
, בחר כן .
עדכן את קוד האפליקציה כדי להפעיל את התוסף
באפליקציית Reviewly , סקירה חדשה שנוספה ל-Firestore מפעילה את התוסף כדי לסכם את הביקורת.
- בעורך הקוד שלך, פתח את הקובץ
functions/add-mock-reviews.js
. - החלף את המשתנה
reviewWithPrompt
בקוד הבא, שמבקש ממודל השפה לסקירה קצרה יותר.const reviewWithPrompt = `Here's a user supplied review. Give me a shorter summary of the review, and a rating out of 5, and a flag which indicates if there was a product defect. Product name: "Blue t-shirt with cat picture". Review: """${review}""" Craft your response as JSON with properties has_defect, summary and rating. Don't include any extra text.`;
- לאחר המשתנה
reviewWithPrompt
, החלף את משתנהreviewDocument
בקוד הבא, שיוצר מסמך סקירה כך שניתן להוסיף אותו ל-Firestore.const reviewDocument = { input: reviewWithPrompt, originalReview: review, timestamp: Timestamp.now(), }; getFirestore().collection(DB_COLLECTION_NAME).add(reviewDocument);
- שמור את הקובץ.
- בקובץ
js/reviews.js
, לאחרInsert code below, to import your Firebase Callable Cloud Function
, ייבא את הפונקציה הניתנת להתקשרות ב-Firebase HTTP עםhttpsCallable
helper :const addMockReviews = httpsCallable(functions, "addMockReviews");
- לאחר
Insert code below, to invoke your Firebase Callable Cloud Function
, הפעל את הפונקציה הניתנת להתקשרות ב-Firebase HTTP:await addMockReviews();
- שמור את הקובץ.
פרוס פונקציה כדי להוסיף ביקורות חדשות
אפליקציית האינטרנט Reviewly משתמשת בפונקציית ענן כדי להוסיף את הביקורות. אבל כרגע, פונקציית הענן לא נפרסת.
כדי לפרוס את הפונקציה שלך עם Firebase CLI, בצע את השלבים הבאים:
- בטרמינל שלך בעודך בתיקיית
reviewly-start
, הקשControl+C
כדי לעצור את השרת. - פרוס את הפונקציה שלך:
firebase deploy --only functions
- אם אתה רואה
Permission denied while using the Eventarc Service Agent
או שגיאה דומה, המתן מספר דקות ולאחר מכן נסה שוב את הפקודה.
זה עתה פרסת את הפונקציה המותאמת אישית הראשונה שלך עם פונקציות ענן. קונסולת Firebase מציעה לוח מחוונים שבו אתה יכול לראות את כל הפונקציות שאתה פורס בפרויקט Firebase שלך.
הפעל והצג שוב את אפליקציית האינטרנט Reviewly (עכשיו עם פונקציונליות)
כדי להפעיל ולהציג את אפליקציית האינטרנט הפונקציונלית כעת, בצע את השלבים הבאים:
- בטרמינל שלך, הפעל שוב את השרת:
npm run dev
- בדפדפן שלך, נווט אל כתובת האתר המוצגת במסוף שלך. לדוגמה: http://localhost:8080 .
- באפליקציה, לחץ על הוסף כמה ביקורות מדומות והמתן כמה שניות עד שיופיעו כמה ביקורות ארוכות.
ברקע, תוסף Language Tasks עם PaLM API מגיב למסמך החדש שמייצג את הסקירה החדשה. ההנחיה שהוספת קודם לכן מבקשת סיכום קצר יותר ממודל השפה. - כדי להציג סקירה שלמה ואת ההנחיה המשמשת לסקירה, לחץ על אחת מהביקורות ולאחר מכן בחר הצג הנחיה של PaLM .
8. הגדר את התוסף "Chatbot with PaLM API" עבור אפליקציית Chatbot
התקן את הצ'אטבוט עם תוסף PaLM API
- נווט אל Chatbot עם תוסף PaLM API .
- לחץ על התקן במסוף Firebase .
- בחר את פרויקט Firebase שלך.
- לחץ על הבא > הבא > הבא , עד שתגיע לקטע הגדר הרחבה .
- בתיבת הטקסט של נתיב אוסף , הזן
users/{uid}/discussion/{discussionId}/messages
. - מהתפריט הנפתח מיקום פונקציות ענן , בחר Iowa (us-central1) או המיקום שבחרת בעבר עבור Firestore ו-Cloud Storage.
- מהתפריט הנפתח מודל שפה , בחר chat-bison .
- השאר את כל שאר הערכים כברירת המחדל שלהם.
- לחץ על התקן תוסף והמתן להתקנת התוסף.
נסה את ה- Chatbot עם תוסף PaLM API
בעוד שהמטרה של מעבדת קוד זה היא ליצור אינטראקציה עם תוסף Chatbot עם PaLM API דרך אפליקציית אינטרנט, כדאי להבין כיצד התוסף עובד על ידי הפעלת התוסף באמצעות מסוף Firebase. התוסף מופעל כאשר מסמך Cloud Firestore נוצר באוסף users/{uid}/discussion/{discussionId}/messages
.
- במסוף Firebase, נווט אל Firestore .
- נְקִישָׁה
התחל איסוף .
- בתיבת הטקסט מזהה אוסף , הזן
users
ולאחר מכן לחץ על הבא . - בתיבת הטקסט מזהה מסמך , לחץ על מזהה אוטומטי ולאחר מכן לחץ על שמור .
- בתיבת הטקסט מזהה אוסף , הזן
- באוסף
users
, לחץהתחל איסוף .
- בתיבת הטקסט מזהה אוסף , הזן
discussion
ולאחר מכן לחץ על הבא . - בתיבת הטקסט מזהה מסמך , לחץ על מזהה אוטומטי ולאחר מכן לחץ על שמור .
- בתיבת הטקסט מזהה אוסף , הזן
- באוסף
discussion
, לחץהתחל איסוף .
- בתיבת הטקסט מזהה אוסף , הזן
messages
ולאחר מכן לחץ על הבא . - בתיבת הטקסט מזהה מסמך , לחץ על מזהה אוטומטי .
- בתיבת הטקסט שדה , הזן
prompt
. - בתיבת הטקסט ערך , הזן
Tell me 5 random fruits
. - לחץ על שמור והמתן מספר שניות. אוסף
messages
כולל כעת מסמך המכיל תגובה לשאילתה שלך.
- בתיבת הטקסט מזהה אוסף , הזן
- באוסף
messages
, לחץהוסף מסמך .
- בתיבת הטקסט מזהה מסמך , לחץ על מזהה אוטומטי .
- בתיבת הטקסט שדה , הזן
prompt
. - בתיבת הטקסט ערך , הזן
And now, vegetables
. - לחץ על שמור והמתן מספר שניות. אוסף
messages
כולל כעת מסמך המכיל תגובה לשאילתה שלך.
9. הגדר את אפליקציית Chatbot לשימוש ב-Firebase
כדי להפעיל את אפליקציית Chatbot , עליך להגדיר את קוד האפליקציה שלך ואת Firebase CLI לאינטראקציה עם פרויקט Firebase שלך.
הוסף שירותי Firebase ותצורה לקוד האפליקציה שלך
כדי להשתמש ב-Firebase, בסיס הקוד של האפליקציה שלך צריך את Firebase SDK עבור השירותים שבהם ברצונך להשתמש ואת תצורת Firebase שאומרת לאותם SDK באיזה פרויקט Firebase להשתמש.
האפליקציה לדוגמה של Codelab זה כבר כוללת את כל קוד הייבוא והאתחול הנדרש עבור SDKs (ראה chatbot-start/lib/firebase/firebase.js
), כך שאינך צריך להוסיף אותם. עם זאת, לאפליקציה לדוגמה יש רק ערכי מציין מיקום עבור תצורת Firebase (ראה chatbot-start/lib/firebase/firebase-config.js
), לכן עליך לרשום את האפליקציה שלך בפרויקט Firebase שלך כדי לקבל את ערכי התצורה הייחודיים של Firebase עבורך אפליקציה.
- במסוף Firebase, בפרויקט Firebase שלך, נווט אל סקירת הפרויקט ולאחר מכן לחץ על
אינטרנט (או לחץ על הוסף אפליקציה אם כבר רשמת אפליקציה לפרויקט).
- בתיבת הטקסט של כינוי אפליקציה , הזן כינוי אפליקציה בלתי נשכח, כגון
My Chatbot app
. - אל תבחר בתיבת הסימון הגדר גם אירוח Firebase עבור אפליקציה זו . תבצע את השלבים האלה מאוחר יותר ב-codelab.
- לחץ על הרשמה אפליקציה .
- המסוף מציג קטע קוד להוספה ואתחול של Firebase SDK עם אובייקט תצורה ספציפי לאפליקציה של Firebase. העתק את כל המאפיינים באובייקט התצורה של Firebase.
- בעורך הקוד שלך, פתח את הקובץ
chatbot-start/lib/firebase/firebase-config.js
. - החלף את ערכי מציין המיקום בערכים שזה עתה העתקת. זה בסדר אם יש לך מאפיינים וערכים עבור שירותי Firebase שאתה לא משתמש בהם באפליקציית Chatbot .
- שמור את הקובץ.
- בחזרה למסוף Firebase, לחץ על המשך למסוף .
הגדר את המסוף שלך כדי להפעיל פקודות Firebase CLI נגד פרויקט Firebase שלך
- בטרמינל שלך, הקש
Control+C
כדי למנוע מהשרת להפעיל את אפליקציית האינטרנט הקודמת. - במסוף שלך, נווט אל תיקיית האפליקציה
chatbot-start
:cd ../chatbot-start
- הפוך את Firebase CLI להפעיל פקודות נגד פרויקט Firebase ספציפי:
firebase use YOUR_PROJECT_ID
הגדר את בסיס הקוד של האפליקציה שלך לשימוש ב-Firebase Hosting תואם למסגרת
מעבד קוד זה משתמש במסגרות אינטרנט עם אירוח (תצוגה מקדימה) עם אפליקציית האינטרנט Chatbot .
- במסוף שלך, הפעל מסגרות אינטרנט עם Firebase Hosting:
firebase experiments:enable webframeworks
- אתחול Firebase Hosting:
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?
, בחר את אזור ברירת המחדל או את המיקום שבחרת בעבר עבור Firestore ו-Cloud Storage, ולאחר מכן הקשEnter
(אוreturn
ב-macOS). - כאשר תתבקש עם
Set up automatic builds and deploys with GitHub?
, הקשN
.
הפעל והצג את אפליקציית האינטרנט Chatbot
- במסוף שלך, התקן תלות ולאחר מכן הפעל את אפליקציית האינטרנט:
npm install firebase emulators:start --only hosting
- בדפדפן שלך, נווט לכתובת ה-URL של אירוח מקומי. ברוב המקרים, זה http://localhost:5000/ או משהו דומה.
הדף אמור להיטען, אך תבחין שחסרות תכונות שונות. נוסיף אותם בשלבים הבאים של מעבדת קוד זה.
פתרון בעיות בהפעלת אפליקציית האינטרנט
אם אתה רואה את השגיאה בדף האינטרנט שמתחילה כך: Error: Firebase session cookie has incorrect...
, עליך למחוק את כל קובצי ה-Cookie שלך בסביבת המארח המקומי שלך. כדי לעשות זאת, עקוב אחר ההוראות למחיקת קובצי Cookie | תיעוד DevTools. .
10. הוסף פונקציונליות לאפליקציית Chatbot
בשלב האחרון של מעבדת הקוד הזה, הפעלת את אפליקציית Chatbot באופן מקומי, אך לא הייתה לה הרבה פונקציונליות ועדיין לא השתמשת בתוסף המותקן. בשלב זה של מעבדת הקוד, תוסיף את הפונקציונליות הזו ותשתמש באפליקציית האינטרנט כדי להפעיל את התוסף.
פריסת כללי אבטחה
האפליקציה לדוגמה של Codelab זה מכילה קבוצות של כללי אבטחה עבור Firestore ועבור Cloud Storage עבור Firebase. לאחר שתפרוס את כללי האבטחה האלה בפרויקט Firebase שלך, הנתונים במסד הנתונים ובדלי שלך מוגנים טוב יותר מפני שימוש לרעה.
אתה יכול להציג כללים אלה בקבצי firestore.rules
ו- storage.rules
.
- כדי לפרוס את כללי האבטחה האלה, הפעל את הפקודה הזו בטרמינל שלך:
firebase deploy --only firestore:rules,storage
- אם תישאל:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
, בחר כן .
עדכן את הקוד כדי להוסיף הודעות ל-Cloud Firestore
באפליקציית Chatbot , הודעה חדשה ממשתמש מתווספת ל-Firestore וזו מפעילה את התוסף ליצור תגובה.
- בעורך הקוד שלך, פתח את הקובץ
lib/firebase/firestore.js
. - סמוך לסוף הקובץ, מצא את הפונקציה
addNewMessage
, המטפלת בהוספת הודעות חדשות.
הפונקציה כבר לוקחת את מאפייני האובייקט הבאים:
כשהמשתנים האלה מוכנים, אתה יכול להוסיף מסמך Cloud Firestore כדי לייצג את ההודעה החדשה.פָּרָמֶטֶר
תיאור
userId
המזהה של המשתמש המחובר
discussionId
מזהה הדיון שאליו נוספה ההודעה
message
תוכן טקסט ההודעה
db
מופע מסד נתונים של Firestore
- בגוף הפונקציה
addNewMessage
לאחר התגובה// Insert your code below ⬇️
, הוסף את הקוד הבא:await addDoc( collection( db, "users", userId, "discussion", discussionId, "messages" ), { prompt: message, createTime: serverTimestamp(), } ); await updateDoc(doc(db, "users", userId, "discussion", discussionId), { latestMessage: message, updatedTime: serverTimestamp(), });
עדכן את הקוד כדי לבנות שאילתה לקבלת הודעות
- עדיין בקובץ
lib/firebase/firestore.js
, אתר את הפונקציהgetMessagesQuery
, שצריכה להחזיר שאילתה של Cloud Firestore המאתרת הודעות המאוחסנות בנתיבusers/{uid}/discussion/{discussionId}/messages
איסוף. - החלף את כל הפונקציה
getMessagesQuery
בקוד הבא:function getMessagesQuery(db, userId, discussionId) { if (!userId || !discussionId) { return null; } const messagesRef = collection( db, "users", userId, "discussion", discussionId, "messages" ); return query(messagesRef, orderBy("createTime", "asc")); }
עדכן את הקוד כדי לטפל במסמכי הודעות של Cloud Firestore
- עדיין בקובץ
lib/firebase/firestore.js
, אתר את הפונקציהhandleMessageDoc
, שמקבלת מסמך Cloud Firestore שמייצג הודעה בודדת.
פונקציה זו צריכה לעצב ולבנות את הנתונים באופן הגיוני עבור ממשק המשתמש של אפליקציית Chatbot . - החלף את כל הפונקציה
handleMessageDoc
בקוד הבא:function handleMessageDoc(doc) { const data = doc.data(); const item = { prompt: data.prompt, response: data.response, id: doc.id, createTime: formatDate(data.createTime.toDate()), }; if (data?.status?.completeTime) { item.completeTime = formatDate(data.status.completeTime.toDate()); } return item; }
- שמור את הקובץ.
הפעל והצג שוב את אפליקציית האינטרנט של Chatbot (עכשיו עם פונקציונליות)
כדי להפעיל ולהציג את אפליקציית האינטרנט הפונקציונלית כעת, בצע את השלבים הבאים:
- בדפדפן שלך, חזור לכרטיסייה עם אפליקציית האינטרנט של Chatbot וטען מחדש את הדף.
- לחץ על היכנס עם Google .
- במידת הצורך, בחר בחשבון Google שלך.
- לאחר שנכנסת, טען מחדש את הדף.
- בתיבת הטקסט הזן את ההודעה שלך , הזן הודעה, כגון
Tell me about space
. - לחץ על שלח והמתן מספר שניות עד שהאפליקציה Chatbot תגיב.
יתרון נוסף של הרחבת Chatbot עם PaLM API הוא היסטוריית השיחות שלו.
כדי לראות דוגמה ליכולתו לשוחח עם הקשר היסטורי, בצע את השלבים הבאים:
- בתיבת הטקסט הזן את ההודעה שלך , שאל שאלה, כגון
What are five random fruits?
. - בתיבת הטקסט הזן את ההודעה שלך , שאל שאלת המשך הקשורה לשאלה הקודמת, כגון
And what about vegetables?
.
אפליקציית האינטרנט של Chatbot מגיבה בידע היסטורי. למרות שהשאלה האחרונה שלך לא ציינה חמישה ירקות אקראיים, הרחבת Chatbot עם PaLM API מבין שאלות המשך.
11. הגדר את התוסף "המר טקסט לדיבור" עבור אפליקציית Video Hint
התקן את התוסף המרת טקסט לדיבור
- נווט לטקסט המרה להרחבת הדיבור .
- לחץ על התקן במסוף Firebase .
- בחר את פרויקט Firebase שלך.
- הקש "הבא .
- בסעיף APIs APIS המופעל ומשאבים שנוצרו , לחץ על אפשר לצד כל שירותים המוצעים לך:
- לחץ על הבא ואז בחר הענק לצד כל הרשאות המוצעות לך.
- הקש "הבא .
- בתיבת הטקסט של נתיב אוסף , הזן
bot
. - בתיבת הטקסט של נתיב האחסון , הזן
tts
. - השאר את כל הערכים האחרים כאפשרויות ברירת המחדל שלהם.
- לחץ על התקן סיומת והמתן להתקנה של סיומת.
נסה את הטקסט המרה להרחבת הדיבור
בעוד שמטרתו של CodElab זו היא ליצור אינטראקציה עם המרת הטקסט להרחבת הדיבור באמצעות אפליקציית אינטרנט, כדאי להבין כיצד התוסף פועל על ידי הפעלת התוסף באמצעות קונסולת Firebase. ההרחבה מפעילה כאשר נוצר מסמך Firestore בענן באוסף bot
.
כדי לראות כיצד ההרחבה פועלת באמצעות קונסולת Firebase, בצע את הצעדים הבאים:
- בקונסולת Firebase, נווט אל Firestore
- נְקִישָׁה
אוסף התחל .
- בתיבת הטקסט של ID איסוף , הזן
bot
. - הקש "הבא .
- בתיבת הטקסט של מזהה מסמך , לחץ על ID Auto-ID .
- בתיבת הטקסט בשדה הזן
text
. - בתיבת הטקסט הערך , הזן
The quick brown fox jumps over the lazy dog
. - לחץ על שמור .
כדי לראות ולשמוע את קובץ ה- MP3 שיצרת, בצע את הצעדים הבאים:
- במסוף Firebase, נווט לאחסון .
- בחלונית בו תוכלו להעלות קבצים, שימו לב לשם הדלי שלכם לאחר ערך
gs://
. זה שם דלי ברירת המחדל שלך לפרויקט זה. אתה צריך את זה במשימות שונות ברחבי Codelab זה.
- במסוף הענן של גוגל, נווט לאחסון ענן .
- בחר את הפרויקט שלך.
אם אינך רואה את הפרויקט שלך ברשימת הפרויקטים האחרונה, לחץ על בחר פרויקט כדי לאתר את הפרויקט שלך בבוחר הפרויקט.
- בחר את דלי האחסון ברירת המחדל שלך.
- נווט אל ה-
tts/
תיקיה. - לחץ על קובץ MP3.
- בסוף קובץ ה- MP3, לחץ על
ושים לב שהטקסט שלך מומר לדיבור.
12. הגדר את סיומת "תווית סרטוני תווית עם Cloud Video AI" עבור אפליקציית הרמז לווידיאו
התקן את סרטוני התווית עם סיומת AI של Cloud Video
- נווט לסרטוני התווית עם סיומת AI של Cloud Video .
- לחץ על התקן במסוף Firebase .
- בחר את פרויקט Firebase שלך.
- לחץ על הבא> הבא> הבא, עד שתגיע לסעיף הרחבת התצורה .
- מהתפריט הנפתח של פונקציות הענן , בחר מיקום נתמך (או המיקום שבחרת בעבר לאחסון Firestore ו- Cloud או הקרוב אליו). למיקומים נתמכים, עיין בסעיף
location_id
ב-AnnotateVideoRequest
. - מהתפריט הנפתח, בחר אחרון .
- מהנפתח המצלמה הנייח , בחר מס .
- השאר את כל הערכים האחרים כברירת המחדל שלהם.
- לחץ על התקן סיומת והמתן להתקנה של סיומת.
נסה את סרטוני התווית עם סיומת AI של Cloud Video
בעוד שמטרתו של Codelab זו היא ליצור אינטראקציה עם סרטוני התווית עם סיומת AI של Cloud Video באמצעות אפליקציית אינטרנט, כדאי להבין כיצד התוסף פועל על ידי הפעלת התוסף באמצעות קונסולת Firebase. התוסף מפעיל כאשר קובץ וידאו מועלה לדלי האחסון שלך.
כדי לראות כיצד ההרחבה פועלת באמצעות קונסולת Firebase, בצע את הצעדים הבאים:
- נווט לאחסון בפרויקט Firebase שלך >
צור תיקיה .
- בתיבת הטקסט של שם התיקיה , הזן את
video_annotation_input
.
- לחץ על הוסף תיקיה .
- בתיקיית
video_annotation_input
, לחץ על העלאת קובץ . - בתיקיית
ai-extensions-codelab/video-hint-start/public/videos
ששיבטת או הורדת קודם לכן, בחר את קובץ הווידיאו הראשון. - בחזרה לדפדפן שלך, בקונסולת Google Cloud, נווט לאחסון ענן .
- בחר את דלי האחסון ברירת המחדל שלך, אותו ציינת קודם.
- לחץ על התיקיה
video_annotation_output
.
אם אינך רואה את התיקיהvideo_annotation_output
, המתן מספר שניות ורענן את הדף מכיוון שממשק ה- API של מודיעין הווידיאו עשוי עדיין לעבד את הסרטון.
- שימו לב שקיים קובץ JSON העוקב אחר שם דומה לקובץ שהעלתם קודם.
- נְקִישָׁה
הורד שם קובץ .
- פתח את קובץ ה- JSON שהורד בעורך הקוד שלך. הוא מכיל את הפלט הגולמי מממשק ה- API של Intelligence Intelligence, הכולל תוויות שזוהו של הסרטון שהעלית.
13. הגדר את אפליקציית רמז הווידיאו לשימוש ב- Firebase
כדי להריץ את אפליקציית הווידיאו רמז , עליך להגדיר את קוד האפליקציה שלך ואת ה- Firebase CLI כדי ליצור אינטראקציה עם פרויקט Firebase שלך.
הוסף שירותי Firebase ותצורה לקוד האפליקציה שלך
כדי להשתמש ב- Firebase, בסיס הקוד של האפליקציה שלך זקוק ל- Firebase SDKs עבור השירותים שבהם ברצונך להשתמש ותצורת Firebase המספרת את אותם SDKs באיזה פרויקט Firebase להשתמש.
אפליקציית הדגימה של Codelab זו כוללת כבר את כל קוד הייבוא והאתחול הדרוש עבור ה- SDKs (ראה video-hint-start/lib/firebase/firebase.js
), כך שאינך צריך להוסיף את אלה. עם זאת, לאפליקציית הדגימה יש רק ערכי מציין מיקום לתצורת Firebase (ראה video-hint-start/lib/firebase/firebase-config.js
), כך שאתה צריך לרשום את האפליקציה שלך עם פרויקט Firebase שלך כדי לקבל את ערכי התצורה הייחודיים של Firebase לאפליקציה שלך.
- במסוף Firebase, בפרויקט Firebase שלך, נווט אל סקירה כללית על הפרויקט ואז לחץ על
אינטרנט (או לחץ על הוסף אפליקציה אם כבר רשמת אפליקציה עם הפרויקט).
- בתיבת הטקסט של האפליקציה כינוי , הזן כינוי אפליקציה בלתי נשכח, כמו
My Video Hint app
. - אל תבחר גם באירוח Firebase שהוגדר גם עבור תיבת הסימון הזו של אפליקציה . תעשה את הצעדים האלה בהמשך בקודלב.
- לחץ על הרשמה אפליקציה .
- הקונסולה מציגה קטע קוד להוספת ואתחול של SDK של Firebase עם אובייקט תצורת Firebase ספציפי לאפליקציה. העתק את כל המאפיינים באובייקט התצורה של Firebase.
- בעורך הקוד שלך, פתח את קובץ
video-hint-start/lib/firebase/firebase-config.js
. - החלף את ערכי מציין המקום בערכים שהעתקת זה עתה. זה בסדר אם יש לך מאפיינים וערכים עבור שירותי Firebase שאינך משתמש בהם באפליקציית הווידיאו רמז .
- שמור את הקובץ.
- חזרה במסוף Firebase, לחץ על המשך לקונסולה .
הגדר את הטרמינל שלך כדי להפעיל פקודות CLI של FireBase כנגד פרויקט Firebase שלך
- בטרמינל שלך, לחץ על
Control+C
כדי למנוע מהשרת להפעיל את אפליקציית האינטרנט הקודמת. - בטרמינל שלך, נווט לתיקיית אפליקציות האינטרנט
video-hint-start
:cd ../video-hint-start
- הפוך את פקודות ה- Firebase CLI להפעלת כנגד פרויקט FireBase ספציפי:
firebase use YOUR_PROJECT_ID
הגדר את בסיס הקוד של האפליקציה שלך לשימוש באירוח Firebase עם מסגרת
Codelab זה משתמש במסגרות אינטרנט עם אירוח (תצוגה מקדימה) עם אפליקציית האינטרנט של רמז הווידיאו .
- בטרמינל שלך, אפשר מסגרות אינטרנט עם אירוח Firebase:
firebase experiments:enable webframeworks
- אתחול אירוח Firebase:
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?
, בחר את אזור ברירת המחדל או את המיקום שבחרת בעבר לאחסון Firestore ו- Cloud, ואז לחץ עלEnter
(אוreturn
על MacOS). - כאשר מתבקשים
Set up automatic builds and deploys with GitHub?
, לחץ עלN
.
הפעל וצפה באפליקציית האינטרנט של רמז הווידיאו
- בטרמינל שלך, התקן תלות בתיקיות
video-hint-start
functions
, ואז הפעל את האפליקציה:npm install # Include the parentheses in the following command. (cd functions && npm install) firebase emulators:start --only hosting
- בדפדפן שלך, נווט אל כתובת האתר המתארחת המקומית. ברוב המקרים, זה http: // localhost: 5000/ או משהו דומה.
הדף אמור לטעון, אך תבחין כי חסרים תכונות שונות. נוסיף את אלה בשלבים הבאים של Codelab זה.
פתרון בעיות הפעלת אפליקציית האינטרנט
אם אתה רואה הודעת שגיאה כמו Error: The query requires an index. You can create it here: https://console.firebase.google.com
בחלונית הקונסולה של DevTools, בצע את הצעדים הבאים:
- נווט לכתובת האתר המסופקת.
- לחץ על שמור והמתן שהסטטוס ישתנה מהבניין כדי להפעיל .
14. הוסף פונקציונליות לאפליקציית רמז הווידיאו
בשלב האחרון של Codelab זה, הפעלת את אפליקציית הרמז לווידיאו באופן מקומי, אך לא הייתה לה פונקציונליות רבה ועדיין לא השתמשת בתוסף המותקן. בשלב זה של ה- CodElab, תוסיף פונקציונליות זו ותשתמש באפליקציית האינטרנט כדי להפעיל את התוסף.
לפרוס כללי אבטחה
אפליקציית הדגימה של Codelab זו מכילה קבוצות של כללי אבטחה עבור Firestore ולאחסון ענן עבור Firebase. לאחר שתפרוס כללי אבטחה אלה לפרויקט Firebase שלך, הנתונים במסד הנתונים שלך ובדלי שלך מוגנים טוב יותר מפני שימוש לרעה.
אתה יכול להציג כללים אלה בקבצי firestore.rules
ו- storage.rules
.
- כדי לפרוס כללי אבטחה אלה, הפעל פקודה זו בטרמינל שלך:
firebase deploy --only firestore:rules,storage
- אם נשאלת:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
, בחר כן .
עדכן את הקוד לשילוב הפונקציות
- בעורך הקוד שלך, הרחב את תיקיית
functions
.
תיקיה זו מכילה מספר פונקציות המשלבות ליצירת צינור הרחבה. הטבלה הבאה מציגה ומתארת כל פונקציה:
עם זאת, אתה עדיין צריך להוסיף קובץ המקבץ את הפונקציות הללו יחד.פוּנקצִיָה
תיאור
functions/01-handle-video-upload.js
השלב הראשון בצינור ההרחבה. זה מעבד את קובץ הווידיאו שהועלה על ידי המשתמש.
functions/02-handle-video-labels.js
השלב השני בצינור ההרחבה. הוא מעבד את קובץ תווי הווידיאו, שנוצר על ידי סיומת
storage-label-videos
.functions/03-handle-audio-file.js
השלב השלישי בצינור ההרחבה. הוא מטפל בקובץ השמע המועבר.
- בקובץ
functions/index.js
, הוסף את הקוד הבא:import { initializeApp } from "firebase-admin/app"; export * from "./01-handle-video-upload.js"; export * from "./02-handle-video-labels.js"; export * from "./03-handle-audio-file.js"; initializeApp();
קוד זה משתמש במודולי JavaScript כדי לייבא ולייצא את הפונקציות מקובץ index.js
כך שיהיה מיקום ריכוזי אחד לכל הפונקציות.
עדכן את הקוד לטיפול בהעלאת וידאו
- בעורך הקוד שלך, פתח את קובץ
lib/firebase/storage.js
. - אתר את פונקציית
uploadVideo
.
פונקציה זו מקבלת פרמטרים שלuserId
,filePath
file
. נתונים אלה מספיקים כדי להעלות קובץ לאחסון ענן. - בגוף פונקציית
uploadVideo
, הוסף את הקוד הבא:const storageRef = ref(storage, `video_annotation_input/${filePath}`); const uploadTask = uploadBytesResumable(storageRef, file, { customMetadata: { uid: userId, }, }); return uploadTask;
פרוס את הפונקציות שלך
כדי לפרוס את הפונקציות שלך באמצעות CLI של Firebase, בצע את הצעדים הבאים:
- בטרמינל שלך כשאתה עדיין בתיקיית
video-hint-start
, לחץ עלControl+C
כדי לעצור את התהליך הנוכחי. - פרוס את הפונקציות שלך:
firebase deploy --only functions
אם אתה נשאל על מחיקת פונקציות ענן קודמות, בחרNo
. - אם אתה רואה הודעה דומה
Permission denied while using the Eventarc Service Agent
, המתן מספר דקות ואז נסה שוב את הפקודה. - לאחר סיום הפקודה, הפעל את האפליקציה שוב באופן מקומי:
firebase emulators:start --only hosting
הפעל וצפה שוב באפליקציית האינטרנט של רמז הווידיאו (עכשיו עם פונקציונליות)
כדי להפעיל ולצפות באפליקציית האינטרנט הפונקציונלית כעת, בצע את הצעדים הבאים:
- בדפדפן שלך, מצא את הכרטיסייה בה ניווטת לכתובת http: // localhost: 5000.
- במידת הצורך, לחץ על היכנס עם Google ובחר את חשבון Google שלך.
- לחץ על העלה דוגמה וידאו מספר 1 והמתן מספר דקות כדי לראות את תוצאות סיכום הווידיאו.
- אם אינך רואה תוצאות לאחר העלאת הסרטון, ראה שגיאות פתרון בעיות עם פונקציות ענן בנספח של Codelab זה.
15. מסקנה
מזל טוב! השגת הרבה בקודלב הזה!
תוספי FireBase המותקנים ומוגדרים
השתמשת במסוף Firebase כדי להגדיר ולהתקין תוספי AI שונים. השימוש בתוספים הוא נוח מכיוון שאינך צריך לכתוב המון קוד לוח דוד העוסק באימות עם שירותי Google Cloud, קריאה וכתיבה מ- Firestore ואינטראקציה עם שירותי Google Cloud - והניואנסים השונים המעורבים במשימות אלה.
עבד עם הרחבות באמצעות קונסולת Firebase
במקום לקפוץ ישר לקוד, לקחת זמן להבין כיצד פועלים תוספי ה- AI, על סמך קלט שסיפקת דרך הקונסולה לאחסון Firestore או לענן. סוג זה של אינטראקציה יכול להיות שימושי במיוחד אם אתה צריך לבצע ניפוי באגים בתפוקת הרחבה.
בנה שלוש אפליקציות אינטרנט המונעות על ידי AI המשתמשות בתוספי Firebase
סקירה
באפליקציית האינטרנט סקירה , השתמשת במשימות השפה עם סיומת API של דקל כדי לסכם ביקורות ארוכות שהמשתמשים עזבו עבור מוצר חולצת טריקו. ביקשת גם שמודל השפה יספק תגובה JSON לשאילתה שלך, שם ה- JSON סיפק דירוג כוכב וסקירה מסוכמת של הסקירה המקורית לטווח הארוך.
תרגיל אופציונלי : חברת חולצת הטריקו שמחה מהביקורות המסוכמות, אך הם ביקשו סיכום נוסף של אופי הפגם. האם אתה יכול להתאים את ההנחיה להחזרת סיכום הפגם ואז לכלול את הסיכום הזה בממשק המשתמש של אפליקציית האינטרנט?
צ'אטבוט
באפליקציית האינטרנט של Chatbot , השתמשת בתוסף ChatBot עם תוסף API של Palm כדי לספק למשתמש ממשק צ'אט אינטראקטיבי, הכולל הקשר היסטורי בשיחות - בהן כל הודעה מאוחסנת במסמך FireStore המועבר למשתמש מסוים.
תרגיל אופציונלי : התלמידים היו מרוצים מה- ChatBot, אך הצוות היה רוצה כמה שיפורים. יש לתת לסטודנטים שאלות מעוררות מחשבה לאחר סיפקה של תשובתם. לדוגמה:
Student asks: What is the ozone? Response: The ozone is a molecule composed of...How do you think human activities can impact the ozone layer?
רמז: אתה יכול להשתמש באפשרות הקשר הניתנת להגדרה כדי להשיג זאת.
רמז וידאו
באפליקציית האינטרנט של רמז הווידיאו השתמשת בטקסט המרה לדיבור , במשימות השפה עם API של דקל ובסרטוני התווית עם תוספי וידיאו בענן ליצירת צינור סיומת שמביא לתיאור טקסט ואודיו של וידאו.
תרגיל אופציונלי : מחלקת הממשלה מצאה את האב-טיפוס מעניין, וכעת הם גם היו רוצים שמשתמש יוכל ללחוץ על תווית מבוססת טקסט כדי לקפוץ לנקודה בסרטון בו מתגלה התווית.
16. נספח: פתרון בעיות בשגיאות עם פונקציות ענן
אם אפליקציית האינטרנט שלך אינה מתפקדת כצפוי, ואתה חושב שהיא עשויה להיות בגלל פונקציות, בצע את הצעדים בדף פתרון בעיות זה.
אפשר גישה לא מאומתת בציבור
אם אתה מקבל שגיאות הקשורות להרשאה בלוח הקונסולה של Chrome Devtools, בצע את הצעדים הבאים:
- קרא את סקירת האימות | דף ריצת ענן
- לחץ על הקישור כדי להציג ולהשלים את המשימות הנדרשות כדי לאפשר גישה לא מאומתת בציבור לפונקציה.
- נווט בחזרה לאפליקציה סקירה . לדוגמה: http: // localhost: 8080.
- לחץ על הוסף כמה ביקורות מדומות והמתן מספר שניות.
- אם מופיעים ביקורות: אינך צריך להמשיך בשלבי פתרון בעיות אלה, ויכול לקפוץ ישר להגדרת קטע אפליקציית האינטרנט של צ'אט בוט בקודלב זה ..
- אם ביקורות אינן מופיעות: המשך בסעיף פתרון בעיות זה.
לטפל בשגיאות הרשאה לא מספיק
- במסוף Firebase, נווט לפונקציות .
- רחף מעל פונקציית
addMockReviews
ולחץ על> צפה ביומנים .
- גלול דרך היומנים עד שתמצא שגיאה דומה לאחת מהפעולות הבאות:
Exception from a finished function: Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.
0001-compute@developer.gserviceaccount.com does not have storage.objects.get access to the Google Cloud Storage object. Permission 'storage.objects.get' denied on resource (or it may not exist).
- במסוף הענן של גוגל, נווט לדף הרשאות IAM ואז בחר את הפרויקט שלך.
- בטבלה, מצא את עמודת השם .
בדף IAM & Admin , יש טבלה של משתמשים ותפקידים. עמודת השם בטבלה מתארת למה המשתמש, או המנהל, מיועד. יתכן שיש לך מנהל עם שם ברירת המחדל של חשבון שירות מחשב .
אם אתה רואה את חשבון שירות מחשוב ברירת המחדל , בצע את הצעדים הבאים:
- נְקִישָׁה
ערוך מנהל .
- המשך עם התפקידים הוסף לסעיף חשבון שירות Compute Compute ברירת המחדל ב- CodElab זה.
אם אינך רואה את חשבון שירות מחשוב ברירת המחדל , בצע את הצעדים הבאים:
- לחץ על גישה להענק .
- בתיבת הטקסט של המנהלים החדשים , הזן
compute
. - בתפריט של AutoSuggestions המופיע, בחר חשבון שירות מחשוב ברירת מחדל .
הוסף תפקידים לחשבון שירות מחשוב ברירת המחדל
בסעיף תפקידי הקצאה בחשבון שירות מחשוב ברירת המחדל :
- הרחב את התפריט בחר תפקיד .
- בתיבת הטקסט של המסנן , הזן
Cloud Datastore User
. - בתפריט של AutoSuggestions המופיע, בחר משתמש בענן DataStore .
- נְקִישָׁה
הוסף תפקיד נוסף .
- הרחב את התפריט בחר תפקיד .
- בתיבת הטקסט של המסנן , הזן
Cloud Storage for Firebase Admin
. - בתפריט של AutoSuggestions המופיע, בחר אחסון ענן עבור Adminase Firebase .
- נְקִישָׁה
הוסף תפקיד נוסף .
- הרחב את התפריט בחר תפקיד .
- בתיבת הטקסט של המסנן , הזן את
Cloud Storage for Firebase Service Agent
. - בתפריט של AutoSuggestions המופיע, בחר אחסון ענן עבור סוכן שירות Firebase .
- לחץ על שמור .