Tworzenie aplikacji do obsługi czatu za pomocą interfejsu analityki konwersacyjnej API dla Lookera i BigQuery

1. Zanim zaczniesz

W tym Codelabs dowiesz się, jak używać interfejsu Conversational Analytics API (CA API) z Lookerem i BigQuery do tworzenia własnej aplikacji do czatu, która umożliwia wysyłanie zapytań o dane. Aby w pełni wykorzystać tę funkcję, musisz znać BigQuery, Lookera, modele LLM i agenty oraz język Python.

Czego się nauczysz

Po ukończeniu tego ćwiczenia nauczysz się:

  • Jak korzystać z analityki konwersacyjnej w Lookerze
  • Jak skonfigurować i używać aplikacji Streamlit Quickstart do analizy konwersacyjnej w Pythonie (i jak ona działa)
  • Korzyści z używania Lookera do modelowania semantycznego w przypadku analizy konwersacyjnej

Czego potrzebujesz

Aby ukończyć to ćwiczenie, potrzebujesz:

  • Instancja Lookera z zainstalowanym blokiem Lookera ASC Demographic Data.
  • Dostęp do interfejsu API i narzędzi dla deweloperów w instancji Lookera
  • Środowisko lokalne z zainstalowanym Pythonem w wersji 3.11 lub nowszej, Gitem i gcloud.
  • projekt w chmurze z tymi rolami IAM skonfigurowanymi na Twoim koncie użytkownika:
  • roles/bigquery.dataViewer Wyświetlający dane BigQuery
  • roles/bigquery.user Użytkownik BigQuery
  • roles/looker.instanceUser Użytkownik instancji Lookera

2. Tworzenie i testowanie aplikacji do obsługi czatu za pomocą BigQuery

Najpierw skonfigurujmy i wypróbujmy aplikację do szybkiego rozpoczęcia pracy z analityką konwersacyjną, używając BigQuery jako źródła danych.

Uwierzytelnianie i włączanie interfejsów Cloud API

  1. Uwierzytelnianie lokalne za pomocą konta użytkownika:
gcloud auth login
  1. Włącz interfejsy API projektu w chmurze. Zastąp YOUR_PROJECT_ID identyfikatorem Twojego projektu Google Cloud:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
  1. Skonfiguruj domyślne uwierzytelnianie aplikacji (ADC) i płatności:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

Konfigurowanie aplikacji do szybkiego startu

  1. Sklonuj repozytorium GitHub z krótkim wprowadzeniem w środowisku lokalnym. Oto przykładowe polecenie:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. Przejdź do sklonowanego katalogu ca-api-quickstarts:
cd ca-api-quickstarts
  1. Utwórz plik secrets.toml w katalogu .streamlit. YOUR_LOOKER_CLIENT_IDYOUR_LOOKER_CLIENT_SECRET powinny być identyfikatorem klienta Lookera i tajnym kluczem klienta Lookera z Twojej instancji Lookera. Zawartość pliku powinna wyglądać tak:
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"

Aby utworzyć plik, możesz użyć tego przykładowego polecenia. Pamiętaj, aby zastąpić wartości identyfikatorem projektu, identyfikatorem klienta i tajnym kluczem klienta:

cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
  1. Zainstaluj wymagania Pythona dotyczące aplikacji z krótkim wprowadzeniem:
pip install -r requirements.txt
  1. Uruchom aplikację z krótkiego wprowadzenia:
streamlit run app.py
  1. Otwórz stronę https://localhost:8501 w wybranej przeglądarce.

Wypróbuj aplikację z krótkiego wprowadzenia

Wyświetli się strona agentów aplikacji szybkiego startu. Nie masz dostępnych agentów danych.

  1. Teraz w formularzu Utwórz agenta utwórz agenta danych, który mówi jak pirat:
  2. Ustaw pole Wyświetlana nazwa:
Pirate BQ Agent
  1. Ustaw pole Instrukcje systemowe:
You are a pirate. Answer questions like a pirate
  1. Wybierz opcję BigQuery.
  2. Ustaw pole Project (Projekt):
bigquery-public-data
  1. Ustaw pole Zbiór danych:
google_trends
  1. Ustaw pole Tabela:
top_rising_terms
  1. Kliknij Utwórz agenta.
  1. Teraz przejdźmy do strony czatu za pomocą głównego menu nawigacyjnego po lewej stronie. Nasz nowo utworzony agent jest dostępny na czacie. Zacznijmy czat od dodania promptu/wiadomości: „Cześć, co słychać?”.
  2. Dowiedzmy się teraz więcej o tym zbiorze danych: „Czego dotyczy ten zbiór danych?”
  1. Zadaj inne pytanie, np.:
  2. „Jakie lokalizacje w [wpisz nazwę stanu] znajdują się w zbiorze danych?”
  3. „Czy możesz podać dane z ostatnich 2 tygodni dla [miasto, stan]?”.
  4. „Czy możesz utworzyć wizualizację?”

Właśnie przeprowadzono wieloetapową rozmowę z agentem danych i danymi BigQuery we własnej aplikacji do czatowania.

3. Modelowanie i przeglądanie danych w Lookerze

Teraz modelujemy i eksplorujemy te same dane BigQuery w Lookerze.

Wykonywanie zapytań dotyczących danych spisu ludności w BigQuery

Co się stanie, gdy połączymy się z większym, relacyjnym zbiorem danych? Najpierw utworzymy nowego agenta.

  1. Wróć do formularza Utwórz agenta na stronie agentów.
  2. Ustaw pole Wyświetlana nazwa:
BQ Census Agent
  1. Ustaw pole Instrukcje systemowe:
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
  1. Wybierz opcję BigQuery.
  2. Ustaw pole Project (Projekt):
bigquery-public-data
  1. Ustaw pole Zbiór danych:
census_bureau_acs
  1. Ustaw pole Tabela:
blockgroup_2018_5yr
  1. Kliknij Utwórz agenta.
  2. Zadaj nowo utworzonemu agentowi oba te pytania:
  3. „Jakie dane posiadasz?”
  4. „Czy możesz mi pokazać podgląd moich danych?”

Modelowanie danych spisu ludności za pomocą Lookera

Teraz użyjemy modelu LookML, aby zdefiniować dane spisu powszechnego BigQuery. Rozwiążemy problemy, które widzieliśmy wcześniej.

  1. Logowanie się w instancji Lookera
  2. Aby przejść do plików bloków danych demograficznych ACS, w menu głównym po lewej stronie kliknij kolejno Develop (Programowanie) i marketplace_acs_census-v2.
  3. Przyjrzyjmy się widokowi Looker. Otwórz katalog imported_project, katalog acs_census-v2 i katalog geography.
  4. Na koniec otwórz plik cbsa.view.
  5. W wierszu 17 widzimy, że LookML tworzy tabelę derywowaną. Innymi słowy, ten kod tworzy nową, połączoną tabelę, łącząc 2 publiczne zbiory danych BigQuery: jeden z danymi spisu ludności, a drugi z danymi granic geograficznych. LookML umożliwia łączenie wielu zbiorów danych przez utworzenie trwałej tabeli derywowanej, do której można przesyłać zapytania.

Poza tym złączenie jest zdefiniowane w kodzie z obsługą wersji (LookML), a nie w instrukcjach systemowych, co zwiększa skalowalność tworzenia agentów. Za pomocą LookML możesz zdefiniować konkretne założenia i ograniczenia dotyczące danych, aby wspierać użytkowników podczas rozmów z danymi za pomocą agenta danych.

Przeglądanie modelowanych danych z narzędzia Looker

Aby pokazać, że mamy jedno scentralizowane źródło danych, do którego możemy wysyłać zapytania, wykonajmy szybkie zapytanie w ramach eksploracji.

  1. W menu nawigacyjnym po lewej stronie kliknij kolejno Eksploruj, Blok danych spisu ludnościStan i hrabstwo.
  2. Wybierz miarę Wykształcenie > Associate Degree.
  3. Wybierz te wymiary:
  4. Położenie geograficzne > Grupa bloków
  5. Obszar geograficzny > Hrabstwo > Nazwa hrabstwa
  6. Położenie geograficzne > Stan > Stan.
  7. Uruchom zapytanie (w prawym górnym rogu). Zobaczysz, że identyfikatory geograficzne (nazywane „Block Group”) są teraz powiązane z czytelnymi ciągami znaków.
  8. Otwórz kartę wizualizacji, aby zobaczyć te dane na mapie.

4. Wypróbuj aplikację do obsługi czatu z Lookerem

Teraz utwórzmy agenta danych dla Lookera.

  1. Otwórz formularz Utwórz agenta na stronie agenta aplikacji szybkiego startu:
  2. Ustaw pole Wyświetlana nazwa:
Cartoon character data analyst
  1. Ustaw pole Instrukcje systemowe:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
  1. Wybierz opcję Looker.
  2. Ustaw pole Url na adres URL instancji Lookera: „https://...”.
  3. Ustaw pole Model:
data_block_acs_bigquery
  1. Ustaw pole Eksploruj:
cbsa
  1. Kliknij Utwórz agenta.
  2. Otwórz stronę czatu i wybierz nowo utworzonego agenta.
  3. Zacznijmy czat od dodania promptu/wiadomości: „Cześć, co słychać?”.
  4. Poprośmy agenta o opisanie zbioru danych: „Jakie dane są dostępne?”.
  5. Zadajmy jeszcze kilka pytań:
  6. „Which county in NY has the biggest population?” (W którym hrabstwie w stanie Nowy Jork mieszka najwięcej osób?);
  7. „A gdzie jest najwięcej absolwentów szkół średnich w przeliczeniu na mieszkańca?”
  8. „Czy możesz podać liczbę ludności według płci i stanu?”
  9. „Chcę zobaczyć wykres słupkowy 10 stanów o największej populacji”.

5. Co jeszcze może robić aplikacja do szybkiego startu?

Teraz:

  • Konfigurowanie komunikatora lokalnie
  • utworzono agenta danych BigQuery i agenta danych Looker,
  • prowadzić rozmowy z agentami danych,
  • informacje o korzyściach z modelowania semantycznego w Lookerze jako kontekst dla czatów;

Wypróbujmy inne funkcje aplikacji z krótkiego wprowadzenia:

  1. Załaduj ponownie stronę internetową aplikacji szybkiego startu i przejdź do strony czatu.
  2. Możesz wyświetlać wcześniejsze rozmowy ze wszystkimi powiązanymi z nimi wiadomościami od agentów BigQuery i Lookera. Interfejs aplikacji nie przechowuje poprzednich rozmów ani wiadomości, ale pobiera je z interfejsu CA API.
  1. Teraz przejdź na stronę agentów i wybierz z listy agenta Looker.
  2. Możesz zaktualizować konfiguracje agenta lub go usunąć. Żadne agenty nie są przechowywane w interfejsie aplikacji.

6. Opcjonalne wyzwania i dalsze odkrywanie

Możesz przy okazji zapoznać się z analityką konwersacyjną i aplikacją szybkiego startu. Możesz też spróbować zmodyfikować aplikację szybkiego startu. Wypróbuj niektóre z tych sugestii i wyzwań lub przejdź do ostatniej sekcji.

Zapoznaj się z interfejsem API usługi CA i aplikacją na początek

Problemy z modyfikowaniem aplikacji z szybkiego wprowadzenia

  • Czy znasz funkcję osadzania Lookera? Jeśli tak, spróbuj umieścić panel Looker w aplikacji z krótkim wprowadzeniem. Rozważ użycie komponentu iframe Streamlit.
  • Znajdź publiczny zbiór danych zawierający adresy URL filmów i zaktualizuj logikę renderowania czatu w aplikacji, aby wyświetlać filmy na czacie.

7. Podsumowanie i najważniejsze informacje

Gratulujemy dotarcia do końca! Za pomocą interfejsu analityki konwersacyjnej API możesz tworzyć komunikatory, agentów danych i prowadzić czaty oparte na danych. Omówmy kilka kluczowych funkcji i pojęć.

Funkcje analityki konwersacyjnej

Omówiliśmy wiele funkcji analizy konwersacyjnej, takich jak:

  • Tworzenie, aktualizowanie, wyświetlanie, pobieranie i usuwanie agentów danych.
  • Skieruj agentów danych do BigQuery lub Lookera jako źródła danych.
  • Tworzenie, wyświetlanie i pobieranie rozmów oraz powiązanych z nimi wiadomości.
  • Tworzenie specyfikacji wykresu Vega na potrzeby wciągającej wizualizacji w rozmowach.
  • wykorzystywać wcześniejsze wiadomości w rozmowie jako przydatny kontekst dla przyszłych wiadomości;

Korzyści z używania Lookera z interfejsem CA API

Looker zapewnia scentralizowane, testowalne i kontrolowane semantyczne modelowanie danych. W połączeniu z Analityką konwersacyjną Looker zapewnia skalowalny sposób na dostarczanie kontekstu agentom danych.

Co dalej