Tworzenie aplikacji do obsługi czatu za pomocą analityki konwersacyjnej i Lookera

1. Zanim zaczniesz

W tym samouczku dowiesz się, jak używać interfejsu Conversational Analytics API (CA API) z Lookerem 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 do szybkiego startu w Pythonie do analizy konwersacyjnej (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 czatu za pomocą BigQuery

Najpierw skonfigurujemy i wypróbujemy aplikację do szybkiego rozpoczęcia pracy z analityką konwersacyjną, w której BigQuery będzie źródłem danych.

Uwierzytelnianie i włączanie interfejsów Cloud API

  1. Uwierzytelnij się lokalnie za pomocą konta użytkownika:
gcloud auth login
  1. Włącz interfejsy API projektu w Google Cloud. 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 dane logowania 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 szybkim 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 wartość w polu 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 czegoś więcej o tym zbiorze danych: „Czego dotyczy ten zbiór danych?”
  1. Zadaj kolejne pytanie, np. takie:
  2. „Jakie lokalizacje w [wpisz stan] 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 powszechnego 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 wartość w polu 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 głównym menu 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 możliwością tworzenia 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 spisu ludności w Lookerze

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 w polu Url 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 co z największą liczbą absolwentów szkół średnich w przeliczeniu na mieszkańca?”
  8. „Podaj mi 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 z szybkim startem?

Teraz:

  • Konfigurowanie aplikacji do czatu lokalnie
  • utworzono agenta danych BigQuery i agenta danych Looker,
  • prowadzić rozmowy z agentami danych,
  • Poznanie korzyści z modelowania semantycznego w Lookerze jako kontekstu 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 Lookera.
  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 zadań lub przejdź do ostatniej sekcji.

Zapoznaj się z interfejsem CA API i aplikacją do szybkiego rozpoczęcia pracy

Problemy z modyfikowaniem aplikacji w ramach krótkiego wprowadzenia

  • Czy znasz funkcję osadzania Lookera? Jeśli tak, spróbuj osadzić panel Looker w aplikacji z szybkim wprowadzeniem. Możesz użyć 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 Conversational Analytics API możesz tworzyć aplikacje do czatowania, agentów danych i prowadzić czaty oparte na danych. Omówmy kilka kluczowych funkcji i pojęć.

Funkcje analityki konwersacyjnej

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

  • Tworzenie, aktualizowanie, wyświetlanie, pobieranie i usuwanie agentów danych.
  • Wskaż agentom danych BigQuery lub Lookera jako źródło 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, podlegające testowaniu i zarządzaniu semantyczne modelowanie danych. W połączeniu z Analityką konwersacyjną Looker zapewnia skalowalny sposób przekazywania kontekstu agentom danych.

Co dalej