Облачная функция для обобщения контента с использованием API PaLM Vertex AI и облачного хранилища Google.

1. Введение

В этом практическом задании вы найдете шаги по созданию аннотаций к контенту, загруженному в Google Cloud Storage, с использованием модели Vertex AI Large Language Model для генерации текста ( text-bison ) в качестве облачной функции на Python. Список используемых сервисов:

  • API Vertex AI PaLM: API для больших языковых моделей (LLM), предоставляющий доступ к модели PaLM Text Bison от Google AI.
  • Облачные функции: бессерверная платформа для запуска функций без необходимости управления серверами.
  • Облачное хранилище: управляемый сервис для хранения неструктурированных данных.
  • Облачное логирование: полностью управляемый сервис, позволяющий хранить, искать, анализировать, отслеживать и получать оповещения на основе данных логирования.

Что вы построите

Вам предстоит создать приложение, развернутое в виде облачной функции Python, для суммирования текста с использованием API Palm.

2. Требования

  • Браузер, например Chrome или Firefox.
  • Проект Google Cloud с включенной функцией выставления счетов.

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

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
  3. Убедитесь, что все необходимые API (API облачного хранилища, API Vertex AI, API облачных функций и облачное логирование) включены.
  4. Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. Для получения информации о командах gcloud и их использовании обратитесь к документации .
  5. В консоли Cloud Console нажмите кнопку «Активировать Cloud Shell» в правом верхнем углу:

51622c00acec2fa.png

Если ваш проект не задан, используйте следующую команду для его настройки:

gcloud config set project <YOUR_PROJECT_ID>
  1. Убедитесь, что все необходимые API включены, выполнив следующую команду в терминале Cloud Shell:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. Создайте переменные среды для REGION и PROJECT_ID, выполнив следующую команду в терминале Cloud Shell:
export PROJECT_ID=<your project id>

export REGION=us-central1

4. Облачная функция для вызова API Vertex AI

Мы создадим облачную функцию на Python и вызовем API Vertex AI в этой функции.

Создание новой учетной записи службы

Создайте новую учетную запись службы, выполнив следующую команду в терминале Cloud Shell.

gcloud iam service-accounts create vertex-service-acc

Чтобы предоставить доступ к вашему проекту и ресурсам, назначьте роль учетной записи службы.

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer

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

gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

Создание функции Python

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

Выполните следующие команды в Cloud Shell, чтобы клонировать репозиторий и перейти к проекту (используйте тот же терминал, который был открыт в предыдущем разделе):

git clone https://github.com/rominirani/genai-apptemplates-googlecloud

cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction

В рамках этого проекта нас интересует папка: summarization-gcs-cloudfunction.

Откройте редактор Cloud Shell из терминала и проверьте содержимое папки проекта, которая только что была клонирована с GitHub на вашу машину Cloud Shell.

Эта папка содержит 2 файла:

  1. Файл main.py на Python определяет простую HTTP-функцию Cloud Function, которая использует модель генерации текста Vertex AI для создания кратких резюме на основе входных текстовых данных. Функция принимает текст в качестве параметра и возвращает краткое резюме. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. HTTP-функция Cloud Function принимает объект запроса и возвращает резюме модели в качестве ответа.
  2. В файле requirements.txt указаны зависимости пакетов:
  • functions-framework==3. : Гарантирует, что функция использует новейшие возможности и исправления ошибок Functions Framework.
  • google-cloud-aiplatform : Необходим для использования модели генерации текста Vertex AI.
  • google-cloud-storage: Необходим для создания сегментов хранилища в Google Cloud Storage.
  • google-cloud-logging : Необходим для генерации логов.

5. Разверните функцию

  1. Создайте два сегмента Cloud Storage:
  • Первый сегмент: Сегмент $BUCKET_NAME будет использоваться для загрузки файлов в сводку. Создайте переменную среды для хранения имени вашего сегмента следующим образом:
export BUCKET_NAME='Your Bucket Name'
  • Второй сегмент: для хранения сводного файла будет использоваться сегмент $BUCKET_NAME-summaries .
  • Для создания корзин мы воспользуемся командой gsutil:
  • gsutil — это приложение на Python, позволяющее получать доступ к облачному хранилищу из командной строки. С помощью gsutil можно выполнять широкий спектр задач по управлению хранилищами и объектами.
  • mb расшифровывается как "Make Bucket" (Собери ведро).
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. На данном этапе мы готовы развернуть функцию. Но перед этим убедитесь, что у учетной записи службы в хранилище Cloud Storage есть роль издателя (Pub/Sub Publisher).
  2. Перейдите в Google Cloud Storage и в левой панели нажмите «Настройки».

8ce34eb05153abf2.png

  1. Скопируйте "Учетную запись службы" из настроек и запишите ее.
  2. Откройте раздел IAM и администрирование в меню навигации консоли Google Cloud.

c5a7103e90689684.png

  1. На вкладке «Разрешения» нажмите «ПРЕДОСТАВИТЬ ДОСТУП» и в разделе «Новые субъекты» введите записанный вами идентификатор учетной записи службы, выберите роль «Издатель/Подписчик» и нажмите «СОХРАНИТЬ».

11c2df774fa740a9.png

  1. Разверните этот источник в Cloud Functions. Выполните следующую команду в терминале облачной оболочки:
  2. Убедитесь, что вы находитесь в папке summarization-gcs-cloudfunction в этом проекте.
  3. Выполните следующую команду:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
  1. В консоли Google Cloud перейдите в раздел Cloud Functions ::

Здесь будет отображен список созданных нами облачных функций vertex-ai-function с их публичным URL-адресом. Мы будем использовать эту функцию для создания триггера GCS.

6. Вызовите функцию

Когда файл загружается в корзину $BUCKET_NAME *, триггер GCS вызывает функцию. Корзина $BUCKET_NAME"-summaries включает в себя файл с кратким описанием, имеющий то же имя.

Прежде чем начать, сохраните файл sample story.md из папки summarization-gcs-cloudfunction на свой локальный компьютер.

  1. В консоли Google Cloud перейдите в раздел «Облачное хранилище».
  2. Откройте свой бакет $BUCKET_NAME из списка бакетов.
  3. Нажмите «Загрузить файлы» и выберите файл story.md .

Запускается функция summarizeArticles , которая начинает суммировать содержимое файла.

  1. В левой панели навигации нажмите «Корзины».
  2. Откройте свой бакет $BUCKET_NAME"-summaries .

Файл story.md содержит краткое описание содержимого файла.

7. Уборка

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

  1. В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
  2. В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить».
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить», чтобы удалить проект.
  4. Если вы хотите сохранить проект и удалить только некоторые ресурсы, перейдите в консоль Cloud Storage, нажмите «Корзины» и из списка отметьте корзины, которые хотите удалить, затем нажмите «УДАЛИТЬ».
  5. Вы также можете удалить облачную функцию, перейдя в раздел «Облачные функции», выбрав в списке функций ту, которую хотите удалить, и нажав кнопку «УДАЛИТЬ».

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

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