Введение в разговорную аналитику в BigQuery

1. Введение

Получение ценной информации из данных часто требует значительного времени, усилий и глубоких знаний SQL. В этом практическом занятии вы изучите Agent Catalog от BigQuery — новую платформу, которая предоставляет мгновенную информацию на основе искусственного интеллекта с помощью диалоговых агентов данных.

Вы выйдете за рамки простого преобразования текста в SQL, создав специализированный агент данных. Вы научитесь обогащать агент бизнес-контекстом, системными инструкциями и проверенными запросами для обеспечения высокой точности результатов. Наконец, вы опубликуете этот агент для использования другими сотрудниками вашей организации.

Предварительные требования

  • Базовое понимание Google Cloud

Что вы узнаете

  • Как ориентироваться в каталоге агентов BigQuery
  • Как создать пользовательского агента и определить источники знаний
  • Как использовать Gemini для генерации семантических метаданных
  • Как добавить системные инструкции и проверенные запросы для руководства действиями агента.
  • Как публиковать и делиться агентами

Что вам понадобится

  • Аккаунт Google Cloud и проект Google Cloud
  • Базовые знания BigQuery и SQL.
  • Веб-браузер, например Chrome.

2. Настройка и требования

Выберите проект

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

3. Прежде чем начать

Назначьте себе необходимые роли.

Перейдите на страницу IAM проекта и назначьте себе роль владельца агента данных Gemini Data Analytics :

1d3874c1bc28d81d.png

Эта роль предоставляет вам право создавать, редактировать, предоставлять доступ и удалять все агенты данных в проекте.

Включите необходимые API.

Воспользуйтесь боковым меню навигации или меню поиска в верхней части страницы, чтобы перейти к разделу BigQuery > Agents .

Нажмите «Включить API анализа данных с помощью Gemini» :

4bc781d1a83ba367.png

Включите Gemini как в BigQuery API , так и в Google Cloud API :

71678b9b8900a7a6.png

Теперь вы должны увидеть новую страницу агента:

23935c00cd4b23c1.png

4. Создайте агента.

Давайте создадим вашего первого агента данных, используя международный общедоступный набор данных Google Trends . Этот набор данных полезен для того, чтобы задавать вопросы о том, какие поисковые запросы популярны в мире и как эти интересы соотносятся с историческими данными.

Начнём с того, что дадим вашему агенту имя и краткое описание. Это описание предназначено исключительно для того, чтобы другие пользователи понимали назначение агента.

Имя агента

Google Trends Agent

Описание агента

Data agent for the Google Trends International Top Terms public dataset

Источники знаний

Теперь добавим источники знаний. Источник знаний — это таблица, представление или пользовательская функция BigQuery, которую агент может использовать для ответа на вопросы.

Для этой демонстрации добавьте всего одну таблицу, чтобы упростить задачу. Однако имейте в виду, что вы можете добавить до 50 источников знаний на каждого агента для обработки более сложных сценариев данных.

Введите следующую таблицу в поле поиска, поставьте галочку и нажмите «Добавить» :

bigquery-public-data.google_trends.international_top_terms

8b84bd4c4227637d.png

Структурированный контекст

Для повышения точности работы агента обработки данных добавьте структурированный контекст к таблице и столбцам. Нажмите «Настроить» :

f802527c7d72ae63.png

Gemini автоматически генерирует варианты описаний. Нажмите «Принять» рядом с описанием таблицы:

cc02e10c0c74bf4b.png

Чтобы применить описания ко всем столбцам, установите флажок «Выбрать все строки» , а затем нажмите «Принять предложения» .

f811458ff0240c.png

Нажмите кнопку «Обновить» внизу страницы, чтобы сохранить изменения и вернуться в редактор агентов.

Инструкции

Диалоговое окно инструкций для агента позволяет предоставить агенту дополнительные указания по интерпретации и запросу данных из источников. Это включает в себя:

  • Синонимы : Альтернативные термины для обозначения ключевых областей.
  • Ключевые области : Наиболее важные области для анализа.
  • Исключенные поля : Поля, которые агент данных должен избегать.
  • Фильтрация и группировка : Поля, которые агент должен использовать для фильтрации и группировки данных.
  • Связи объединения : способ объединения двух или более таблиц на основе общих полей.

Скопируйте и вставьте следующие инструкции:

### 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.

Подтвержденные запросы

Проверенные запросы, ранее известные как «золотые запросы» , используются в качестве эталона для агента с целью повышения точности ответов. Они формируют структуру ответов агента и помогают ему освоить бизнес-логику, используемую вашей организацией.

Давайте добавим два примера для вашего агента. Нажмите «Добавить запрос» и скопируйте/вставьте следующий вопрос и запрос:

Вопрос 1:

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

Запрос 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;

Прежде чем сохранить этот запрос, давайте выполним его, чтобы убедиться в его корректности.

e3fb570a4109e93c.png

Мне всё нравится! Нажмите «Добавить» , чтобы сохранить проверенный запрос.

Давайте добавим еще один пример для более сложного случая. Нажмите «Управление запросами» и добавьте:

Вопрос 2:

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

Ответ 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

Прежде чем перейти к следующему разделу, давайте посмотрим на предложения, сгенерированные Gemini :

b52489d21f503a76.png

Здесь вы можете увидеть несколько предлагаемых проверенных запросов. При создании нового агента в будущем это отличная отправная точка. Просто не забудьте проверить каждый добавленный вами запрос!

Глоссарий

Давайте добавим термин в глоссарий. Если ваша компания использует Dataplex, эти термины импортируются непосредственно из бизнес-глоссария в универсальном каталоге Dataplex.

Нажмите «Добавить термин» и скопируйте/вставьте следующий пример:

Срок:

refresh_date

Определение:

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.

Синонимы:

today, latest, current, now, recent

Затем нажмите «Добавить», а затем «Сохранить».

33b4a74fcde504d5.png

Настройки агента

В разделе «Настройки» можно задать метки и максимальное количество оплачиваемых байтов .

Метки

Метки — это пары «ключ-значение», используемые для организации ресурсов Google Cloud в логические группы. Чтобы не усложнять выполнение этого задания, оставьте поля меток пустыми.

Максимальное количество байтов, подлежащих оплате

Чтобы избежать случайного создания дорогостоящих запросов, давайте установим ограничение на максимальное количество байтов, оплачиваемых за запрос. Если запрос агента обрабатывает байты, превышающие этот лимит, запрос завершается с ошибкой без взимания платы. Введите следующее значение:

10000000000

10 000 000 000 байт — это примерно 9,3 ГБ. Если вы не укажете значение, максимальное количество оплачиваемых байт по умолчанию будет соответствовать квоте на использование запросов в день для данного проекта.

5. Сохранение и предоставление информации о вашем агенте.

Предварительный просмотр

Всё готово! Давайте протестируем вашего агента, прежде чем двигаться дальше. В правой части экрана вы можете динамически тестировать агента, внося изменения в конфигурацию. Предварительный просмотр автоматически использует предоставленные вами новые метаданные без сохранения или публикации изменений.

Давайте спросим, ​​к каким данным имеет доступ агент. Можете задать несколько вопросов своими словами:

b2679cc7c6c926b2.png

Сохранять

После проверки нескольких запросов сохраните изменения , а затем опубликуйте агента:

56a45347d496dd42.png

Публикация агента сделает его доступным в BigQuery Studio, API Conversational Analytics и Looker Studio Pro (при условии наличия лицензии):

a4fbeb3011d409f5.png

Поддержка дополнительных поверхностей и интеграций планируется в будущих релизах.

Делиться

Вы должны увидеть сообщение с подтверждением публикации агента. Теперь вы можете поделиться этим агентом с другими пользователями.

bdd4ee4be02c26d8.png

Когда вы предоставляете доступ к агенту другим пользователям, вы контролируете уровень их доступа, назначая им определенную роль. Эти роли определяют, может ли соавтор просто просматривать ваш агент или же он имеет право редактировать и управлять его конфигурацией.

Важно отметить, что эти роли могут применяться на двух разных уровнях:

  • На уровне проекта : Предоставление роли на уровне проекта дает пользователю соответствующие разрешения для всех агентов в рамках данного проекта Google Cloud.
  • Уровень агента : Для более детального контроля вы можете назначать роли конкретному агенту. Это полезно, когда вы хотите, чтобы пользователь имел доступ к одному конкретному агенту данных, не видя при этом других агентов в проекте.

Для анализа разговорной речи заданы следующие предопределенные роли:

  1. Владелец агента данных Gemini Data Analytics (roles/geminidataanalytics.dataAgentOwner) создание, редактирование, предоставление доступа и удаление всех агентов данных.
  2. Gemini Data Analytics Data Agent Creator (roles/geminidataanalytics.dataAgentCreator) — Создавайте, редактируйте, делитесь и удаляйте собственные агенты данных.
  3. Редактор агентов данных Gemini Data Analytics (roles/geminidataanalytics.dataAgentEditor) — доступ к чату и редактированию агентов данных.
  4. Пользователь агента данных для анализа данных (roles/geminidataanalytics.dataAgentUser) — доступ к чату и просмотру данных у агентов.
  5. Gemini Data Analytics Data Agent Viewer (roles/geminidataanalytics.dataAgentViewer) - Доступ для просмотра (только для чтения) данных через агенты.

6. Начните разговор с агентом.

Давайте выйдем из вкладки «Поделиться» и создадим новую беседу:

d7a824ed0aaeaf12.png

При нажатии кнопки «Создать беседу» создается новая беседа без названия.

Давайте спросим, ​​какие термины сейчас в тренде в Англии (можете заменить на название любого другого места!):

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

Распаковка потока ответов

Как правило, при ответе на вопросы агент обработки данных следует одному и тому же потоку ответов:

  1. Рассуждение : Сначала агент «обдумывает» предложенную задачу. Разверните кнопку «Показать рассуждение» , чтобы просмотреть пошаговые инструкции по принятию решений агентом.
  2. Краткое описание : Агент генерирует краткое описание запроса, итоговый отчет и визуализацию.
  3. Сгенерированный SQL-запрос : Разверните раздел « Вот запрос...» , чтобы просмотреть SQL-код. Нажмите «Открыть в редакторе» , чтобы вручную уточнить запрос в BigQuery Studio.
  4. Результаты запроса : Агент представляет результаты запроса в понятном табличном формате.
  5. Визуализация : Диаграмма отображается вместе с кратким описанием. Агент автоматически определяет наиболее подходящий тип визуализации (например, линейный график с несколькими рядами данных) для ваших данных.
  6. Анализ данных : Агент обобщает ключевые тенденции и выводы, полученные в результате анализа.
  7. Дополнительные вопросы : В заключение агент предлагает соответствующие дополнительные вопросы, которые помогут вам продолжить анализ.

ee07f83cdbd20de1.png

Поддержка машинного обучения BigQuery

Давайте уточним, может ли агент обработки данных выполнить какое-либо прогнозирование на основе этих результатов. Это позволит использовать функции машинного обучения BigQuery для прогнозирования будущих значений.

Введите следующий запрос (обязательно замените "monopoly board" на термин, соответствующий вашему запросу!):

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

Как видите, для прогнозирования временного ряда использовался AI_FORECAST . Ничего удивительного, хотя интересно наблюдать значительный всплеск в августе 2021 года, совпадающий с торжественным открытием аттракциона «Монополия в натуральную величину» в Лондоне!

441a92d19f7d15e0.png

7. Ознакомьтесь с каталогом агентов.

Давайте перед завершением изучим Каталог агентов. Нажмите на «Каталог агентов» в верхней части окна:

59acded82548bd.png

Эта страница служит центральным центром управления агентами данных и разделена на следующие разделы:

  • Мои агенты : Ваши агенты, с которыми вы сотрудничаете в настоящее время.
  • Мои черновики агентов : Сохраненные вами конфигурации, которые вы еще не опубликовали.
  • Доступ к агентам, созданным коллегами, которым вы предоставили разрешение.
  • Примеры агентов от Google : предварительно настроенные примеры, которые помогут вам начать работу.

Для любого управляемого вами агента вы можете редактировать конфигурации, создавать дубликаты агентов и управлять правами доступа.

8. Заключение

Поздравляем, вы успешно создали агента анализа разговорных данных. Для получения более подробной информации ознакомьтесь с справочными материалами!

Справочные материалы