Создайте универсальное приложение для службы поддержки сотрудников без программирования с помощью Vertex AI Search.

1. Введение

В этом практическом занятии вы создадите универсальное приложение для службы поддержки сотрудников без использования кода, применяя Vertex AI Search.

Представьте, что вы работаете в компании Cymbal, глобальной розничной сети. Сотрудники часто задают вопросы типа: «Какова политика бронирования деловых поездок?» или «Сколько кроссовок у нас есть в наличии?».

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

В этом практическом занятии вы создадите единое, унифицированное приложение, которое будет подключаться к этим наборам данных, позволяя сотрудникам получать ответы на свои вопросы в разговорном формате, используя возможности дополненной генерации данных (Retrieval Augmented Generation, RAG) от Vertex AI.

Что вы будете делать

В этом практическом задании вы выполните следующие шаги:

  • Настройте источники данных. Создайте хранилище Cloud Storage для неструктурированных документов отдела кадров и набор данных BigQuery для структурированных финансовых данных.
  • Настройте хранилища данных. Создайте хранилища данных Vertex AI Search, подключенные к вашим источникам данных Cloud Storage и BigQuery.
  • Подключите приложение. Создайте приложение Vertex AI Search и свяжите с ним оба хранилища данных.
  • Протестируйте приложение. Взаимодействуйте с единым интерфейсом поиска, чтобы проверить обоснованные ответы, которые объединяют информацию из обоих хранилищ данных.
  • Изучите дальнейшие шаги. Ознакомьтесь с вариантами настройки модели генеративного ИИ и развертывания вашего поискового приложения.

Схема архитектуры приложения, демонстрирующая поиск с помощью искусственного интеллекта Vertex.

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

  • Веб-браузер, например Chrome .
  • Проект Google Cloud с включенной функцией выставления счетов.
  • Установите Git на свой локальный компьютер.

Этот практический семинар предназначен для разработчиков всех уровней.

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

Создайте проект в Google Cloud и включите необходимые API.

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить , включена ли функция выставления счетов для проекта .

Необходимые роли IAM

В этом практическом занятии предполагается, что у вас есть роль « Владелец проекта» для вашего проекта в Google Cloud.

Включить API

  1. В консоли Google Cloud нажмите «Активировать Cloud Shell» : если вы никогда раньше не использовали Cloud Shell, появится панель, позволяющая запустить Cloud Shell в доверенной среде с ускорением или без него. Если вас попросят авторизовать Cloud Shell, нажмите «Авторизовать» .
  2. В Cloud Shell включите все необходимые API:
    gcloud services enable \
      discoveryengine.googleapis.com \
      aiplatform.googleapis.com \
      bigquery.googleapis.com \
      storage.googleapis.com
    

3. Клонируйте репозиторий GitHub.

Чтобы продемонстрировать работу поиска в приложении Cymbal для службы поддержки сотрудников, вам потребуются несколько фиктивных файлов. В этом разделе вы клонируете репозиторий GitHub на свой локальный компьютер, чтобы получить эти файлы. На последующих этапах вы загрузите эти файлы в Google Cloud, используя интерфейс Cloud Console.

  1. В терминале на вашем локальном компьютере клонируйте репозиторий next-26-sessions :
    git clone https://github.com/GoogleCloudPlatform/next-26-sessions.git
    
  2. Перейдите в каталог загруженного репозитория:
    cd next-26-sessions/BRK1-063-the-knowledge-source/cymbal-employee-helpdesk
    
  3. Изучите загруженные файлы в этой директории. Вы заметите, что там есть две папки: HR и Finance .
    • Папка HR содержит ряд неструктурированных файлов, таких как файлы .doc , .txt и .html . Вам необходимо загрузить файлы HR в хранилище Cloud Storage.
    • Финансы . Эта папка содержит два файла .jsonl . Вам нужно будет загрузить эти файлы в набор данных BigQuery.

4. Создайте сегмент облачного хранилища для неструктурированных файлов.

В этом разделе вы создаете хранилище Cloud Storage и загружаете документы в папку HR , которую вы скачали в разделе «Клонирование репозитория GitHub» . Неструктурированные данные, такие как документы HR в этом примере, не имеют предопределенного формата и могут включать текстовые файлы, документы или мультимедийный контент.

  1. В консоли Cloud перейдите на страницу «Корзины» .
  2. Нажмите «Создать» .
  3. На странице «Создать корзину» введите имя корзины. Имя должно быть уникальным во всем мире. Например: cymbal-app-hr-12 .
  4. Сохраните параметры по умолчанию.
  5. Нажмите «Создать» . Корзина будет создана, и отобразится страница с подробными сведениями о корзине . Если вы не видите страницу с подробными сведениями о корзине , щелкните по только что созданной корзине.
  6. На странице сведений о хранилище нажмите «Загрузка» > «Загрузить папку» , а затем выберите папку HR , которую вы загрузили в разделе «Клонировать репозиторий GitHub» .
  7. Подтвердите загрузку. Создание корзины
  8. На странице с подробными сведениями о папке нажмите на папку HR , чтобы просмотреть список файлов. Файлы в хранилище

5. Создайте набор данных BigQuery для структурированных файлов.

В этом разделе вы создадите набор данных BigQuery и загрузите документы из папки Finance , которую вы скачали в разделе «Клонирование репозитория GitHub», в новую таблицу. Структурированные данные, такие как финансовые документы в этом примере, соответствуют предопределенному формату, например, записям в базе данных.

  1. В консоли Cloud перейдите на страницу BigQuery .
  2. В панели «Проводник» щелкните имя своего проекта, а затем выберите «Действия просмотра» (три вертикальные точки) > «Создать набор данных» . создание набора данных
  3. На панели «Создать набор данных» введите идентификатор набора данных как cymbal_finance .
  4. В поле «Местоположение данных» выберите US (multiple regions in United States) .
  5. Сохраните параметры по умолчанию и нажмите «Создать набор данных» .
  6. В панели «Проводник» разверните свой проект и щелкните набор данных cymbal_finance .
  7. В панели сведений о наборе данных нажмите «Создать таблицу» .
  8. На странице «Создать таблицу» в разделе «Источник» выполните следующие действия:
    1. Для создания таблицы из выберите «Загрузить» .
    2. Для выбора файла нажмите «Обзор» , перейдите в папку Finance которую вы скачали, и выберите файл cymbal_employee_finance.jsonl .
    3. В поле «Формат файла» выберите JSONL (JSON с разделителями-переносчиками) .
  9. В разделе «Назначение» введите имя таблицы как employee_finance .
  10. В разделе «Схема» установите флажок «Автоматическое определение» .
  11. Сохраните остальные настройки по умолчанию и нажмите «Создать таблицу» .
  12. Повторите шаги с 7 по 11, чтобы загрузить данные в новую таблицу. На шаге 8b выберите product_inventory.jsonl , а на шаге 9 введите product_inventory в качестве имени таблицы . Если вы не видите таблицы в панели сведений о наборе данных, нажмите «Обновить» .
  13. Если вы успешно создали набор данных и две таблицы, то результат должен выглядеть примерно так: Набор данных о финансировании производства тарелок

6. Создайте приложение Vertex AI Search.

  1. В облачной консоли перейдите на страницу поиска Vertex AI .
  2. В разделе «Пользовательский поиск (общий)» нажмите «Создать» .
  3. На странице настроек приложения «Поиск» убедитесь, что выбраны параметры «Функции корпоративной версии» и «Генеративные ответы» .
  4. Назовите свое приложение cymbal-employee-portal .
  5. Введите название компании как Cymbal Corp
  6. Сохраните местоположение вашего приложения как global .
  7. Нажмите «Продолжить» .

7. Создайте и подключите хранилища данных.

На странице «Хранилища данных» вы создаете хранилища данных, которые будете подключать к своему приложению. Вам необходимо создать три хранилища данных: одно для неструктурированных данных отдела кадров и два для структурированных финансовых данных.

Создайте хранилище данных для неструктурированных данных.

  1. На странице «Хранилища данных» нажмите «Создать хранилище данных» .
  2. В разделе «Выберите источник данных» выберите «Облачное хранилище» .
  3. На панели «Импорт данных из облачного хранилища» перейдите в раздел «Импорт неструктурированных данных (поиск документов и RAG)» и выберите «Документы» .
  4. Оставьте параметр « Частота синхронизации» в значении «Одноразовая» .
  5. Чтобы выбрать папку или файл для импорта , нажмите «Папка» .
  6. В поле gs://... введите имя корзины, созданной вами в разделе «Создание корзины Cloud Storage для неструктурированных файлов» . Например, если имя корзины — cymbal-app-hr-12 , введите имя как cymbal-app-hr-12/HR . Загрузка данных из папки HR гарантирует, что в это хранилище данных будут включены только документы HR.
  7. Нажмите «Продолжить» .
  8. Введите имя хранилища данных как cymbal-hr .
  9. Нажмите «Продолжить» .
  10. Сохраните опцию "Общие цены" .
  11. Нажмите «Создать» .

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

Создайте хранилища данных для структурированных данных.

Вам предстоит создать два хранилища данных для структурированных данных из BigQuery: одно для финансовой информации о сотрудниках, а другое для товарных запасов.

Создайте хранилище данных для финансовой информации о сотрудниках.

  1. На странице «Хранилища данных» снова нажмите «Создать хранилище данных» .
  2. В поле «Выберите источник данных» выберите BigQuery .
  3. Для импорта структурированных данных выберите таблицу BigQuery с собственной схемой .
  4. Оставьте параметр « Частота синхронизации» в значении «Одноразовая» .
  5. Для выбора таблицы, которую вы хотите импортировать , нажмите кнопку «Обзор» . В открывшемся диалоговом окне «Выбор пути» выберите таблицу employee_finance из набора данных cymbal_finance в вашем проекте. Вы можете увидеть таблицы с похожими именами из других проектов, поэтому убедитесь, что вы выбрали таблицу из своего проекта.
  6. Нажмите «Продолжить» .
  7. Просмотрите страницу «Проверка схемы и назначение ключевых свойств» .
  8. Нажмите «Продолжить» .
  9. Введите название хранилища данных как cymbal-finance .
  10. Нажмите «Продолжить» .
  11. Сохраните опцию "Общие цены" .
  12. Нажмите «Создать» .

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

Создайте хранилище данных для информации о товарных запасах.

  1. На странице «Хранилища данных» снова нажмите «Создать хранилище данных» .
  2. В поле «Выберите источник данных» выберите BigQuery .
  3. Для импорта структурированных данных выберите таблицу BigQuery с собственной схемой .
  4. Оставьте параметр « Частота синхронизации» в значении «Одноразовая» .
  5. Чтобы выбрать таблицу для импорта , нажмите кнопку «Обзор» . В открывшемся диалоговом окне «Выбор пути» выберите таблицу product_inventory из набора данных cymbal_finance в вашем проекте.
  6. Нажмите «Продолжить» .
  7. Просмотрите страницу «Проверка схемы и назначение ключевых свойств» .
  8. Нажмите «Продолжить» .
  9. Введите название хранилища данных как cymbal-inventory .
  10. Нажмите «Продолжить» .
  11. Сохраните опцию "Общие цены" .
  12. Нажмите «Создать» .

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

8. Подключите хранилища данных к вашему приложению.

Теперь на странице «Хранилища данных» вы должны увидеть три хранилища данных: cymbal-hr (неструктурированные), cymbal-finance (структурированные) и cymbal-inventory (структурированные). Чтобы подключить эти хранилища данных к вашему приложению, выполните следующие действия:

  1. На странице «Хранилища данных» выберите все три только что созданных хранилища данных: cymbal-hr , cymbal-finance и cymbal-inventory . Убедитесь, что вы выбрали все три хранилища данных, прежде чем продолжить.
  2. Нажмите «Продолжить» .
  3. Сохраните опцию "Общие цены" .
  4. Нажмите «Создать» .

9. Протестируйте приложение корпоративного портала Cymbal для сотрудников.

  1. В приложении cymbal-employee-portal нажмите «Предварительный просмотр» .
  2. В поле «Поиск здесь» введите следующий вопрос:
    What are the stipends that I get as an employee of Cymbal located in London?
    
  3. Введите вопрос, связанный с товарными запасами:
    How many units of sneakers do we have in stock?
    
  4. Введите еще один вопрос:
    What is the stipend for an executive in Cymbal?
    

Обратите внимание, как поисковое приложение извлекало информацию из нескольких источников для формирования своего ответа. Чтобы ответить на эти вопросы, приложение осуществляло поиск как по структурированным финансовым данным, хранящимся в BigQuery, так и по неструктурированным документам отдела кадров в Cloud Storage.

Это демонстрирует возможности Vertex AI Search по объединению ответов из различных форматов данных и разрозненных хранилищ данных в единый, целостный результат.

Вы также можете настроить модель ИИ для получения еще более точных и специализированных ответов. Для получения дополнительной информации о настройке генеративного интерфейса обратитесь к документации « Получение ответов и последующих действий» .

10. Варианты развертывания вашего приложения

Хотя развертывание приложения для конечных пользователей выходит за рамки данного практического занятия, полезно знать, как это применимо в реальных условиях. У вас есть несколько вариантов интеграции вашего приложения Vertex AI Search в рабочие процессы вашей организации:

  • Готовый веб-виджет. Вы можете встроить готовый к использованию интерфейс поиска или чата непосредственно в существующие страницы интранета или веб-сайта вашей компании, используя HTML-тег script . Это самый быстрый способ представить ваше приложение пользователям.
  • Интеграция пользовательских API. Для полного контроля над пользовательским интерфейсом вы можете использовать REST API Vertex AI Search или клиентские библиотеки (например, Python, Node.js или Java) для создания пользовательского интерфейса с нуля.

11. Уборка

Чтобы избежать дальнейших списаний средств с вашего аккаунта Google Cloud, удалите ресурсы, созданные в ходе этого практического занятия:

  1. В консоли Cloud перейдите на страницу поиска Vertex AI .
  2. Нажмите « Посмотреть существующие приложения» .
  3. Чтобы открыть приложение cymbal-employee-portal , нажмите на три вертикальные точки, чтобы выбрать «Ещё» , а затем нажмите «Удалить» .
  4. Следуйте инструкциям на экране, чтобы подтвердить удаление.
  5. Чтобы удалить хранилища данных, нажмите «Хранилища данных» на левой панели навигации консоли.
  6. Удалите хранилища данных cymbal-hr , cymbal-finance и cymbal-inventory :
    1. Чтобы открыть хранилище данных cymbal-hr , нажмите на три вертикальные точки, чтобы выбрать «Дополнительно» , а затем нажмите «Удалить» .
    2. Следуйте инструкциям на экране, чтобы подтвердить удаление.
    3. Чтобы открыть хранилище данных cymbal-finance , нажмите на три вертикальные точки «Подробнее» , а затем нажмите «Удалить» .
    4. Следуйте инструкциям на экране, чтобы подтвердить удаление.
    5. Чтобы открыть хранилище данных cymbal-inventory , нажмите на три вертикальные точки «Дополнительно» , а затем нажмите «Удалить» .
    6. Следуйте инструкциям на экране, чтобы подтвердить удаление.
  7. Перейдите на страницу «Корзины» и удалите созданную вами корзину (например, cymbal-app-hr-12 ).
  8. Перейдите на страницу BigQuery и удалите набор данных cymbal_finance .

12. Поздравляем!

Миссия выполнена! Вы успешно создали единую систему корпоративного поиска с помощью Vertex AI Search.

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

Что вы узнали

  • Загрузка данных: Как загрузить неструктурированные документы из облачного хранилища и структурированные данные из BigQuery в Vertex AI Search.
  • Запросы к нескольким хранилищам данных . Как выполнить запрос к приложению поиска, использующему несколько хранилищ данных, чтобы получить единые ответы как из структурированных, так и из неструктурированных данных.
  • Настройка и персонализация . Как настроить модели генеративного ИИ для получения более точных, специализированных ответов.
  • Варианты развертывания . Различные способы интеграции этой функции логического мышления в реальные приложения с использованием готовых виджетов или пользовательских API.

Справочная документация