1. Zanim zaczniesz
Podczas tych zajęć z programowania dowiesz się, jak tworzyć aplikacje internetowe oparte na sztucznej inteligencji, które zapewniają użytkownikom atrakcyjne doświadczenia dzięki rozszerzeniom Firebase.
Warunki wstępne
- Znajomość Node.js i JavaScript
Czego się dowiesz
- Jak używać rozszerzeń związanych ze sztuczną inteligencją do przetwarzania języka i danych wejściowych wideo.
- Jak używać Cloud Functions dla Firebase do tworzenia potoku między rozszerzeniami.
- Jak używać JavaScript, aby uzyskać dostęp do wyników generowanych przez rozszerzenia.
Co będziesz potrzebował
- Wybrana przeglądarka, np. Google Chrome
- Środowisko programistyczne z edytorem kodu i terminalem
- Konto Google do tworzenia projektu Firebase i zarządzania nim
2. Przejrzyj aplikacje internetowe i ich usługi Firebase
W tej sekcji opisano aplikacje internetowe, które utworzysz w ramach tych zajęć z programowania, oraz bazę Firebase, której będziesz używać do ich tworzenia.
Przejrzyj aplikację
Firma produkująca koszulki jest przytłoczona długimi recenzjami jednej z jej koszulek i nie jest pewna jej ogólnej oceny. Wypełniona aplikacja internetowa Reviewly podsumowuje każdą recenzję, przyznaje jej ocenę w postaci gwiazdek i na podstawie każdej recenzji wylicza ogólną ocenę produktu. Użytkownicy mogą także rozwinąć każdą podsumowaną recenzję, aby zobaczyć oryginalną recenzję.
Praca | Powód użycia |
Przechowuj tekst każdej recenzji, który jest następnie przetwarzany przez rozszerzenie. | |
Wdróż reguły bezpieczeństwa, aby zabezpieczyć dostęp do usług Firebase. | |
Dodaj próbne recenzje do aplikacji internetowej. | |
Zainstaluj, skonfiguruj i uruchom rozszerzenie Language Tasks with PaLM API , aby podsumować każdą recenzję dodaną do Firestore |
Aplikacja Chatbot
Kadra nauczycielska szkoły jest przytłoczona powtarzającymi się pytaniami na tematy ogólne, dlatego chce zautomatyzować udzielanie odpowiedzi. Ukończona aplikacja Chatbot zapewnia uczniom chatbota konwersacyjnego, który działa w oparciu o model dużego języka (LLM) i może odpowiadać na pytania dotyczące tematów ogólnych. Chatbot ma kontekst historyczny, więc jego odpowiedzi mogą uwzględniać wcześniejsze pytania zadane przez uczniów w tej samej rozmowie.
Praca | Powód użycia |
Aby zarządzać użytkownikami, użyj funkcji logowania się w Google. | |
Przechowuj tekst każdej rozmowy; wiadomości od użytkowników są przetwarzane przez rozszerzenie. | |
Wdróż reguły bezpieczeństwa, aby zabezpieczyć dostęp do usług Firebase. | |
Zainstaluj, skonfiguruj i uruchom Chatbota z rozszerzeniem API PaLM , aby reagował, gdy do Firestore zostanie dodana nowa wiadomość | |
Użyj pakietu Local Emulator Suite, aby lokalnie uruchomić aplikację. | |
Używaj platform internetowych z hostingiem do obsługi aplikacji. |
Aplikacja z podpowiedziami wideo
Departament rządowy chce, aby jego filmy zawierały audiodeskrypcję w celu poprawy dostępności, ale mają setki filmów do dodania adnotacji i potrzebują usprawnionego podejścia. Ukończona aplikacja Video Hint to prototyp, który dział sprawdzi pod kątem oceny jej skuteczności.
Praca | Powód użycia |
Aby zarządzać użytkownikami, użyj funkcji logowania się w Google. | |
Przechowuj tekst każdego podsumowania filmu. | |
Przechowuj filmy i pliki JSON wraz z opisami filmów. | |
Wdróż reguły bezpieczeństwa, aby zabezpieczyć dostęp do usług Firebase. | |
Instaluj, konfiguruj i uruchamiaj różne rozszerzenia (patrz lista poniżej). | |
Zbuduj potok między rozszerzeniami za pomocą Cloud Functions. | |
Użyj pakietu Local Emulator Suite, aby lokalnie uruchomić aplikację. | |
Używaj platform internetowych z hostingiem do obsługi aplikacji. |
Oto rozszerzenia używane w aplikacji Video Hint :
- Oznacz filmy wideo za pomocą rozszerzenia Cloud Video AI — wyodrębnij etykiety z każdego filmu przesłanego do magazynu.
- Zadania językowe z rozszerzeniem PaLM API — podsumowuj etykiety w opis tekstowy.
- Rozszerzenie Konwertuj tekst na mowę — utwórz wersję audio opisu filmu.
3. Skonfiguruj środowisko programistyczne
Sprawdź wersję Node.js
- Sprawdź w terminalu, czy masz zainstalowany Node.js w wersji 20.0.0 lub nowszej:
node -v
- Jeśli nie masz Node.js w wersji 20.0.0 lub nowszej, pobierz ją i zainstaluj .
Pobierz repozytorium
- Jeśli masz zainstalowany git, sklonuj repozytorium GitHub Codelab:
git clone https://github.com/FirebaseExtended/ai-extensions-codelab.git
- Jeśli nie masz zainstalowanego gita, pobierz repozytorium GitHub jako plik ZIP .
Przejrzyj strukturę folderów
Na komputerze lokalnym znajdź sklonowane repozytorium i przejrzyj strukturę folderów. Poniższa tabela zawiera foldery i ich opisy:
Teczka | Opis |
| Kod startowy aplikacji internetowej Reviewly |
| Kod rozwiązania dla aplikacji internetowej Reviewly |
| Kod startowy aplikacji internetowej Chatbot |
| Kod rozwiązania dla aplikacji internetowej Chatbot |
| Kod startowy aplikacji internetowej Video Hint |
| Kod rozwiązania dla aplikacji internetowej Video Hint |
Każdy folder zawiera plik readme.md
, który umożliwia szybkie uruchomienie odpowiedniej aplikacji internetowej przy użyciu uproszczonych instrukcji. Jeśli jednak uczysz się po raz pierwszy, powinieneś ukończyć to ćwiczenie z kodowania, ponieważ zawiera ono najbardziej kompleksowy zestaw instrukcji.
Jeśli nie masz pewności, czy poprawnie zastosowałeś kod zgodnie z instrukcjami zawartymi w tych ćwiczeniach z programowania, kod rozwiązania dla odpowiednich aplikacji znajdziesz w folderach reviewly-end
, chatbot-end
i video-hint-end
.
Zainstaluj interfejs wiersza polecenia Firebase
Uruchom następujące polecenie, aby sprawdzić, czy masz zainstalowany interfejs CLI Firebase i czy jest on w wersji 12.5.4 lub nowszej:
firebase --version
- Jeśli masz zainstalowany interfejs CLI Firebase, ale nie jest to wersja 12.5.4 lub nowsza, zaktualizuj go:
npm update -g firebase-tools
- Jeśli nie masz zainstalowanego interfejsu CLI Firebase, zainstaluj go:
npm install -g firebase-tools
Jeśli nie możesz zainstalować interfejsu CLI Firebase z powodu błędów uprawnień, zapoznaj się z dokumentacją npm lub skorzystaj z innej opcji instalacji .
Zaloguj się do Firebase
- W terminalu przejdź do folderu
ai-extensions-codelab
i zaloguj się do Firebase:cd ai-extensions-codelab firebase login
- Jeśli Twój terminal wyświetla informację, że jesteś już zalogowany w Firebase, przejdź do sekcji Konfigurowanie projektu Firebase w tym ćwiczeniu z programowania.
- W zależności od tego, czy chcesz, aby Firebase zbierał dane, wpisz
Y
lubN
- W przeglądarce wybierz swoje konto Google, a następnie kliknij Zezwalaj .
4. Skonfiguruj projekt Firebase
W tej sekcji skonfigurujesz projekt Firebase i powiążesz z nim aplikację internetową Firebase. Włączysz także usługi Firebase używane przez przykładowe aplikacje internetowe.
Utwórz projekt Firebase
- W konsoli Firebase kliknij Utwórz projekt .
- W polu tekstowym Wprowadź nazwę projektu wpisz
AI Extensions Codelab
(lub wybraną nazwę projektu), a następnie kliknij Kontynuuj . - Do tych zajęć z programowania nie potrzebujesz Google Analytics, więc wyłącz opcję Włącz Google Analytics dla tego projektu .
- Kliknij opcję Utwórz projekt .
- Poczekaj na udostępnienie projektu, a następnie kliknij przycisk Kontynuuj .
- W projekcie Firebase przejdź do Ustawień projektu . Zanotuj identyfikator projektu, ponieważ będziesz go później potrzebować. Ten unikalny identyfikator określa sposób identyfikacji Twojego projektu (na przykład w interfejsie CLI Firebase).
Pobierz konto usługi Firebase
Niektóre aplikacje internetowe, które utworzysz w ramach tych zajęć z programowania, korzystają z renderowania po stronie serwera za pomocą Next.js .
Zestaw SDK administratora Firebase dla Node.js służy do zapewnienia działania reguł bezpieczeństwa z poziomu kodu po stronie serwera. Aby korzystać z interfejsów API w Firebase Admin, musisz pobrać konto usługi Firebase z konsoli Firebase.
- W konsoli Firebase przejdź do strony Konta usług w ustawieniach projektu .
- Kliknij Wygeneruj nowy klucz prywatny > Wygeneruj klucz .
- Po pobraniu pliku do systemu plików uzyskaj pełną ścieżkę do tego pliku.
Na przykład, jeśli pobrałeś plik do folderu Pobrane , pełna ścieżka może wyglądać następująco:/Users/me/Downloads/my-project-id-firebase-adminsdk-123.json
- W terminalu ustaw zmienną środowiskową
GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę pobranego klucza prywatnego. W środowisku Unix polecenie może wyglądać następująco:export GOOGLE_APPLICATION_CREDENTIALS="/Users/me/Downloads/my-project-id-firebase-adminsdk-123.json"
- Pozostaw ten terminal otwarty i używaj go do końca ćwiczeń z kodowania, ponieważ zmienna środowiskowa może zostać utracona, jeśli rozpoczniesz nową sesję terminala.
Jeśli otworzysz nową sesję terminala, musisz ponownie uruchomić poprzednie polecenie.
Uaktualnij swój plan cenowy Firebase
Aby korzystać z funkcji Cloud Functions i rozszerzeń Firebase, Twój projekt Firebase musi być objęty planem cenowym Blaze , co oznacza, że jest powiązany z kontem rozliczeniowym Cloud .
- Konto rozliczeniowe Cloud wymaga metody płatności, np. karty kredytowej.
- Jeśli dopiero zaczynasz korzystać z Firebase i Google Cloud, sprawdź, czy kwalifikujesz się do kredytu w wysokości 300 USD i bezpłatnego konta rozliczeniowego Cloud w wersji próbnej .
Należy jednak pamiętać, że ukończenie tych ćwiczeń z programowania nie powinno wiązać się z żadnymi rzeczywistymi opłatami.
Aby uaktualnić swój projekt do planu Blaze, wykonaj następujące kroki:
- W konsoli Firebase wybierz opcję uaktualnienia planu .
- W oknie dialogowym wybierz plan Blaze, a następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby powiązać swój projekt z kontem rozliczeniowym Cloud.
Jeśli konieczne było utworzenie konta rozliczeniowego Cloud, konieczne może być przejście z powrotem do procesu aktualizacji w konsoli Firebase w celu dokończenia aktualizacji.
Skonfiguruj usługi Firebase w konsoli Firebase
W tej sekcji udostępnisz i skonfigurujesz kilka usług Firebase używanych przez aplikacje internetowe biorące udział w tym laboratorium. Należy pamiętać, że nie wszystkie z tych usług są używane w każdej aplikacji internetowej, ale skonfigurowanie ich już teraz jest wygodą podczas pracy nad tym laboratorium z programowania.
Skonfiguruj uwierzytelnianie
Uwierzytelniania będziesz używać zarówno w aplikacji Chatbot , jak i aplikacji Video Hint . Pamiętaj jednak, że jeśli tworzysz prawdziwą aplikację, każda aplikacja powinna mieć swój własny projekt Firebase .
- W konsoli Firebase przejdź do opcji Uwierzytelnianie .
- Kliknij Rozpocznij .
- W kolumnie Dodatkowi dostawcy kliknij Google > Włącz .
- W polu tekstowym Publiczna nazwa projektu wprowadź łatwą do zapamiętania nazwę, na przykład
My AI Extensions Codelab
. - Z listy rozwijanej Adres e-mail pomocy technicznej dotyczącej projektu wybierz swój adres e-mail.
- Kliknij Zapisz .
Skonfiguruj Cloud Firestore
Będziesz używać Firestore ze wszystkimi trzema aplikacjami. Pamiętaj jednak, że jeśli tworzysz prawdziwą aplikację, każda aplikacja powinna mieć swój własny projekt Firebase .
- W konsoli Firebase przejdź do Firestore .
- Kliknij Utwórz bazę danych > Rozpocznij w trybie testowym > Dalej .
W dalszej części tego ćwiczenia z programowania dodasz reguły zabezpieczeń, aby zabezpieczyć swoje dane. Nie rozpowszechniaj ani nie udostępniaj aplikacji publicznie bez dodania reguł bezpieczeństwa do swojej bazy danych. - Użyj lokalizacji domyślnej lub wybierz dowolną lokalizację.
W przypadku prawdziwej aplikacji chcesz wybrać lokalizację blisko użytkowników. Pamiętaj, że tej lokalizacji nie można później zmienić i automatycznie stanie się ona także lokalizacją Twojego domyślnego zasobnika Cloud Storage (następny krok). - Kliknij Gotowe .
Skonfiguruj Cloud Storage dla Firebase
Będziesz używać Cloud Storage z aplikacją Video Hint i wypróbujesz rozszerzenie Konwertuj tekst na mowę (następny krok ćwiczeń z programowania).
- W konsoli Firebase przejdź do opcji Pamięć .
- Kliknij Rozpocznij > Rozpocznij w trybie testowym > Dalej .
W dalszej części tego ćwiczenia z programowania dodasz reguły zabezpieczeń, aby zabezpieczyć swoje dane. Nie rozpowszechniaj ani nie udostępniaj aplikacji publicznie bez dodania reguł bezpieczeństwa dla swojego zasobnika pamięci. - Lokalizacja Twojego segmentu powinna już być wybrana (ze względu na konfigurację Firestore w poprzednim kroku).
- Kliknij Gotowe .
W kolejnych sekcjach tego ćwiczenia z programowania zainstalujesz rozszerzenia i zmodyfikujesz bazy kodu każdej przykładowej aplikacji w tym ćwiczeniu z programowania, aby uzyskać działanie trzech różnych aplikacji internetowych.
5. Skonfiguruj rozszerzenie „Language Tasks with PaLM API” dla aplikacji Reviewly
Zainstaluj Zadania Językowe z rozszerzeniem PaLM API
- Przejdź do Zadań językowych z rozszerzeniem PaLM API .
- Kliknij Zainstaluj w konsoli Firebase .
- Wybierz swój projekt Firebase.
- W sekcji Przejrzyj interfejsy API włączone i utworzone zasoby kliknij opcję Włącz obok sugerowanych usług:
- Kliknij Dalej > Dalej.
- W polu tekstowym Ścieżka kolekcji wpisz
bot
. - W polu tekstowym Podpowiedź wpisz
.
- W polu tekstowym Pola zmiennych wprowadź
input
. - W polu tekstowym Pole odpowiedzi wpisz
text
. - Z listy rozwijanej lokalizacji Cloud Functions wybierz Iowa (us-central1) lub lokalizację wybraną wcześniej dla Firestore i Cloud Storage.
- Z listy rozwijanej Model języka wybierz tekst-bison-001 .
- Pozostaw wszystkie pozostałe wartości jako domyślne.
- Kliknij opcję Zainstaluj rozszerzenie i poczekaj na zainstalowanie rozszerzenia.
Wypróbuj Zadania językowe z rozszerzeniem PaLM API
Chociaż celem tego ćwiczenia z programowania jest interakcja z zadaniami językowymi z rozszerzeniem API PaLM za pośrednictwem aplikacji internetowej, warto zrozumieć, jak działa rozszerzenie, uruchamiając je za pomocą konsoli Firebase. Rozszerzenie uruchamia się po dodaniu dokumentu Cloud Firestore do kolekcji bot
.
Aby zobaczyć, jak działa rozszerzenie za pomocą konsoli Firebase, wykonaj następujące kroki:
- W konsoli Firebase przejdź do Firestore .
- W kolekcji
bot
kliknijDodaj dokument .
- W polu tekstowym Identyfikator dokumentu kliknij opcję Auto-ID .
- W polu tekstowym Pole wprowadź
input
. - W polu tekstowym Wartość wpisz
Tell me about the moon
. - Kliknij Zapisz i poczekaj kilka sekund. Twój dokument w kolekcji
bot
zawiera teraz odpowiedź na Twoje zapytanie.
6. Skonfiguruj aplikację Recenzja do korzystania z Firebase
Aby uruchomić aplikację Reviewly , musisz skonfigurować kod aplikacji i interfejs wiersza polecenia Firebase, aby współpracowały z projektem Firebase.
Dodaj usługi i konfigurację Firebase do kodu swojej aplikacji
Aby móc korzystać z Firebase, baza kodu Twojej aplikacji wymaga zestawów SDK Firebase dla usług, z których chcesz korzystać, oraz konfiguracji Firebase, która informuje te zestawy SDK, którego projektu Firebase mają używać.
Przykładowa aplikacja tego laboratorium programistycznego zawiera już cały niezbędny kod importu i inicjalizacji dla zestawów SDK (zobacz reviewly-start/js/reviews.js
), więc nie musisz ich dodawać. Jednak przykładowa aplikacja ma tylko wartości zastępcze dla konfiguracji Firebase (patrz reviewly-start/js/firebase-config.js
), więc musisz zarejestrować swoją aplikację w projekcie Firebase, aby uzyskać unikalne wartości konfiguracji Firebase dla swojej aplikacji.
- W konsoli Firebase w projekcie Firebase przejdź do przeglądu projektu i kliknij
Sieć .
- W polu tekstowym Pseudonim aplikacji wpisz niezapomniany pseudonim aplikacji, na przykład
My Reviewly app
. - Nie zaznaczaj pola wyboru Skonfiguruj także hosting Firebase dla tej aplikacji . Te kroki wykonasz w dalszej części ćwiczeń z kodowania.
- Kliknij opcję Zarejestruj aplikację .
- Konsola wyświetla fragment kodu służący do dodawania i inicjowania pakietu SDK Firebase za pomocą obiektu konfiguracyjnego Firebase specyficznego dla aplikacji. Skopiuj wszystkie właściwości z obiektu konfiguracyjnego Firebase.
- W edytorze kodu otwórz plik
reviewly-start/js/firebase-config.js
. - Zastąp wartości zastępcze wartościami, które właśnie skopiowałeś. Nie ma problemu, jeśli masz właściwości i wartości usług Firebase, których nie używasz w aplikacji Reviewly .
- Zapisz plik.
- W konsoli Firebase kliknij Kontynuuj w konsoli .
Skonfiguruj terminal tak, aby uruchamiał polecenia Firebase CLI w projekcie Firebase
- W terminalu przejdź do pobranego wcześniej folderu
ai-extensions-codelab
. - Przejdź do folderu aplikacji internetowej
reviewly-start
:cd reviewly-start
- Spraw, aby interfejs CLI Firebase uruchamiał polecenia dla konkretnego projektu Firebase:
firebase use YOUR_PROJECT_ID
Uruchom i wyświetl aplikację internetową Review
Aby uruchomić i wyświetlić aplikację internetową, wykonaj następujące kroki:
- W terminalu zainstaluj zależności, a następnie uruchom aplikację internetową:
npm install # Include the parentheses in the following command. (cd functions && npm install) npm run dev
- W przeglądarce przejdź do adresu URL widocznego na terminalu. Na przykład: http://localhost:8080 .
Strona powinna się załadować, ale zauważysz, że brakuje różnych funkcji. Dodamy je w kolejnych krokach tego ćwiczenia z kodowania.
7. Dodaj funkcjonalność do aplikacji Review
W ostatnim kroku tych ćwiczeń z programowania uruchomiłeś lokalnie aplikację Reviewly , ale nie miała ona zbyt wielu funkcji i nie korzystała jeszcze z zainstalowanego rozszerzenia. Na tym etapie ćwiczeń z programowania dodasz tę funkcję i użyjesz aplikacji internetowej do uruchomienia rozszerzenia.
Wdróż reguły bezpieczeństwa
Przykładowa aplikacja tego laboratorium kodowania zawiera zestawy reguł bezpieczeństwa dla Firestore i Cloud Storage dla Firebase. Po wdrożeniu tych reguł bezpieczeństwa w projekcie Firebase dane w Twojej bazie danych i w zasobniku będą lepiej chronione przed niewłaściwym wykorzystaniem.
Reguły te można wyświetlić w plikach firestore.rules
i storage.rules
.
- Aby wdrożyć te reguły bezpieczeństwa, uruchom to polecenie w terminalu:
firebase deploy --only firestore:rules,storage
- Jeśli pojawi się pytanie:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
wybierz opcję Tak .
Zaktualizuj kod aplikacji, aby uruchomić rozszerzenie
W aplikacji Recenzja nowa recenzja dodana do Firestore uruchamia rozszerzenie w celu podsumowania recenzji.
- W edytorze kodu otwórz
functions/add-mock-reviews.js
. - Zastąp zmienną
reviewWithPrompt
następującym kodem, który poprosi model języka o krótszą recenzję.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.`;
- Po zmiennej
reviewWithPrompt
zastąp zmiennąreviewDocument
następującym kodem, który utworzy dokument recenzji, aby można go było dodać do Firestore.const reviewDocument = { input: reviewWithPrompt, originalReview: review, timestamp: Timestamp.now(), }; getFirestore().collection(DB_COLLECTION_NAME).add(reviewDocument);
- Zapisz plik.
- W pliku
js/reviews.js
, poInsert code below, to import your Firebase Callable Cloud Function
, zaimportuj wywoływalną funkcję Firebase HTTP za pomocą pomocnikahttpsCallable
:const addMockReviews = httpsCallable(functions, "addMockReviews");
- Po
Insert code below, to invoke your Firebase Callable Cloud Function
, wywołaj funkcję wywoływalną Firebase HTTP:await addMockReviews();
- Zapisz plik.
Wdróż funkcję dodawania nowych recenzji
Aplikacja internetowa Reviewly korzysta z funkcji chmury w celu dodawania recenzji. Jednak obecnie funkcja chmury nie jest wdrożona.
Aby wdrożyć swoją funkcję za pomocą interfejsu CLI Firebase, wykonaj następujące kroki:
- W terminalu, będąc nadal w folderze
reviewly-start
, naciśnijControl+C
, aby zatrzymać serwer. - Wdróż swoją funkcję:
firebase deploy --only functions
- Jeśli
Permission denied while using the Eventarc Service Agent
lub podobny błąd, odczekaj kilka minut , a następnie ponów polecenie.
Właśnie wdrożyłeś swoją pierwszą niestandardową funkcję w Cloud Functions. Konsola Firebase oferuje pulpit nawigacyjny , w którym możesz zobaczyć wszystkie funkcje wdrażane w projekcie Firebase.
Uruchom i wyświetl ponownie aplikację internetową Reviewly (teraz z funkcjonalnością)
Aby uruchomić i wyświetlić działającą już aplikację internetową, wykonaj następujące kroki:
- W terminalu uruchom ponownie serwer:
npm run dev
- W przeglądarce przejdź do adresu URL widocznego na terminalu. Na przykład: http://localhost:8080 .
- W aplikacji kliknij Dodaj kilka próbnych recenzji i poczekaj kilka sekund, aż pojawi się kilka długich recenzji.
W tle językowe zadania z rozszerzeniem PaLM API reagują na nowy dokument reprezentujący nową recenzję. Podpowiedź dodana wcześniej wymaga krótszego podsumowania z modelu językowego. - Aby wyświetlić całą recenzję i zachętę użytą do recenzji, kliknij jedną z recenzji, a następnie wybierz opcję Pokaż zachętę PaLM .
8. Skonfiguruj rozszerzenie „Chatbot with PaLM API” dla aplikacji Chatbot
Zainstaluj Chatbota z rozszerzeniem PaLM API
- Przejdź do Chatbota z rozszerzeniem PaLM API .
- Kliknij Zainstaluj w konsoli Firebase .
- Wybierz swój projekt Firebase.
- Kliknij Dalej > Dalej > Dalej , aż dojdziesz do sekcji Konfiguruj rozszerzenie .
- W polu tekstowym Ścieżka kolekcji wpisz
users/{uid}/discussion/{discussionId}/messages
. - Z listy rozwijanej lokalizacji Cloud Functions wybierz Iowa (us-central1) lub lokalizację wybraną wcześniej dla Firestore i Cloud Storage.
- Z listy rozwijanej Model języka wybierz chat-bison .
- Pozostaw wszystkie pozostałe wartości jako domyślne.
- Kliknij opcję Zainstaluj rozszerzenie i poczekaj na zainstalowanie rozszerzenia.
Wypróbuj Chatbota z rozszerzeniem PaLM API
Chociaż celem tych zajęć z programowania jest interakcja z Chatbotem z rozszerzeniem API PaLM za pośrednictwem aplikacji internetowej, warto zrozumieć, jak działa rozszerzenie, uruchamiając je za pomocą konsoli Firebase. Rozszerzenie uruchamia się, gdy w kolekcji users/{uid}/discussion/{discussionId}/messages
tworzony jest dokument Cloud Firestore.
- W konsoli Firebase przejdź do Firestore .
- Kliknij
Rozpocznij zbieranie .
- W polu tekstowym Identyfikator kolekcji wprowadź
users
i kliknij Dalej . - W polu tekstowym Identyfikator dokumentu kliknij opcję Auto-ID , a następnie kliknij przycisk Zapisz .
- W polu tekstowym Identyfikator kolekcji wprowadź
- W kolekcji
users
kliknijRozpocznij zbieranie .
- W polu tekstowym Identyfikator kolekcji wpisz
discussion
i kliknij Dalej . - W polu tekstowym Identyfikator dokumentu kliknij opcję Auto-ID , a następnie kliknij przycisk Zapisz .
- W polu tekstowym Identyfikator kolekcji wpisz
- W zbiorze
discussion
kliknijRozpocznij zbieranie .
- W polu tekstowym Identyfikator kolekcji wpisz
messages
, a następnie kliknij Dalej . - W polu tekstowym Identyfikator dokumentu kliknij opcję Auto-ID .
- W polu tekstowym Pole wpisz
prompt
. - W polu tekstowym Wartość wpisz
Tell me 5 random fruits
. - Kliknij Zapisz i poczekaj kilka sekund. Kolekcja
messages
zawiera teraz dokument zawierający odpowiedź na zapytanie.
- W polu tekstowym Identyfikator kolekcji wpisz
- W kolekcji
messages
kliknijDodaj dokument .
- W polu tekstowym Identyfikator dokumentu kliknij opcję Auto-ID .
- W polu tekstowym Pole wpisz
prompt
. - W polu tekstowym Wartość wpisz
And now, vegetables
. - Kliknij Zapisz i poczekaj kilka sekund. Kolekcja
messages
zawiera teraz dokument zawierający odpowiedź na zapytanie.
9. Skonfiguruj aplikację Chatbot do korzystania z Firebase
Aby uruchomić aplikację Chatbot , musisz skonfigurować kod aplikacji i interfejs CLI Firebase do interakcji z projektem Firebase.
Dodaj usługi i konfigurację Firebase do kodu swojej aplikacji
Aby móc korzystać z Firebase, baza kodu Twojej aplikacji wymaga zestawów SDK Firebase dla usług, z których chcesz korzystać, oraz konfiguracji Firebase, która informuje te zestawy SDK, którego projektu Firebase mają używać.
Przykładowa aplikacja tego laboratorium programistycznego zawiera już cały niezbędny kod importu i inicjalizacji zestawów SDK (zobacz chatbot-start/lib/firebase/firebase.js
), więc nie musisz ich dodawać. Jednak przykładowa aplikacja ma tylko wartości zastępcze dla konfiguracji Firebase (patrz chatbot-start/lib/firebase/firebase-config.js
), więc musisz zarejestrować swoją aplikację w projekcie Firebase, aby uzyskać unikalne wartości konfiguracji Firebase dla swojego aplikacja.
- W konsoli Firebase w projekcie Firebase przejdź do przeglądu projektu i kliknij
Web (lub kliknij Dodaj aplikację, jeśli zarejestrowałeś już aplikację w projekcie).
- W polu tekstowym Pseudonim aplikacji wprowadź niezapomniany pseudonim aplikacji, np.
My Chatbot app
. - Nie zaznaczaj pola wyboru Skonfiguruj także hosting Firebase dla tej aplikacji . Te kroki wykonasz w dalszej części ćwiczeń z kodowania.
- Kliknij opcję Zarejestruj aplikację .
- Konsola wyświetla fragment kodu służący do dodawania i inicjowania pakietu SDK Firebase za pomocą obiektu konfiguracyjnego Firebase specyficznego dla aplikacji. Skopiuj wszystkie właściwości z obiektu konfiguracyjnego Firebase.
- W edytorze kodu otwórz plik
chatbot-start/lib/firebase/firebase-config.js
. - Zastąp wartości zastępcze wartościami, które właśnie skopiowałeś. Nie ma problemu, jeśli masz właściwości i wartości usług Firebase, których nie używasz w aplikacji Chatbot .
- Zapisz plik.
- W konsoli Firebase kliknij Kontynuuj w konsoli .
Skonfiguruj terminal tak, aby uruchamiał polecenia Firebase CLI w projekcie Firebase
- W terminalu naciśnij
Control+C
, aby zatrzymać na serwerze uruchamianie poprzedniej aplikacji internetowej. - W terminalu przejdź do folderu aplikacji internetowej
chatbot-start
:cd ../chatbot-start
- Spraw, aby interfejs CLI Firebase uruchamiał polecenia dla konkretnego projektu Firebase:
firebase use YOUR_PROJECT_ID
Skonfiguruj bazę kodu swojej aplikacji, aby korzystać z hostingu Firebase obsługującego platformę
W tym laboratorium z programowania wykorzystywane są platformy internetowe z hostingiem (wersja zapoznawcza) z aplikacją internetową Chatbot .
- W swoim terminalu włącz platformy internetowe z Firebase Hosting:
firebase experiments:enable webframeworks
- Zainicjuj hosting Firebase:
firebase init hosting
- Czy po wyświetleniu monitu
Detected an existing
bazę koduNext.js
codebase in your current directory, should we use this?
, naciśnij Y. - Po wyświetleniu monitu
In which region would you like to host server-side content, if applicable?
, wybierz domyślny region lub lokalizację wybraną wcześniej dla Firestore i Cloud Storage, a następnie naciśnij klawiszEnter
(lubreturn
w systemie macOS). - Po wyświetleniu monitu
Set up automatic builds and deploys with GitHub?
, naciśnijN
Uruchom i wyświetl aplikację internetową Chatbot
- W terminalu zainstaluj zależności, a następnie uruchom aplikację internetową:
npm install firebase emulators:start --only hosting
- W przeglądarce przejdź do adresu URL hostowanego lokalnie. W większości przypadków jest to http://localhost:5000/ lub coś podobnego.
Strona powinna się załadować, ale zauważysz, że brakuje różnych funkcji. Dodamy je w kolejnych krokach tego ćwiczenia z kodowania.
Rozwiązywanie problemów z działaniem aplikacji internetowej
Jeśli widzisz błąd na stronie internetowej, która zaczyna się w ten sposób: Error: Firebase session cookie has incorrect...
, musisz usunąć wszystkie pliki cookie ze środowiska localhost. W tym celu postępuj zgodnie z instrukcją usuwania plików cookies | Dokumentacja DevTools. .
10. Dodaj funkcjonalność do aplikacji Chatbot
W ostatnim kroku tych ćwiczeń z programowania uruchomiłeś lokalnie aplikację Chatbot , ale nie miała ona zbyt wielu funkcji i nie korzystała jeszcze z zainstalowanego rozszerzenia. Na tym etapie ćwiczeń z programowania dodasz tę funkcję i użyjesz aplikacji internetowej do uruchomienia rozszerzenia.
Wdróż reguły bezpieczeństwa
Przykładowa aplikacja tego laboratorium kodowania zawiera zestawy reguł bezpieczeństwa dla Firestore i Cloud Storage dla Firebase. Po wdrożeniu tych reguł bezpieczeństwa w projekcie Firebase dane w Twojej bazie danych i w zasobniku będą lepiej chronione przed niewłaściwym wykorzystaniem.
Reguły te można wyświetlić w plikach firestore.rules
i storage.rules
.
- Aby wdrożyć te reguły bezpieczeństwa, uruchom to polecenie w terminalu:
firebase deploy --only firestore:rules,storage
- Jeśli pojawi się pytanie:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
wybierz opcję Tak .
Zaktualizuj kod, aby dodać wiadomości do Cloud Firestore
W aplikacji Chatbot nowa wiadomość od użytkownika jest dodawana do Firestore, co powoduje, że rozszerzenie wygeneruje odpowiedź.
- W edytorze kodu otwórz plik
lib/firebase/firestore.js
. - Na końcu pliku znajdź funkcję
addNewMessage
, która obsługuje dodawanie nowych wiadomości.
Funkcja przyjmuje już następujące właściwości obiektu:
Po przygotowaniu tych zmiennych możesz dodać dokument Cloud Firestore reprezentujący nową wiadomość.Parametr
Opis
userId
Identyfikator zalogowanego użytkownika
discussionId
Identyfikator dyskusji, do której dodano wiadomość
message
Treść wiadomości
db
Instancja bazy danych Firestore
- W treści funkcji
addNewMessage
po// Insert your code below ⬇️
komentarzu dodaj następujący kod: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(), });
Zaktualizuj kod, aby skonstruować zapytanie w celu uzyskania wiadomości
- Wciąż w pliku
lib/firebase/firestore.js
znajdź funkcjęgetMessagesQuery
, która musi zwrócić zapytanie Cloud Firestore lokalizujące wiadomości przechowywane w ścieżce kolekcjiusers/{uid}/discussion/{discussionId}/messages
. - Zastąp całą funkcję
getMessagesQuery
następującym kodem: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")); }
Zaktualizuj kod, aby obsługiwać dokumenty wiadomości Cloud Firestore
- Wciąż w pliku
lib/firebase/firestore.js
znajdź funkcjęhandleMessageDoc
, która odbiera dokument Cloud Firestore reprezentujący pojedynczą wiadomość.
Ta funkcja wymaga formatowania i struktury danych w sposób mający sens dla interfejsu użytkownika aplikacji Chatbot . - Zastąp całą funkcję
handleMessageDoc
następującym kodem: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; }
- Zapisz plik.
Uruchom i wyświetl ponownie aplikację internetową Chatbot (teraz z funkcjonalnością)
Aby uruchomić i wyświetlić działającą już aplikację internetową, wykonaj następujące kroki:
- W przeglądarce wróć do zakładki z aplikacją internetową Chatbot i załaduj ponownie stronę.
- Kliknij Zaloguj się przez Google .
- W razie potrzeby wybierz swoje konto Google.
- Po zalogowaniu załaduj ponownie stronę.
- W polu tekstowym Wpisz wiadomość wpisz wiadomość, np.
Tell me about space
. - Kliknij Wyślij i poczekaj kilka sekund, aż aplikacja internetowa Chatbot odpowie.
Kolejną zaletą Chatbota z rozszerzeniem PaLM API jest historia rozmów.
Aby zobaczyć przykład jego zdolności do nawiązywania kontaktu z kontekstem historycznym, wykonaj następujące kroki:
- W polu tekstowym Wpisz wiadomość zadaj pytanie, na przykład
What are five random fruits?
. - W polu tekstowym Wpisz wiadomość zadaj pytanie uzupełniające powiązane z poprzednim pytaniem, na przykład
And what about vegetables?
.
Aplikacja internetowa Chatbot odpowiada wiedzą historyczną. Mimo że w Twoim ostatnim pytaniu nie określono pięciu losowych warzyw, Chatbot z rozszerzeniem PaLM API rozumie pytania uzupełniające.
11. Skonfiguruj rozszerzenie „Konwertuj tekst na mowę” dla aplikacji Video Hint
Zainstaluj rozszerzenie konwertowania tekstu na mowę
- Przejdź do konwersji tekstu na rozszerzenie mowy .
- Kliknij Instaluj w konsoli Firebase .
- Wybierz swój projekt Firebase.
- Kliknij Następny .
- W sekcji API recenzji i utworzonych zasobów kliknij Włącz obok dowolnych usług sugerowanych:
- Kliknij Dalej, a następnie wybierz Dotację obok wszelkich sugerowanych uprawnień.
- Kliknij Następny .
- W polu tekstowym ścieżki kolekcji wprowadź
bot
. - W polu tekstowym ścieżki pamięci Wprowadź
tts
. - Pozostaw wszystkie inne wartości jako ich domyślne opcje.
- Kliknij Zainstaluj rozszerzenie i poczekaj na zainstalowanie rozszerzenia.
Wypróbuj konwertowanie tekstu na rozszerzenie mowy
Podczas gdy celem tego Codelab jest interakcja z rozszerzeniem tekstu na rozszerzenie tekstu na mowę za pośrednictwem aplikacji internetowej, pomocne jest zrozumienie, jak działa rozszerzenie poprzez wyzwalanie rozszerzenia za pomocą konsoli Firebase. Rozszerzenie uruchamia się, gdy w kolekcji bot
jest tworzony dokument Cloud Firestore.
Aby zobaczyć, jak działa rozszerzenie za pomocą konsoli Firebase, wykonaj następujące kroki:
- W konsoli Firebase przejdź do Firestore
- Kliknij
Kolekcja start .
- W polu tekstowym identyfikatora kolekcji wprowadź
bot
. - Kliknij Następny .
- W polu tekstowym Dokument ID kliknij Auto-ID .
- W polu tekstowym wprowadź
text
. - W polu tekstowym Wartość wprowadź
The quick brown fox jumps over the lazy dog
. - Kliknij Zapisz .
Aby zobaczyć i usłyszeć utworzony plik MP3, wykonaj następujące kroki:
- W konsoli Firebase przejdź do przechowywania .
- W okienku, w którym możesz przesyłać pliki, zwróć uwagę na nazwę wiadra po wartości
gs://
. To nazwa twojego domyślnego wiadra dla tego projektu. Potrzebujesz go w różnych zadaniach w tym kodelab.
- W konsoli Google Cloud przejdź do przechowywania w chmurze .
- Wybierz swój projekt.
Jeśli nie widzisz swojego projektu na najnowszej liście projektów, kliknij Projekt , aby zlokalizować swój projekt w Picker Picker.
- Wybierz domyślne wiadro pamięci.
- Przejdź do
tts/
Folder. - Kliknij plik MP3.
- Na końcu pliku MP3 kliknij
i zauważ, że twój tekst jest przekonwertowany na mowę.
12. Skonfiguruj rozszerzenie „Filmy z etykietami z AI Video Video Ai” dla aplikacji wideo wideo
Zainstaluj filmy z etykietami z rozszerzeniem AI Cloud Video AI
- Przejdź do filmów z etykietami z rozszerzeniem AI Video Cloud Video .
- Kliknij Instaluj w konsoli Firebase .
- Wybierz swój projekt Firebase.
- Kliknij Dalej> Dalej, aż osiągniesz sekcję rozszerzenia konfiguracji .
- Z rozwijanej lokalizacji funkcji w chmurze wybierz obsługiwaną lokalizację (lokalizację, którą wcześniej wybrałeś do przechowywania Firestore i chmury lub najbliższe). Aby uzyskać obsługiwane lokalizacje, zobacz sekcję
location_id
wAnnotateVideoRequest
. - Z rozwijanego modelu wybierz najnowsze .
- Z menu rozwijanego kamery stacjonarnej wybierz nr .
- Pozostaw wszystkie inne wartości jako domyślne.
- Kliknij Zainstaluj rozszerzenie i poczekaj na zainstalowanie rozszerzenia.
Wypróbuj filmy z etykietami z rozszerzeniem AI Cloud Video AI
Podczas gdy celem tego Codelab jest interakcja z filmami z etykietami z rozszerzeniem AI Video Video za pośrednictwem aplikacji internetowej, pomocne jest zrozumienie, jak działa rozszerzenie poprzez wyzwalanie rozszerzenia za pomocą konsoli FireBase. Rozszerzenie uruchamia się, gdy plik wideo jest przesyłany do wiadra pamięci.
Aby zobaczyć, jak działa rozszerzenie za pomocą konsoli Firebase, wykonaj następujące kroki:
- Przejdź do przechowywania w projekcie FireBase >
Utwórz folder .
- W polu tekstowym nazwy folderu wprowadź
video_annotation_input
.
- Kliknij Folder Dodaj .
- W folderze
video_annotation_input
kliknij plik przesyłania . - W
ai-extensions-codelab/video-hint-start/public/videos
, który sklonowałeś lub pobrałeś wcześniej, wybierz pierwszy plik wideo. - Z powrotem w przeglądarce, w Google Cloud Console, przejdź do przechowywania w chmurze .
- Wybierz domyślne wiadro pamięci, które zauważyłeś wcześniej.
- Kliknij folder
video_annotation_output
.
Jeśli nie widzisz folderuvideo_annotation_output
, poczekaj kilka sekund i odśwież stronę, ponieważ interfejs API inteligencji wideo może nadal przetwarzać wideo.
- Zauważ, że istnieje plik JSON, który jest zgodny z podobną nazwą do przesłanego wcześniej pliku.
- Kliknij
Pobierz nazwę pliku .
- Otwórz pobrany plik JSON w edytorze kodu. Zawiera surowe dane wyjściowe z interfejsu API Intelligence Video, który zawiera wykryte etykiety przesłanego wideo.
13. Skonfiguruj aplikację do nośnika wideo, aby używać Firebase
Aby uruchomić aplikację wideo , musisz skonfigurować kod aplikacji i Firebase CLI, aby wchodzić w interakcje z projektem FireBase.
Dodaj usługi FireBase i konfigurację do kodu aplikacji
Aby korzystać z FireBase, baza kodu aplikacji potrzebuje SDKS FireBase do usług, których chcesz użyć, oraz konfigurację Firebase, która informuje o tym, których projekt Firebase Project.
Przykładowa aplikacja Codelab zawiera już cały niezbędny kod importu i inicjalizacji dla SDK (patrz video-hint-start/lib/firebase/firebase.js
), więc nie musisz ich dodawać. Jednak przykładowa aplikacja ma tylko wartości zastępcze dla konfiguracji Firebase (patrz video-hint-start/lib/firebase/firebase-config.js
), więc musisz zarejestrować swoją aplikację w projekcie FireBase, aby uzyskać unikalne wartości konfiguracji Firebase Configuration Wartości konfiguracji dla Twojej aplikacji.
- W konsoli Firebase, w projekcie Firebase, przejdź do przeglądu projektu , a następnie kliknij
Web (lub kliknij Dodaj aplikację, jeśli już zarejestrowałeś aplikację w projekcie).
- W polu tekstowym aplikacji wprowadź pamiętny pseudonim aplikacji, taki jak
My Video Hint app
. - Nie wybieraj również konfiguracji hostingu FireBase dla tej aplikacji . Zrobisz te kroki później w Codelab.
- Kliknij opcję Zarejestruj aplikację .
- Konsola wyświetla fragment kodu do dodawania i inicjalizacji SDK FireBase za pomocą obiektu konfiguracji FireBase specyficznej dla aplikacji. Skopiuj wszystkie właściwości w obiekcie konfiguracji FireBase.
- W edytorze kodu otwórz plik
video-hint-start/lib/firebase/firebase-config.js
. - Zastąp wartości zastępcze wartościami, które właśnie skopiowałeś. Jest OK, jeśli masz właściwości i wartości usług Firebase, których nie używasz w aplikacji do nośnika wideo .
- Zapisz plik.
- Po powrocie do konsoli Firebase kliknij kontynuuj konsolę .
Skonfiguruj swój terminal, aby uruchomić polecenia CLI Firebase w stosunku do projektu Firebase
- W terminalu naciśnij
Control+C
, aby powstrzymać serwer przed uruchomieniem poprzedniej aplikacji internetowej. - W terminalu przejdź do folderu aplikacji
video-hint-start
:cd ../video-hint-start
- Wykonaj polecenia CLI Firebase CLI przeciwko określonemu projektowi Firebase:
firebase use YOUR_PROJECT_ID
Skonfiguruj bazę kodu aplikacji, aby używać hostingu FireBase Framework.
Ten Codelab korzysta z frameworków internetowych z hostingiem (podgląd) z aplikacją internetową wideo .
- W terminalu włącz frameworki internetowe z hostingiem Firebase:
firebase experiments:enable webframeworks
- Zainicjuj hosting bazy ogniowej:
firebase init hosting
- Czy po wyświetleniu
Detected an existing
bazy kodowejNext.js
codebase in your current directory, should we use this?
, naciśnij Y. - W przypadku monitu
In which region would you like to host server-side content, if applicable?
, wybierz region domyślny lub lokalizację, którą wcześniej wybrałeś do pamięci Firestore i Cloud Storage, a następnie naciśnijEnter
(lubreturn
na macOS). - Po wyświetleniu monitu w
Set up automatic builds and deploys with GitHub?
, PressN
.
Uruchom i wyświetl aplikację internetową WIND WIND VIVE
- W terminalu zainstaluj zależności w
video-hint-start
ifunctions
, a następnie uruchom aplikację:npm install # Include the parentheses in the following command. (cd functions && npm install) firebase emulators:start --only hosting
- W przeglądarce przejdź do lokalnie hostowanego adresu URL hostingowego. W większości przypadków jest to http: // localhost: 5000/ lub coś podobnego.
Strona powinna się załadować, ale zauważysz, że brakuje różnych funkcji. Dodamy je w kolejnych krokach tego kodelab.
Rozwiązywanie problemów z uruchomieniem aplikacji internetowej
Jeśli zobaczysz komunikat o błędzie, taki jak Error: The query requires an index. You can create it here: https://console.firebase.google.com
w panelu konsoli devTools, wykonaj te kroki:
- Przejdź do dostarczonego adresu URL.
- Kliknij Zapisz i poczekaj, aż status zmieni się z budynku na włączone .
14. Dodaj funkcjonalność do aplikacji do nośnika wideo
W ostatnim etapie tego kodelab uruchomiłeś aplikację do nośnika wideo lokalnie, ale nie miała ona zbyt wiele funkcjonalności i jeszcze nie korzystał z zainstalowanego rozszerzenia. Na tym etapie Codelab dodasz tę funkcję i użyjesz aplikacji internetowej do wyzwolenia rozszerzenia.
Wdrażać zasady bezpieczeństwa
Przykładowa aplikacja Codelab zawiera zestawy zasad bezpieczeństwa dla Firestore i przechowywania w chmurze dla Firebase. Po wdrożeniu tych zasad bezpieczeństwa w projekcie Firebase dane w bazie danych i wiadrze są lepiej chronione przed niewłaściwym użyciem.
Możesz wyświetlić te reguły w plikach firestore.rules
i storage.rules
.
- Aby wdrożyć te zasady bezpieczeństwa, uruchom to polecenie w terminalu:
firebase deploy --only firestore:rules,storage
- Jeśli zostaniesz zapytany:
"Cloud Storage for Firebase needs an IAM Role to use cross-service rules. Grant the new role?"
, Wybierz Tak .
Zaktualizuj kod, aby połączyć funkcje
- W edytorze kodu rozwinąć folder
functions
.
Ten folder zawiera kilka funkcji, które łączą się w celu utworzenia rurociągu rozszerzenia. Poniższa tabela zawiera listę i opisuje każdą funkcję:
Jednak nadal musisz dodać plik, który grupuje te funkcje razem.Funkcjonować
Opis
functions/01-handle-video-upload.js
Pierwszy krok w rurociągu rozszerzenia. Przetwarza przesyłany plik wideo użytkownika.
functions/02-handle-video-labels.js
Drugi krok w rurociągu przedłużenia. Przetwarza plik labelski wideo, który został wygenerowany przez rozszerzenie
storage-label-videos
.functions/03-handle-audio-file.js
Trzeci krok w rurociągu przedłużenia. Obsługuje transkrybowany plik audio.
- W pliku
functions/index.js
Dodaj następujący kod: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();
Ten kod używa modułów JavaScript do importowania i eksportowania funkcji z pliku index.js
, dzięki czemu istnieje jedna scentralizowana lokalizacja dla wszystkich funkcji.
Zaktualizuj kod do obsługi przesyłania wideo
- W edytorze kodu otwórz plik
lib/firebase/storage.js
. - Znajdź funkcję
uploadVideo
.
Ta funkcja odbiera parametryuserId
,filePath
ifile
. Te dane wystarczą, aby przesłać plik do przechowywania w chmurze. - W treści funkcji
uploadVideo
dodaj następujący kod:const storageRef = ref(storage, `video_annotation_input/${filePath}`); const uploadTask = uploadBytesResumable(storageRef, file, { customMetadata: { uid: userId, }, }); return uploadTask;
Wdrażaj swoje funkcje
Aby rozmieścić swoje funkcje za pomocą CLI Firebase, wykonaj następujące kroki:
- W terminalu, będąc jeszcze w folderze
video-hint-start
, naciśnijControl+C
, aby zatrzymać bieżący proces. - Wdrażaj swoje funkcje:
firebase deploy --only functions
Jeśli zostaniesz zapytany o usunięcie wcześniejszych funkcji chmur, wybierzNo
. - Jeśli zobaczysz wiadomość podobną do
Permission denied while using the Eventarc Service Agent
, poczekaj kilka minut , a następnie ponownie sprawdź polecenie. - Po zakończeniu polecenia uruchom aplikację ponownie:
firebase emulators:start --only hosting
Uruchom i wyświetl ponownie aplikację internetową WETWIORA (teraz z funkcjonalnością)
Aby uruchomić i wyświetlić funkcjonalną aplikację internetową, wykonaj następujące kroki:
- W przeglądarce znajdź kartę, w której nawigowałeś do http: // localhost: 5000.
- W razie potrzeby kliknij Zaloguj się w Google i wybierz swoje konto Google.
- Kliknij Prześlij przykładowy film nr 1 i poczekaj kilka minut, aby zobaczyć wyniki podsumowania wideo.
- Jeśli nie widzisz żadnych wyników po przesłaniu filmu, zobacz problemy z błędami z funkcjami chmur w załączniku tego Codelab.
15. Wniosek
Gratulacje! Wiele osiągnąłeś w tym Codelab!
Zainstalowane i skonfigurowane rozszerzenia base
Użyłeś konsoli FireBase do skonfigurowania i zainstalowania różnych rozszerzeń AI . Korzystanie z rozszerzeń jest wygodne, ponieważ nie musisz pisać dużej ilości kodu bojownika, który zajmuje się uwierzytelnianiem z usługami w chmurze Google, czytaniem i pisaniem z Firestore oraz interakcji z usługami Google Cloud - i różnymi niuansami związanymi z tymi zadaniami.
Pracował z rozszerzeniami przy użyciu konsoli Firebase
Zamiast skakać prosto w kod, poświęciłeś czas na zrozumienie, jak działają rozszerzenia AI, w oparciu o dane wejściowe dostarczone przez konsolę do Firestore lub chmur. Ten rodzaj interakcji może być szczególnie przydatny, jeśli potrzebujesz debugowania wyjścia rozszerzenia.
Zbudował trzy aplikacje internetowe zasilane przez AI, które używają rozszerzeń Firebase
Recenzja
W recenzji aplikacji internetowej użyłeś zadań językowych z rozszerzeniem Palm API , aby podsumować długie recenzje, które użytkownicy zostawili na produkt koszulki. Poprosiłeś również, aby model językowy udzielił odpowiedzi JSON na zapytanie, w którym JSON dostarczył ocenę gwiazdy i podsumowaną recenzję oryginalnej recenzji długiej formy.
Opcjonalne ćwiczenie : firma T-shirt jest zadowolona z podsumowanych recenzji, ale poprosili o dodatkowe podsumowanie charakteru wady. Czy możesz dostosować wiersz do zwrócenia podsumowania wady, a następnie dołączyć to podsumowanie w interfejsie użytkownika aplikacji internetowej?
Chatbot
W aplikacji internetowej Chatbot korzystałeś z Chatbot z rozszerzeniem Palm API , aby zapewnić użytkownikowi interaktywny interfejs czatu, który obejmuje kontekst historyczny w rozmowach - gdzie każda wiadomość jest przechowywana w dokumencie Firestore, który jest zaskoczony określonym użytkownikiem.
Opcjonalne ćwiczenie : uczniowie byli zadowoleni z chatbota, ale pracownicy chcieliby kilku ulepszeń. Studenci powinni otrzymać pytania prowokujące do myślenia po udzieleniu ich odpowiedzi. Na przykład:
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?
Wskazówka: Aby to osiągnąć, możesz użyć konfigurowalnego kontekstu .
Wskazówka wideo
W aplikacji internetowej WIND WIND SING użyłeś konwersji tekstu na mowę , zadania językowe z Palm API oraz filmy z etykietami z rozszerzeniami wideo w chmurze, aby utworzyć rurociąg rozszerzenia, który daje opis i audio filmu.
Opcjonalne ćwiczenie : Departament Rządowy uznał prototyp interesujący, a teraz chciałby również, aby użytkownik mógł kliknąć etykietę tekstową, aby przeskakiwać do punktu wideo, w którym etykieta jest wykrywana.
16. Dodatek: Rozwiązywanie problemów z błędami z funkcjami w chmurze
Jeśli Twoja aplikacja internetowa nie działa zgodnie z oczekiwaniami i uważasz, że może to wynikać z funkcji, wykonaj kroki na tej stronie rozwiązywania problemów.
Zezwalaj na publiczny nieautentyczny dostęp
Jeśli otrzymasz jakiekolwiek błędy związane z uprawnieniami w panelu konsolowym Chrome DevTools, wykonaj następujące kroki:
- Przeczytaj przegląd uwierzytelnienia | Strona uruchamiana w chmurze
- Kliknij link, aby wyświetlić i wypełnić wymagane zadania, aby umożliwić publiczny nieautentyczny dostęp do funkcji.
- Wróć do aplikacji recenzji . Na przykład: http: // localhost: 8080.
- Kliknij Dodaj kilka próbnych recenzji i poczekaj kilka sekund.
- Jeśli pojawią się recenzje: nie musisz kontynuować tych kroków rozwiązywania problemów i możesz skakać prosto, aby skonfigurować sekcję aplikacji internetowej Chatbot w tym Codelab.
- Jeśli nie pojawią się recenzje: kontynuuj tę sekcję rozwiązywania problemów.
Obsługuj niewystarczające błędy uprawnień
- W konsoli Firebase przejdź do funkcji .
- Najedź na funkcję
addMockReviews
, a następnie kliknij> Wyświetl dzienniki .
- Przewiń dzienniki, aż znajdziesz błąd podobny do jednego z następujących:
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).
- W konsoli Google Cloud przejdź do strony IAM uprawnienia , a następnie wybierz swój projekt.
- W tabeli znajdź kolumnę nazw .
Na stronie IAM i administratora znajduje się tabela użytkowników i ról. Kolumna nazwy w tabeli opisuje, do czego służy użytkownik lub główny. Możesz mieć główną informację o nazwie domyślnego konta usług obliczeniowych .
Jeśli zobaczysz domyślne konto usługi obliczeniowej , wykonaj następujące kroki:
- Kliknij
Edytuj dyrektor .
- Kontynuuj z sekcją Dodaj role do domyślnego konta serwisowego w tym Codelab.
Jeśli nie widzisz domyślnego konta usług obliczeniowych , wykonaj następujące kroki:
- Kliknij Dostęp do Grant .
- W polu tekstowym New Principals wprowadź
compute
. - W menu wyświetlonych autosugestii wybierz domyślne konto serwisowe obliczeniowe .
Dodaj role do domyślnego konta usług obliczeniowych
W sekcji przypisuj role z domyślnego konta usług obliczeniowych :
- Rozwiń menu Wybierz rolę .
- W polu tekstowym Filtr wprowadź
Cloud Datastore User
. - W menu wyświetlonych autosugenów wybierz Cloud DataStore User .
- Kliknij
Dodaj kolejną rolę .
- Rozwiń menu Wybierz rolę .
- W polu tekstowym Filtr wprowadź
Cloud Storage for Firebase Admin
. - W menu wyświetlonych autosugenów wybierz pamięć chmur dla administratora FireBase .
- Kliknij
Dodaj kolejną rolę .
- Rozwiń menu Wybierz rolę .
- W polu tekstowym Filtr wprowadź
Cloud Storage for Firebase Service Agent
. - W menu wyświetlonych autosugestów wybierz pamięć chmur dla agenta serwisowego FireBase .
- Kliknij Zapisz .