Z tego samouczka dowiesz się, jak utworzyć aplikację do obsługi czatu Google Chat, która odpowiada na pytania na podstawie rozmów w pokojach czatu za pomocą generatywnej AI opartej na Vertex AI z Gemini. Aplikacja Chat korzysta z interfejsu Google Workspace Events API i Pub/Sub, aby rozpoznawać pytania publikowane w pokojach czatu w Google Chat i odpowiadać na nie w czasie rzeczywistym, nawet jeśli nie ma w nich wzmianki o aplikacji.
Aplikacja Google Chat używa wszystkich wiadomości wysłanych w pokoju jako źródła danych i bazy wiedzy: gdy ktoś zada pytanie, aplikacja Google Chat sprawdzi, czy wcześniej udostępniono już odpowiedź, a następnie ją udostępni. Jeśli nie znajdzie odpowiedzi, poinformuje, że nie może odpowiedzieć. Dzięki funkcjom AI od Gemini aplikacja Google Chat dostosowuje się i powiększa swoją bazę wiedzy, ponieważ stale uczy się na podstawie rozmów w pokojach, do których została dodana.
Oto jak działa aplikacja do obsługi czatu w przestrzeni do wdrażania nowych pracowników i zapewniania im pomocy:
-
Rysunek 1. Charlie dodaje komunikator z asystentem AI do pokoju czatu. -
Rysunek 2. Dana pyta, czy firma oferuje szkolenia z wystąpień publicznych. -
Rysunek 3. Aplikacja do obsługi czatu z asystentem wiedzy AI wysyła do Vertex AI z Gemini prompta, aby odpowiedzieć na pytanie Dany na podstawie historii rozmów w pokoju czatu, a następnie udostępnia odpowiedź.
Wymagania wstępne
Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
Dostęp do usług Google Cloud w celu:
- Utwórz projekt Google Cloud.
- Połącz konto rozliczeniowe Google Cloud z projektem w chmurze. Aby sprawdzić, czy masz dostęp, zapoznaj się z sekcją Uprawnienia wymagane do włączenia płatności.
- Używaj nieuwierzytelnionych wywołań funkcji w Cloud Functions, co możesz sprawdzić, ustalając, czy Twoja organizacja Google Cloud używa ograniczenia udostępniania według domeny.
W razie potrzeby poproś administratora Google Cloud o dostęp lub uprawnienia.
Jeśli używasz Google Cloud CLI, musisz mieć środowisko programistyczne Node.js skonfigurowane do pracy z interfejsem wiersza poleceń gcloud. Zobacz Konfigurowanie środowiska programistycznego Node.js.
Cele
- Utwórz aplikację do obsługi czatu, która korzysta z generatywnej AI, aby odpowiadać na pytania na podstawie wiedzy udostępnionej w rozmowach w pokoju czatu.
- Z generatywną AI:
- wykrywać pytania pracowników i na nie odpowiadać;
- ciągłe uczenie się na podstawie rozmów w pokoju w Google Chat;
- Nasłuchiwanie wiadomości w pokoju czatu w Google Chat i odpowiadanie na nie w czasie rzeczywistym, nawet jeśli aplikacja do obsługi czatu nie otrzymała bezpośredniej wiadomości.
- Utrwalaj wiadomości, zapisując je w bazie danych Firestore i odczytując z niej.
- Ułatwianie współpracy w pokoju czatu przez wspominanie menedżerów pokoju, gdy nie znaleziono odpowiedzi na pytanie.
Architektura
Poniższy diagram przedstawia architekturę zasobów Google Workspace i Google Cloud używanych przez aplikator do czatu z asystentem wiedzy opartym na AI.
Aplikacja do obsługi czatu z asystentem AI działa w ten sposób:
Użytkownik dodaje aplikację do obsługi czatu z asystentem AI do pokoju czatu:
Aplikacja do obsługi czatu wyświetla użytkownikowi, który dodał ją do pokoju czatu, prośbę o skonfigurowanie uwierzytelniania i autoryzacji.
Aplikacja do obsługi czatu pobiera wiadomości z pokoju, wywołując metodę
spaces.messages.listw interfejsie Chat API, a następnie zapisuje pobrane wiadomości w bazie danych Firestore.Aplikacja do obsługi czatu wywołuje metodę
subscriptions.createw interfejsie Google Workspace Events API, aby rozpocząć nasłuchiwanie zdarzeń, takich jak wiadomości w pokoju. Punkt końcowy powiadomień subskrypcji to temat Pub/Sub, który używa Eventarc do przekazywania zdarzenia do aplikacji do obsługi czatu.Aplikacja Google Chat opublikuje w pokoju wiadomość wprowadzającą.
Użytkownik w pokoju czatu publikuje wiadomość:
Aplikacja do obsługi czatu odbiera wiadomość w czasie rzeczywistym z tematu Pub/Sub.
Komunikator dodaje wiadomość do bazy danych Firestore.
Jeśli użytkownik później zmodyfikuje lub usunie wiadomość, komunikator otrzyma w czasie rzeczywistym zaktualizowane lub usunięte zdarzenie, a następnie zaktualizuje lub usunie wiadomość w bazie danych Firestore.
Aplikacja do obsługi czatu wysyła wiadomość do Vertex AI z Gemini:
Prompt instruuje Vertex AI z Gemini, aby sprawdzić, czy wiadomość zawiera pytanie. Jeśli tak, Gemini odpowie na pytanie na podstawie historii wiadomości w pokoju czatu przechowywanej w Firestore, a aplikacja Google Chat wyśle wiadomość do pokoju czatu. Jeśli nie, nie odpowiadaj.
Jeśli Vertex AI z Gemini odpowie na pytanie, aplikator do obsługi czatu opublikuje odpowiedź, wywołując metodę
spaces.messages.createw interfejsie Chat API przy użyciu uwierzytelniania aplikacji.Jeśli Vertex AI z Gemini nie może odpowiedzieć na pytanie, aplikacja do obsługi czatu opublikuje wiadomość z informacją, że nie może znaleźć odpowiedzi na to pytanie w historii przestrzeni w Google Chat.
Aplikacja do obsługi czatu otrzymuje z interfejsu Google Workspace Events API powiadomienie o cyklu życia, że subskrypcja pokoju w Google Chat wkrótce wygaśnie:
- Aplikacja do obsługi czatu wysyła żądanie odnowienia subskrypcji, wywołując metodę
subscriptions.patchw interfejsie Google Workspace Events API.
- Aplikacja do obsługi czatu wysyła żądanie odnowienia subskrypcji, wywołując metodę
Aplikacja do obsługi czatu zostanie usunięta z pokoju czatu:
Aplikacja do obsługi czatu usuwa subskrypcję, wywołując metodę
subscriptions.deletew interfejsie Google Workspace Events API.Komunikator usuwa dane pokoju czatu z Firestore.
Sprawdzanie usług używanych przez aplikację do obsługi czatu z asystentem wiedzy AI
Aplikacja do obsługi czatu z asystentem AI wykorzystuje te usługi Google Workspace i Google Cloud:
- Vertex AI API z Gemini: platforma generatywnej AI oparta na Gemini. Asystent wiedzy oparty na AI Aplikacja do obsługi czatu korzysta z interfejsu Vertex AI API z Gemini, aby rozpoznawać pytania pracowników, rozumieć je i na nie odpowiadać.
-
Chat API:
interfejs API do tworzenia aplikacji Google Chat, które odbierają i obsługują
wydarzenia związane z interakcjami w Google Chat, np. wiadomości. Aplikacja do Google Chat z asystentem AI wykorzystuje interfejs Chat API do:
- odbierać zdarzenia interakcji wysyłane przez Google Chat i na nie odpowiadać;
- Wyświetla listę wiadomości wysłanych w pokoju.
- publikować odpowiedzi na pytania użytkowników w pokoju;
- Skonfiguruj atrybuty, które określają sposób wyświetlania w Google Chat, takie jak nazwa i zdjęcie awatara.
- Google Workspace Events API: Ten interfejs API umożliwia subskrybowanie zdarzeń i zarządzanie powiadomieniami o zmianach w aplikacjach Google Workspace. Aplikacja do obsługi czatu – asystent wiedzy AI – korzysta z interfejsu Google Workspace Events API, aby nasłuchiwać wiadomości publikowanych w pokoju czatu. Dzięki temu może wykrywać pytania i na nie odpowiadać, nawet jeśli nie ma o niej wzmianki.
- Firestore: bezserwerowa baza danych dokumentów. Aplikacja do obsługi czatu asystenta opartego na AI do przechowywania danych o wiadomościach wysyłanych w pokoju czatu używa Firestore.
- Pub/Sub: Pub/Sub to asynchroniczna i skalowalna usługa do przesyłania wiadomości, która oddziela usługi generujące wiadomości od usług je przetwarzających. Aplikacja do obsługi czatu z asystentem AI korzysta z Pub/Sub, aby odbierać zdarzenia subskrypcji z pokoi czatu.
- Eventarc: Eventarc umożliwia tworzenie architektur opartych na zdarzeniach bez konieczności wdrażania, dostosowywania ani utrzymywania infrastruktury bazowej. Aplikacja do obsługi czatu AI knowledge assistant korzysta z Eventarc do kierowania zdarzeń z Pub/Sub do przestrzeni na czacie i funkcji w Cloud Functions, która odbiera i przetwarza zdarzenia subskrypcji.
-
Cloud Functions:
wymagająca niewielu zasobów bezserwerowa usługa obliczeniowa, która umożliwia tworzenie samodzielnych funkcji o ściśle zdefiniowanym przeznaczeniu reagujących na interakcje w Chat i zdarzenia subskrypcji bez konieczności zarządzania serwerem lub środowiskiem wykonawczym. Aplikacja do obsługi czatu z asystentem AI korzysta z 2 funkcji w Cloud Functions o nazwach:
-
app: hostować punkt końcowy HTTP, do którego Google Chat wysyła zdarzenia interakcji, oraz platformę obliczeniową do uruchamiania logiki, która przetwarza te zdarzenia i na nie odpowiada. -
eventsApp: odbiera i przetwarza zdarzenia w pokoju czatu, takie jak wiadomości z subskrypcji Pub/Sub.
- Cloud Build: w pełni zarządzana platforma do ciągłej integracji, dostarczania i wdrażania, która uruchamia zautomatyzowane kompilacje.
- Cloud Run: w pełni zarządzane środowisko do uruchamiania aplikacji skonteneryzowanych.
-
Przygotowywanie środowiska
W tej sekcji dowiesz się, jak utworzyć i skonfigurować projekt Google Cloud na potrzeby aplikacji do obsługi czatu.
Tworzenie projektu Google Cloud
Konsola Google Cloud
- W konsoli Google Cloud kliknij Menu > Uprawnienia i administracja > Utwórz projekt.
-
W polu Nazwa projektu wpisz opisową nazwę projektu.
Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Po utworzeniu projektu nie można zmienić jego identyfikatora, więc wybierz taki, który będzie Ci odpowiadać przez cały okres jego istnienia.
- W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje projektu. Następnie kliknij Wybierz.
- Kliknij Utwórz. W konsoli Google Cloud otworzy się strona Panel, a projekt zostanie utworzony w ciągu kilku minut.
interfejs wiersza poleceń gcloud
W jednym z tych środowisk programistycznych uzyskaj dostęp do interfejsu Google Cloud CLI (gcloud):
-
Cloud Shell: aby używać terminala online z już skonfigurowanym interfejsem gcloud CLI, aktywuj Cloud Shell.
Aktywuj Cloud Shell -
Lokalna powłoka: aby używać lokalnego środowiska programistycznego, zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
Aby utworzyć projekt w chmurze, użyj poleceniagcloud projects create: Zastąp PROJECT_ID identyfikatorem projektu, który chcesz utworzyć.gcloud projects create PROJECT_ID
Włączanie płatności za projekt w chmurze
Konsola Google Cloud
- W konsoli Google Cloud wybierz Płatności. Kliknij Menu > Rozliczenia > Moje projekty.
- W sekcji Wybierz organizację wybierz organizację powiązaną z Twoim projektem Google Cloud.
- W wierszu projektu otwórz menu Działania (), kliknij Zmień ustawienia płatności i wybierz konto rozliczeniowe Cloud.
- Kliknij Ustaw konto.
interfejs wiersza poleceń gcloud
- Aby wyświetlić listę dostępnych kont rozliczeniowych, uruchom to polecenie:
gcloud billing accounts list - Połącz konto rozliczeniowe z projektem Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_IDZastąp następujące elementy:
PROJECT_IDto identyfikator projektu projektu w chmurze, w którym chcesz włączyć płatności.BILLING_ACCOUNT_IDto identyfikator konta rozliczeniowego, które ma zostać połączone z projektem Google Cloud.
Włączanie interfejsów API
Konsola Google Cloud
W konsoli Google Cloud włącz interfejsy Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API i Cloud Run Admin API.
Sprawdź, czy włączasz interfejsy API w odpowiednim projekcie w chmurze, a potem kliknij Dalej.
Sprawdź, czy włączasz odpowiednie interfejsy API, a potem kliknij Włącz.
interfejs wiersza poleceń gcloud
W razie potrzeby ustaw bieżący projekt w chmurze na utworzony przez siebie projekt:
gcloud config set project PROJECT_IDZastąp PROJECT_ID identyfikatorem projektu utworzonego projektu w chmurze.
Włącz interfejsy Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API i Cloud Run Admin API:
gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ workspaceevents.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com
Konfigurowanie uwierzytelniania i autoryzacji
Uwierzytelnianie i autoryzacja umożliwiają komunikatorowi dostęp do zasobów w Google Workspace i Google Cloud.
W tym samouczku opublikujesz aplikację Google Chat wewnętrznie, więc możesz użyć informacji zastępczych. Zanim opublikujesz aplikację Google Chat zewnętrznie, zastąp informacje zastępcze prawdziwymi informacjami na ekranie zgody.
Skonfiguruj ekran zgody OAuth, określ zakresy i zarejestruj aplikację.
W konsoli Google Cloud otwórz Menu > Google Auth platform > Branding.
Jeśli masz już skonfigurowany ekran zgody OAuthGoogle Auth platform, możesz skonfigurować te ustawienia ekranu zgody OAuth w sekcjach Branding, Odbiorcy i Dostęp do danych. Jeśli zobaczysz komunikat Google Auth platform Jeszcze nie skonfigurowano, kliknij Rozpocznij:
- W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz
AI knowledge assistant. - W sekcji Adres e-mail dla użytkowników potrzebujących pomocy wybierz swój adres e-mail lub odpowiednią grupę dyskusyjną Google.
- Kliknij Dalej.
- W sekcji Odbiorcy wybierz Wewnętrzny. Jeśli nie możesz wybrać opcji Wewnętrzny, wybierz Zewnętrzny.
- Kliknij Dalej.
- W sekcji Dane kontaktowe wpisz adres e-mail, na który będziesz otrzymywać powiadomienia o zmianach w projekcie.
- Kliknij Dalej.
- W sekcji Zakończ zapoznaj się z zasadami dotyczącymi danych użytkownika w usługach interfejsu API Google. Jeśli je akceptujesz, kliknij Akceptuję zasady dotyczące danych użytkownika w usługach interfejsu API Google.
- Kliknij Dalej.
- Kliknij Utwórz.
- Jeśli jako typ użytkownika wybierzesz Zewnętrzny, dodaj użytkowników testowych:
- Kliknij Odbiorcy.
- W sekcji Użytkownicy testowi kliknij Dodaj użytkowników.
- Wpisz swój adres e-mail i adresy e-mail innych autoryzowanych testerów, a następnie kliknij Zapisz.
- W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz
Kliknij Dostęp do danych > Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów każdego interfejsu API włączonego w projekcie Google Cloud.
W sekcji Ręczne dodawanie zakresów wklej ten zakres:
https://www.googleapis.com/auth/chat.messages
Kliknij Dodaj do tabeli.
Kliknij Aktualizuj.
Po wybraniu zakresów wymaganych przez aplikację na stronie Dostęp do danych kliknij Zapisz.
Tworzenie danych logowania identyfikatora klienta OAuth
W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Dane logowania.
Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
Kliknij Typ aplikacji > Aplikacja internetowa.
W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
W sekcji Autoryzowane identyfikatory URI przekierowania kliknij Dodaj URI.
W polu Identyfikatory URI 1 wpisz:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2Zastąp następujące elementy:
- REGION: region funkcji w Cloud Functions, np.
us-central1. Później, gdy utworzysz 2 funkcje w Cloud Functions, musisz ustawić ich region na tę wartość. - PROJECT_ID: identyfikator projektu utworzonego przez Ciebie projektu w chmurze.
- REGION: region funkcji w Cloud Functions, np.
Kliknij Utwórz.
W oknie Utworzono klienta OAuth kliknij Pobierz JSON.
Zapisz pobrany plik jako
credentials.json. Później, gdy utworzysz 2 funkcje w Cloud Functions, do każdego wdrożenia dołączysz plikcredentials.json.Kliknij OK.
Tworzenie tematu Pub/Sub
Temat Pub/Sub współpracuje z interfejsem Google Workspace Events API, aby subskrybować zdarzenia w pokoju Google Chat, takie jak wiadomości, i powiadamiać aplikację do obsługi czatu w czasie rzeczywistym.
Aby utworzyć temat Pub/Sub:
Konsola Google Cloud
W konsoli Google Cloud otwórz Menu > Pub/Sub.
Kliknij Utwórz temat.
W polu Identyfikator tematu wpisz
events-api.Odznacz opcję Dodaj subskrypcję domyślną.
W sekcji Szyfrowanie wybierz Klucz szyfrowania zarządzany przez Google.
Kliknij Utwórz. Wyświetli się temat Pub/Sub.
Aby ten temat Pub/Sub i interfejs Google Workspace Events API działały razem, przyznaj użytkownikowi Chat IAM uprawnienia do publikowania w temacie Pub/Sub:
W panelu events-api w sekcji UPRAWNIENIA kliknij Dodaj podmiot zabezpieczeń.
W sekcji Dodaj podmioty zabezpieczeń w polu Nowe podmioty zabezpieczeń wpisz
chat-api-push@system.gserviceaccount.com.W sekcji Przypisz role w polu Wybierz rolę wybierz Pub/Sub > Publikujący Pub/Sub.
Kliknij Zapisz.
interfejs wiersza poleceń gcloud
Utwórz temat Pub/Sub o identyfikatorze
events-api:gcloud pubsub topics create events-apiPrzyznaj użytkownikowi IAM na czacie uprawnienia do publikowania w temacie Pub/Sub:
gcloud pubsub topics add-iam-policy-binding events-api \ --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \ --role='roles/pubsub.publisher'
Tworzenie bazy danych Firestore
Baza danych Firestore zapisuje i pobiera dane z pokoi czatu, takie jak wiadomości. Nie definiujesz modelu danych, który jest ustawiany niejawnie w przykładowym kodzie przez pliki model/message.js i services/firestore-service.js.
Baza danych aplikacji Czat z asystentem AI wykorzystuje model danych NoSQL oparty na dokumentach uporządkowanych w kolekcjach. Więcej informacji znajdziesz w sekcji Model danych Firestore.
Poniższy diagram przedstawia model danych aplikacji do czatu z asystentem AI:
W katalogu głównym znajdują się 2 kolekcje:
spaces, gdzie każdy dokument reprezentuje pokój czatu, do którego dodano aplikację Google Chat. Każda wiadomość jest reprezentowana przez dokument w podkolekcjimessages.users, gdzie każdy dokument reprezentuje użytkownika, który dodał aplikację do obsługi czatu w Google Chat do pokoju czatu.
Wyświetlanie definicji kolekcji, dokumentów i pól
spaces
Pokój czatu, który zawiera aplikację do obsługi czatu z asystentem AI.
| Pola | |
|---|---|
Document ID | StringUnikalny identyfikator konkretnej przestrzeni. Część nazwy zasobu pokoju w interfejsie Chat API. |
messages | Subcollection of Documents (Wiadomości wysłane w pokoju czatu. Odpowiada Document ID message w Firebase. |
spaceName | StringUnikalna nazwa pokoju w interfejsie Chat API. Odpowiada nazwie zasobu pokoju w interfejsie Chat API. |
messages
wiadomości wysyłane w pokoju czatu;
| Pola | |
|---|---|
Document ID | StringUnikalny identyfikator konkretnej wiadomości. |
name | StringUnikalna nazwa wiadomości w interfejsie Chat API. Odpowiada nazwie zasobu wiadomości w interfejsie Chat API. |
text | StringTreść wiadomości. |
time | String (Timestamp format)Czas utworzenia wiadomości. |
users
Użytkownicy, którzy dodali aplikację do obsługi czatu z asystentem AI do pokoju czatu.
| Pola | |
|---|---|
Document ID | StringUnikalny identyfikator konkretnego użytkownika. |
accessToken | StringToken dostępu przyznany podczas autoryzacji użytkownika OAuth 2.0, który jest używany do wywoływania interfejsów Google Workspace API. |
refreshToken | StringToken odświeżania przyznany podczas autoryzacji użytkownika OAuth 2.0. |
Aby utworzyć bazę danych Firestore:
Konsola Google Cloud
W konsoli Google Cloud otwórz Menu > Firestore.
Kliknij Utwórz bazę danych.
W sekcji Wybierz tryb Firestore kliknij Tryb natywny.
Kliknij Dalej.
Skonfiguruj bazę danych:
W sekcji Nazwij bazę danych pozostaw Identyfikator bazy danych w domyślnej postaci
(default).W sekcji Typ lokalizacji wybierz Region.
W polu Region określ region bazy danych, np.
us-central1. Aby uzyskać najlepszą wydajność, wybierz tę samą lokalizację co funkcje Cloud Functions aplikacji do obsługi czatu lub lokalizację w pobliżu.
Kliknij Utwórz bazę danych.
interfejs wiersza poleceń gcloud
Utwórz bazę danych Firestore w trybie natywnym:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-nativeZastąp LOCATION nazwą regionu Firestore, na przykład
us-central1. Aby uzyskać najlepszą wydajność, wybierz lokalizację taką samą lub zbliżoną do lokalizacji funkcji Cloud Functions aplikacji do obsługi czatu.
Tworzenie i wdrażanie aplikacji do obsługi czatu
Po utworzeniu i skonfigurowaniu projektu w chmurze Google Cloud możesz utworzyć i wdrożyć aplikację do obsługi czatu. W tej sekcji wykonasz te czynności:
- Utwórz i wdróż 2 funkcje w Cloud Functions. jeden do odpowiadania na zdarzenia interakcji na czacie i jeden do odpowiadania na zdarzenia Pub/Sub.
- Utwórz i wdróż aplikację do obsługi czatu na stronie konfiguracji interfejsu Google Chat API.
Tworzenie i wdrażanie funkcji w Cloud Functions
W tej sekcji utworzysz i wdrożysz 2 funkcje w Cloud Functions o nazwach:
app: hostuje i uruchamia kod aplikacji Google Chat, który odpowiada na zdarzenia otrzymywane z Google Chat w postaci żądań HTTP.eventsApp: odbiera i przetwarza zdarzenia w pokoju czatu, takie jak wiadomości z Pub/Sub.
Te funkcje Cloud Functions tworzą logikę aplikacji czatu z asystentem AI.
Opcjonalnie przed utworzeniem funkcji Cloud Functions poświęć chwilę na zapoznanie się z przykładowym kodem hostowanym na GitHubie.
Tworzenie i wdrażanie app
Konsola Google Cloud
Pobierz kod z GitHuba jako plik ZIP.
Wyodrębnij pobrany plik ZIP.
Wyodrębniony folder zawiera całe repozytorium przykładów Google Workspace.
W wyodrębnionym folderze przejdź do katalogu
add-ons-samples-main/node/chat/ai-knowledge-assistant.W katalogu
add-ons-samples/node/chat/ai-knowledge-assistantdodaj plikcredentials.jsonpobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.Skompresuj zawartość folderu
ai-knowledge-assistantdo pliku ZIP.Plik ZIP musi zawierać te pliki i foldery:
.gcloudignore.gitignoreREADME.mddeploy.shenv.jsevents_index.jshttp_index.jsindex.jscredentials.jsonpackage-lock.jsonpackage.jsoncontrollers/model/services/test/
W konsoli Google Cloud otwórz Menu > Cloud Functions.
Sprawdź, czy wybrany jest projekt Google Cloud dla aplikacji Chat.
Kliknij Utwórz funkcję.
Na stronie Utwórz funkcję skonfiguruj funkcję:
- W sekcji Środowisko wybierz Funkcja Cloud Run.
- W polu Nazwa funkcji wpisz
app. - W sekcji Region wybierz region, np.
us-central1. Ten region musi być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji. - W polu Typ aktywatora wybierz HTTPS.
- W sekcji Uwierzytelnianie wybierz Zezwalaj na nieuwierzytelnione wywołania.
- Kliknij Dalej.
W sekcji Środowisko wykonawcze wybierz Node.js 20.
W polu Punkt wejścia usuń tekst domyślny i wpisz
app.W sekcji Kod źródłowy wybierz Prześlij plik ZIP.
W sekcji Zasobnik docelowy utwórz lub wybierz zasobnik:
- Kliknij Przeglądaj.
- Wybierz zasobnik.
- Kliknij Wybierz.
Google Cloud przesyła plik ZIP do tego zasobnika i wyodrębnia z niego pliki komponentu. Cloud Functions kopiuje następnie pliki komponentu do funkcji w Cloud Functions.
W sekcji Plik ZIP prześlij plik ZIP pobrany z GitHub, rozpakowany i ponownie skompresowany:
- Kliknij Przeglądaj.
- Otwórz plik ZIP i wybierz go.
- Kliknij Otwórz.
Kliknij Wdróż.
Otworzy się strona Szczegóły Cloud Functions, na której pojawi się Twoja funkcja z 2 wskaźnikami postępu: jeden dla kompilacji, a drugi dla usługi. Gdy oba wskaźniki postępu znikną i zostaną zastąpione przez symbol zaznaczenia, funkcja zostanie wdrożona i będzie gotowa do użycia.
Edytuj przykładowy kod, aby ustawić stałe:
- Na stronie Szczegóły funkcji Cloud Functions kliknij Edytuj.
- Kliknij Dalej.
- W sekcji Kod źródłowy wybierz Edytor wbudowany.
- W edytorze wbudowanym otwórz i edytuj plik
env.js:- Ustaw wartość project na identyfikator projektu w chmurze.
- Ustaw wartość location na region Cloud Functions, np.
us-central1.
Kliknij Wdróż.
interfejs wiersza poleceń gcloud
Sklonuj kod z GitHuba:
git clone https://github.com/googleworkspace/add-ons-samples.gitPrzejdź do katalogu zawierającego kod aplikacji do obsługi czatu z tym asystentem AI:
cd add-ons-samples/node/chat/ai-knowledge-assistantW katalogu
add-ons-samples/node/chat/ai-knowledge-assistantdodaj plikcredentials.jsonpobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.Edytuj plik
env.js, aby ustawić zmienne środowiskowe:- Ustaw wartość project na identyfikator projektu w chmurze.
- Ustaw wartość location na region Cloud Functions, np.
us-central1.
Wdróż funkcję w Cloud Functions w Google Cloud:
gcloud functions deploy app \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=app \ --trigger-http \ --allow-unauthenticatedZastąp REGION wartością regionu funkcji Cloud Functions, aby pasowała do wartości ustawionej w pliku
env.js, np.us-central1.
Tworzenie i wdrażanie eventsApp
Konsola Google Cloud
W konsoli Google Cloud otwórz Menu > Cloud Functions.
Sprawdź, czy wybrany jest projekt Google Cloud dla aplikacji Chat.
Kliknij Utwórz funkcję.
Na stronie Utwórz funkcję skonfiguruj funkcję:
- W sekcji Środowisko wybierz Funkcja Cloud Run.
- W polu Nazwa funkcji wpisz
eventsApp. - W sekcji Region wybierz region, np.
us-central1. Ten region musi być zgodny z regionem ustawionym w autoryzowanym identyfikatorze URI przekierowania podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji. - W sekcji Typ aktywatora wybierz Cloud Pub/Sub.
- W sekcji Temat Cloud Pub/Sub wybierz utworzoną nazwę tematu Pub/Sub w formacie
projects/PROJECT/topics/events-api, gdzie PROJECT to identyfikator projektu w chmurze. - Jeśli zobaczysz komunikat zaczynający się od
Service account(s) might not have enough permissions to deploy the function with the selected trigger., kliknij Przyznaj wszystkie. - Kliknij Dalej.
W sekcji Środowisko wykonawcze wybierz Node.js 20.
W polu Punkt wejścia usuń tekst domyślny i wpisz
eventsApp.W sekcji Kod źródłowy wybierz Plik ZIP z Cloud Storage.
W sekcji Lokalizacja w Cloud Storage kliknij Przeglądaj.
Wybierz zasobnik, do którego został przesłany plik ZIP podczas tworzenia
appfunkcji w Cloud Functions.Kliknij przesłany plik ZIP.
Kliknij Wybierz.
Kliknij Wdróż.
Otworzy się strona Szczegóły Cloud Functions, na której pojawi się Twoja funkcja z 3 wskaźnikami postępu: jeden dla kompilacji, jeden dla usługi i jeden dla aktywatora. Gdy wszystkie 3 wskaźniki postępu znikną i zostaną zastąpione przez ikonę potwierdzenia, funkcja zostanie wdrożona i będzie gotowa do użycia.
Edytuj przykładowy kod, aby ustawić stałe:
- Na stronie Szczegóły funkcji Cloud Functions kliknij Edytuj.
- Kliknij Dalej.
- W sekcji Kod źródłowy wybierz Edytor wbudowany.
- W edytorze wbudowanym otwórz i edytuj plik
env.js:- Ustaw wartość project na identyfikator projektu w chmurze.
- Ustaw wartość location na region Cloud Functions, np.
us-central1.
Kliknij Wdróż.
interfejs wiersza poleceń gcloud
W gcloud CLI, jeśli jeszcze tego nie zrobisz, przejdź do katalogu, w którym znajduje się kod tej aplikacji do czatu z asystentem AI, którą wcześniej sklonowano z GitHub:
cd add-ons-samples/node/chat/ai-knowledge-assistantW katalogu
add-ons-samples/node/chat/ai-knowledge-assistantdodaj plikcredentials.jsonpobrany podczas tworzenia danych logowania identyfikatora klienta OAuth na potrzeby uwierzytelniania i autoryzacji.Edytuj plik
env.js, aby ustawić zmienne środowiskowe:- Ustaw wartość project na identyfikator projektu w chmurze.
- Ustaw wartość location na region Cloud Functions, np.
us-central1.
Wdróż funkcję w Cloud Functions w Google Cloud:
gcloud functions deploy eventsApp \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=eventsApp \ --trigger-topic=events-apiZastąp REGION wartością regionu funkcji Cloud Functions, aby pasowała do wartości ustawionej w pliku
env.js, np.us-central1.
Skopiuj app adres URL aktywatora funkcji w Cloud Functions.
Wkleisz adres URL wywołania funkcji w Cloud Functions w następnej sekcji, gdy skonfigurujesz aplikację do obsługi czatu w konsoli Google Cloud.app
Konsola Google Cloud
W konsoli Google Cloud otwórz Menu > Cloud Functions.
W kolumnie Nazwa na liście funkcji w Cloud Functions kliknij
app.Kliknij Reguła.
Skopiuj adres URL.
interfejs wiersza poleceń gcloud
Opisz
appfunkcję w Cloud Functions:gcloud functions describe appSkopiuj właściwość
url.
Konfigurowanie komunikatora w konsoli Google Cloud
W tej sekcji dowiesz się, jak skonfigurować interfejs Chat API w konsoli Google Cloud, podając informacje o aplikacji do obsługi czatu, w tym jej nazwę i adres URL wywołania funkcji Cloud Function, do której wysyła ona zdarzenia interakcji w Google Chat.
W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Włączone interfejsy API i usługi > Google Chat API > Konfiguracja.
W polu Nazwa aplikacji wpisz
AI knowledge assistant.W polu URL awatara wpisz
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.W polu Opis wpisz
Answers questions with AI.Ustaw przełącznik Włącz funkcje interaktywne w pozycji włączonej.
W sekcji Funkcje wybierz Dołączanie do pokoi i rozmów grupowych.
W sekcji Ustawienia połączenia kliknij URL punktu końcowego HTTP.
Skopiuj adres e-mail konta usługi. Ten adres e-mail jest potrzebny podczas autoryzowania dodatku do wywoływania funkcji.
W sekcji Aktywatory kliknij Używaj wspólnego adresu URL punktu końcowego HTTP dla wszystkich aktywatorów.
W polu HTTP endpoint URL (Adres URL punktu końcowego HTTP) wklej adres URL aktywatora funkcji w Cloud Functions
appw formaciehttps://REGION-PROJECT_ID.cloudfunctions.net/app, gdzie REGION to region funkcji w Cloud Functions, np.us-central1, a PROJECT_ID to identyfikator projektu utworzonego przez Ciebie projektu w chmurze.W sekcji Widoczność wybierz Udostępnij tę aplikację Google Chat konkretnym osobom i grupom w domenie i wpisz swój adres e-mail.
Opcjonalnie w sekcji Logi wybierz Loguj błędy w usłudze Logging.
Kliknij Zapisz. Pojawi się komunikat o zapisaniu konfiguracji.
Aplikacja do obsługi czatu jest gotowa do odbierania wiadomości i odpowiadania na nie.
Testowanie aplikacji do obsługi czatu
Przetestuj aplikację do obsługi czatu z asystentem wiedzy opartym na AI w pokoju czatu z wiadomościami. Zadawaj pytania, na które ta aplikacja może odpowiedzieć.
Oto kilka sposobów testowania aplikacji do czatu z asystentem AI:
- Dodaj aplikację do obsługi czatu z asystentem AI do istniejącego pokoju czatu i zadawaj pytania związane z tym pokojem.
- Utwórz pokój czatu i opublikuj w nim kilka wiadomości, które posłużą jako źródło danych. Wiadomości mogą pochodzić z Gemini, np. z promptu
Answer 20 common onboarding questions employees ask their teams.lub możesz wkleić kilka akapitów z przewodnika Tworzenie aplikacji z użyciem Gemini Chat, a następnie zadać pytania na ich temat.
Na potrzeby tego samouczka utwórzmy pokój czatu i wklejmy kilka akapitów z przewodnika Wprowadzenie do tworzenia aplikacji w Google Chat.
Otwórz Google Chat.
Tworzenie pokoju czatu:
Kliknij Nowy czat > Utwórz pokój.
W polu Nazwa pokoju wpisz
Testing AI knowledge assistant app.W sekcji Do czego służy ten pokój? wybierz Współpraca.
W sekcji Ustawienia dostępu wybierz, kto może mieć dostęp do pokoju.
Kliknij Utwórz.
Dodaj wiadomości, które mają być używane jako źródło danych:
W przeglądarce otwórz przewodnik Tworzenie aplikacji za pomocą Google Chat.
Skopiuj i wklej treść przewodnika do utworzonego pokoju czatu w Google Chat.
Dodaj aplikację do czatu z asystentem AI:
Na pasku tworzenia wiadomości wpisz
@AI knowledge assistant, a w wyświetlonym menu sugestii wybierz aplikację do obsługi czatu z asystentem AI, a następnie naciśnijenter.Pojawi się komunikat z pytaniem, czy chcesz dodać do pokoju aplikację do czatu z asystentem opartym na AI. Kliknij Dodaj do pokoju.
Jeśli dodajesz komunikator do pokoju po raz pierwszy, musisz skonfigurować uwierzytelnianie i autoryzację komunikatora:
- Kliknij Configure (Skonfiguruj).
- Otworzy się nowe okno lub nowa karta przeglądarki z prośbą o wybranie konta Google. Wybierz konto, na którym przeprowadzasz testy.
- Sprawdź uprawnienia, o które prosi aplikacja do obsługi czatu z asystentem AI. Aby je przyznać, kliknij Zezwól.
- Pojawi się komunikat
You may close this page now.. Zamknij okno lub kartę przeglądarki i wróć do pokoju czatu.
Zadaj pytanie:
Na pasku tworzenia wiadomości wpisz pytanie, np.
What are Google Chat apps?Odpowiedzi aplikacji do obsługi czatu – asystenta wiedzy opartego na AI.
Uwagi, alternatywne wybory architektury i dalsze kroki
W tej sekcji omówimy inne sposoby tworzenia aplikacji do obsługi czatu z asystentem AI.
Firestore, Cloud Storage lub wywoływanie funkcji List Messages w interfejsie Chat API
W tym samouczku zalecamy przechowywanie danych pokoju czatu, takich jak wiadomości, w bazie danych Firestore, ponieważ zwiększa to wydajność w porównaniu z wywoływaniem metody list w zasobie Message interfejsu Chat API za każdym razem, gdy komunikator odpowiada na pytanie. Ponadto wielokrotne wywoływanie funkcji list messages może spowodować przekroczenie limitów interfejsu API przez aplikację do obsługi czatu.
Jeśli jednak historia rozmów w pokoju w Google Chat stanie się zbyt długa, korzystanie z Firestore może być kosztowne.
Cloud Storage to alternatywa dla Firestore. Każda przestrzeń, w której aktywny jest asystent AI w komunikatorze, ma własny obiekt. Każdy obiekt to plik tekstowy zawierający wszystkie wiadomości w przestrzeni. Zaletą tego podejścia jest to, że całą zawartość pliku tekstowego można od razu przekazać do Vertex AI z Gemini, ale wadą jest to, że aktualizacja historii rozmów wymaga więcej pracy, ponieważ nie można dołączyć danych do obiektu w Cloud Storage, tylko go zastąpić. To podejście nie ma sensu, jeśli regularnie aktualizujesz historię wiadomości, ale będzie dobrym wyborem, jeśli okresowo aktualizujesz historię wiadomości, np. raz w tygodniu.
Rozwiązywanie problemów
Gdy aplikacja Google Chat lub karta zwraca błąd, interfejs Google Chat wyświetla komunikat „Coś poszło nie tak”. lub „Nie udało się przetworzyć Twojego żądania”. Czasami interfejs Google Chat nie wyświetla żadnego komunikatu o błędzie, ale aplikacja lub karta Google Chat daje nieoczekiwany wynik, np. wiadomość na karcie może się nie pojawić.
Chociaż w interfejsie czatu może nie wyświetlać się komunikat o błędzie, opisowe komunikaty o błędach i dane logowania są dostępne, aby pomóc w naprawieniu błędów, gdy rejestrowanie błędów w aplikacjach na czat jest włączone. Pomoc dotyczącą wyświetlania, debugowania i naprawiania błędów znajdziesz w artykule Rozwiązywanie problemów z Google Chat.
Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, zalecamy usunięcie projektu w chmurze.
- W konsoli Google Cloud otwórz stronę Zarządzanie zasobami. Kliknij Menu > Uprawnienia i administrator > Zarządzaj zasobami.
- Z listy projektów wybierz projekt do usunięcia, a potem kliknij Usuń .
- W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.
Powiązane artykuły
- Planowanie podróży z pomocą agenta AI dostępnego w różnych usługach Google Workspace
- Reagowanie na incydenty za pomocą Google Chat, Vertex AI, Apps Script i uwierzytelniania użytkowników
- Zarządzanie projektami za pomocą Google Chat, Vertex AI i Firestore
- Sprawdzanie faktów za pomocą agenta AI ADK i modelu Gemini
- Integrowanie podstawowych koncepcji AI w aplikacjach Google Chat
- Tworzenie aplikacji do obsługi czatu jako dodatku do Google Workspace za pomocą Apps Script