Wprowadzenie do analizy konwersacyjnej w BigQuery

1. Wprowadzenie

Uzyskiwanie statystyk z danych często wymaga dużo czasu, wysiłku i dogłębnej znajomości SQL. W tym laboratorium kodowym poznasz katalog agentów BigQuery, nową platformę, która zapewnia natychmiastowe statystyki oparte na AI za pomocą konwersacyjnych agentów danych.

Wyjdziesz poza prostą konwersję tekstu na SQL, tworząc wyselekcjonowanego agenta danych. Dowiesz się, jak wzbogacać agenta o kontekst biznesowy, instrukcje systemowe i zweryfikowane zapytania, aby zapewnić bardzo dokładne wyniki. Na koniec opublikujesz tego agenta, aby mogli z niego korzystać inni użytkownicy w Twojej organizacji.

Wymagania wstępne

  • Podstawowa wiedza o Google Cloud

Czego się nauczysz

  • Jak poruszać się po katalogu agentów BigQuery
  • Jak utworzyć agenta niestandardowego i określić źródła wiedzy
  • Jak używać Gemini do generowania metadanych semantycznych
  • Jak dodawać instrukcje systemowe i zweryfikowane zapytania, aby kierować działaniami agenta
  • Jak publikować i udostępniać agentów

Czego potrzebujesz

  • konto Google Cloud i projekt w chmurze Google Cloud,
  • Podstawowa znajomość BigQuery i SQL
  • przeglądarka, np. Chrome;

2. Konfiguracja i wymagania

Wybierz projekt

  1. Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
  • Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu.
  • Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
  1. Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.

3. Zanim zaczniesz

Przyznawanie sobie wymaganych ról

Otwórz stronę Uprawnienia projektu i przypisz sobie rolę Właściciel agenta danych Gemini Data Analytics:

1d3874c1bc28d81d.png

Ta rola przyznaje uprawnienia do tworzenia, edytowania, udostępniania i usuwania wszystkich agentów danych w projekcie.

Włącz wymagane interfejsy API

W menu nawigacyjnym na pasku bocznym lub w menu wyszukiwania u góry strony przejdź do BigQuery > Agenci.

Kliknij Włącz API Data Analytics z Gemini:

4bc781d1a83ba367.png

Włącz interfejsy Gemini in BigQuery API i Gemini for Google Cloud API:

71678b9b8900a7a6.png

Powinna wyświetlić się strona nowego agenta:

23935c00cd4b23c1.png

4. Utwórz agenta

Utwórzmy pierwszego agenta danych, korzystając z międzynarodowego publicznego zbioru danych Trendów Google. Ten zbiór danych jest przydatny do zadawania pytań o to, jakie wyszukiwane hasła są popularne na całym świecie i jak te zainteresowania zmieniały się na przestrzeni czasu.

Zacznij od nadania agentowi nazwy i krótkiego opisu. Ten opis służy wyłącznie innym użytkownikom do zrozumienia przeznaczenia agenta.

Nazwa agenta

Google Trends Agent

Opis agenta

Data agent for the Google Trends International Top Terms public dataset

Źródła wiedzy

Teraz dodaj źródła wiedzy. Źródło wiedzy to tabela, widok lub funkcja UDF BigQuery, których agent może używać do odpowiadania na pytania.

Aby uprościć ten przykład, dodaj tylko jedną tabelę. Pamiętaj jednak, że do każdego agenta możesz dodać maksymalnie 50 źródeł wiedzy, aby obsługiwać bardziej złożone scenariusze danych.

Wpisz w polu wyszukiwania tę tabelę, zaznacz pole wyboru i kliknij Dodaj:

bigquery-public-data.google_trends.international_top_terms

8b84bd4c4227637d.png

Kontekst strukturalny

Aby zwiększyć dokładność agenta danych, dodaj do tabeli i kolumn kontekst strukturalny. Kliknij Customise:

f802527c7d72ae63.png

Gemini automatycznie generuje sugestie dotyczące opisów. Obok opisu tabeli kliknij Akceptuj:

cc02e10c0c74bf4b.png

Aby zastosować opisy do wszystkich kolumn, zaznacz Wybierz wszystkie wiersze, a potem kliknij Zaakceptuj sugestie:

f811458ff0240c.png

Aby zapisać zmiany i wrócić do edytora agenta, kliknij Zaktualizuj u dołu strony.

Instrukcje

W oknie dialogowym instrukcji dla agenta możesz podać dodatkowe wskazówki, które pomogą mu interpretować źródła danych i wysyłać do nich zapytania. Obejmuje to m.in.:

  • Synonimy: alternatywne hasła dla pól kluczowych.
  • Kluczowe pola: najważniejsze pola do analizy.
  • Wykluczone pola: pola, których agent danych powinien unikać.
  • Filtrowanie i grupowanie: pola, których agent powinien używać do filtrowania i grupowania danych.
  • Relacje złączenia: sposób łączenia co najmniej 2 tabel na podstawie wspólnych pól.

Skopiuj i wklej te instrukcje:

### System Instruction

* You are an expert data analyst for the Google Trends International public dataset.
* Always filter on yesterday's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY).
* If yesterday returns no data, filter on 2 days ago's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY).
* Default to country-level results (one row per term).
* "Top" queries must deduplicate snapshot rows.
* Only include week or score when the user explicitly asks for trends over time.
* This is an international dataset and does not include any data for the United States.

### Additional Descriptions

#### 1. Core model:

* refresh_date selects the daily Top-25 term set.
* week + score are historical weekly values attached to those terms.
* Filtering week does not change which terms appear.

#### 2. Deduplication rule (critical):

* Snapshot rows repeat across weeks and regions.
* For "top" queries, always GROUP BY term (country-level) and compute rank as MIN(rank).

#### 3. Defaults:

* Country-level results only.
* Use region_code only if the user explicitly asks for regions.
* Limit results unless the user asks otherwise.

#### 4. Time series usage:

* Only include week or score when the user asks for trends over time, historical context, or week-over-week score changes.

#### 5. Field guidance:

* Prefer country_code or region_code for filters.
* country_name / region_name are for display only.
* score is normalized; compare trends within a term, not across terms.

Zweryfikowane zapytania

Zweryfikowane zapytania, wcześniej znane jako złote zapytania, są używane jako informacje referencyjne dla agenta, aby zwiększyć trafność odpowiedzi. Określają one strukturę odpowiedzi agenta i pomagają nauczyć go logiki biznesowej używanej przez Twoją organizację.

Dodajmy 2 przykłady dla agenta. Kliknij Dodaj zapytanie i skopiuj poniższe pytanie oraz zapytanie:

Pytanie 1:

What are the top search terms in the UK right now?

Zapytanie 1:

SELECT term, MIN(rank) AS rank
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  AND country_code = 'GB'
GROUP BY term
ORDER BY rank
LIMIT 25;

Zanim zapiszesz to zapytanie, uruchom je, aby sprawdzić, czy jest prawidłowe.

e3fb570a4109e93c.png

Wszystko w porządku. Aby zapisać zweryfikowane zapytanie, kliknij Dodaj.

Dodajmy jeszcze jeden przykład bardziej złożonego przypadku użycia. Kliknij Zarządzaj zapytaniami i dodaj:

Pytanie 2:

Show the last 12 weeks of interest for the current top 5 terms in Auckland.

Odpowiedź 2:

WITH top5 AS (
  SELECT term, MIN(rank) AS rank
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
  GROUP BY 1
  ORDER BY 2
  LIMIT 5
),
series AS (
  SELECT term, week, score,
    ROW_NUMBER() OVER (PARTITION BY term ORDER BY week DESC) AS rn
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
    AND term IN (SELECT term FROM top5)
)
SELECT week, term, score
FROM series
WHERE rn <= 12
ORDER BY 1 DESC, 3

Zanim przejdziemy do następnej sekcji, przyjrzyjmy się sugestiom wygenerowanym przez Gemini:

b52489d21f503a76.png

Tutaj możesz zobaczyć sugerowane zweryfikowane zapytania. To świetny punkt początkowy do tworzenia nowych agentów w przyszłości. Pamiętaj tylko, aby sprawdzić każde dodane zapytanie.

Słowniczek

Dodajmy hasło do glosariusza. Jeśli Twoja firma korzysta z Dataplex, te terminy są importowane bezpośrednio z glosariusza firmowego w Dataplex Universal Catalog.

Kliknij Dodaj termin i skopiuj / wklej ten przykład:

Okres obowiązywania:

refresh_date

Definicja:

Snapshot date that selects the daily Top 25 term set. All rows for that date belong to the same "what's trending now" snapshot. Attach Historical week and score values after this selection.

Synonimy:

today, latest, current, now, recent

Następnie kliknij Dodaj i Zapisz.

33b4a74fcde504d5.png

Ustawienia agenta

W sekcji Ustawienia możesz skonfigurować etykiety i maksymalną liczbę bajtów do rozliczenia.

Etykiety

Etykiety to pary klucz-wartość służące do porządkowania zasobów Google Cloud w grupy logiczne. Aby skupić się na tym module, pozostaw etykiety puste.

Maksymalna liczba naliczonych bajtów

Aby uniknąć przypadkowego generowania kosztownych zapytań, ustawmy limit maksymalnej liczby rozliczanych bajtów na zapytanie. Jeśli zapytanie agenta przetworzy bajty powyżej tego limitu, zakończy się niepowodzeniem bez naliczania opłat. Wpisz tę wartość:

10000000000

10 000 000 000 bajtów to około 9,3 GB. Jeśli nie określisz wartości, maksymalna liczba rozliczanych bajtów będzie domyślnie ustawiona na limit wykorzystania zapytań dziennie w projekcie.

5. Zapisywanie i udostępnianie agenta

Podgląd

Wszystko gotowe. Zanim przejdziesz dalej, przetestujmy Twojego agenta. Po prawej stronie ekranu możesz dynamicznie testować agenta podczas wprowadzania zmian w konfiguracji. Podgląd automatycznie używa nowych metadanych, które podasz, bez zapisywania ani publikowania zmian.

Zapytajmy, do jakich danych ma dostęp agent. Możesz zadać kilka pytań własnymi słowami:

b2679cc7c6c926b2.png

Zapisz

Po przetestowaniu kilku promptów kliknij Zapisz, a następnie Opublikuj agenta:

56a45347d496dd42.png

Opublikowanie agenta spowoduje, że będzie on dostępny w BigQuery Studio, interfejsie API analityki konwersacyjnej i Looker Studio Pro (zgodnie z licencją):

a4fbeb3011d409f5.png

Obsługa dodatkowych platform i integracji jest planowana w przyszłych wersjach.

Udostępnij

Powinien pojawić się komunikat z potwierdzeniem, że agent został opublikowany. Możesz teraz udostępnić tego agenta innym użytkownikom.

bdd4ee4be02c26d8.png

Gdy udostępniasz agenta innym użytkownikom, możesz kontrolować ich poziom dostępu, przypisując im określoną rolę. Te role określają, czy współpracownik może tylko wyświetlać Twojego agenta, czy też ma uprawnienia do edytowania i zarządzania jego konfiguracją.

Warto pamiętać, że te role można przypisać na 2 różnych poziomach:

  • Poziom projektu: przyznanie roli na poziomie projektu zapewnia użytkownikowi te uprawnienia w przypadku wszystkich agentów w tym projekcie Google Cloud.
  • Poziom agenta: aby uzyskać większą kontrolę, możesz przyznać role konkretnemu agentowi. Jest to przydatne, gdy chcesz, aby użytkownik miał dostęp do jednego agenta danych bez możliwości wyświetlania innych agentów w projekcie.

Gotowe role w Analityce konwersacyjnej to:

  1. Właściciel agenta danych Gemini Data Analytics (roles/geminidataanalytics.dataAgentOwner) tworzenie, edytowanie, udostępnianie i usuwanie wszystkich agentów danych.
  2. Twórca agentów danych Gemini Data Analytics (roles/geminidataanalytics.dataAgentCreator) – tworzenie, edytowanie, udostępnianie i usuwanie własnych agentów danych.
  3. Edytujący agenta danych Gemini Data Analytics (roles/geminidataanalytics.dataAgentEditor) – uprawnienia do czatu i edycji agentów danych.
  4. Użytkownik agenta danych Data Analytics (roles/geminidataanalytics.dataAgentUser) – uprawnienia do czatu i wyświetlania agentów danych.
  5. Wyświetlający agenta danych Gemini Data Analytics (roles/geminidataanalytics.dataAgentViewer) – dostęp do agentów danych tylko do odczytu.

6. Utwórz rozmowę z agentem

Zamknij kartę Udostępnij i utwórz nową rozmowę:

d7a824ed0aaeaf12.png

Gdy klikniesz Utwórz rozmowę, zostanie wygenerowana nowa rozmowa bez tytułu.

Zapytajmy, jakie hasła są popularne w Anglii (możesz zastąpić ją dowolną lokalizacją):

Based on the top 10 terms in England, how did they trend for the past 3 months?

Rozpakowywanie strumienia odpowiedzi

Podczas odpowiadania na pytania agent danych zwykle postępuje zgodnie z tym samym schematem:

  1. Rozumowanie: agent najpierw „zastanawia się” nad promptem. Kliknij przycisk Pokaż rozumowanie, aby wyświetlić szczegółowe informacje o procesie podejmowania decyzji przez agenta.
  2. Podsumowanie: agent generuje ogólne podsumowanie zapytania, raportu i wizualizacji.
  3. Wygenerowany kod SQL: rozwiń sekcję Oto zapytanie..., aby sprawdzić kod SQL. Kliknij Otwórz w edytorze, aby ręcznie dostosować zapytanie w BigQuery Studio.
  4. Wyniki danych: agent przedstawia wyniki zapytania w przejrzystym formacie tabelarycznym.
  5. Wizualizacja: obok krótkiego opisu pojawia się wykres. Agent automatycznie wnioskuje, jaki typ wizualizacji (np. wykres liniowy z wieloma seriami) będzie najlepszy dla Twoich danych.
  6. Data Insights: agent podsumowuje kluczowe trendy i wnioski z wyników.
  7. Dodatkowe pytania: na koniec agent sugeruje dodatkowe pytania, które pomogą Ci kontynuować analizę.

ee07f83cdbd20de1.png

Obsługa BigQuery ML

Zapytajmy, czy agent danych może na podstawie tych wyników przeprowadzić prognozę. Wykorzystuje to funkcje BigQuery ML do prognozowania przyszłych punktów.

Wpisz ten prompt (pamiętaj, aby zastąpić „plansza do Monopoly” terminem odpowiednim dla Twojego zapytania):

Can you predict and visualize how monopoly board will trend in the next 4 weeks?

Możesz sprawdzić, czy do prognozowania ciągu czasowego użyto funkcji AI_FORECAST. Nie ma tu niespodzianek, ale warto zauważyć, że w sierpniu 2021 r. nastąpił duży wzrost, który zbiegł się z otwarciem atrakcji Monopoly Lifesized w Londynie.

441a92d19f7d15e0.png

7. Przeglądanie Katalogu agentów

Zanim skończymy, zapoznajmy się z katalogiem agentów. U góry okna kliknij Katalog agentów:

59acded82548bd.png

Ta strona to centralne miejsce zarządzania agentami danych. Jest podzielona na te sekcje:

  • Moi agenci: aktualnie opublikowani agenci.
  • Moje agenty w wersji roboczej: zapisane, ale jeszcze nieopublikowane konfiguracje.
  • Udostępnione przez inne osoby w organizacji: agenci utworzeni przez współpracowników, do których masz uprawnienia dostępu.
  • Przykładowe agenty Google: wstępnie skonfigurowane przykłady, które pomogą Ci zacząć.

W przypadku każdego agenta, którym zarządzasz, możesz edytować konfiguracje, duplikować agentów i zarządzać uprawnieniami do udostępniania.

8. Podsumowanie

Gratulacje! Udało Ci się utworzyć agenta danych analityki konwersacyjnej. Więcej informacji znajdziesz w materiałach referencyjnych.

Materiały referencyjne