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

1. Введение

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

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

Что ты построишь

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

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

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

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

  1. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
  2. Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата в проекте .
  3. Убедитесь, что все необходимые API (API Cloud Storage, 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

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

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

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

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

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

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

В этой папке находятся 2 файла:

  1. Файл Python main.py определяет простую облачную функцию HTTP, которая использует модель генерации текста Vertex AI для создания кратких сводок текстовых входных данных. Функция принимает текстовый ввод в качестве параметра и возвращает краткую сводку введенных данных. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. Облачная функция HTTP принимает объект запроса и возвращает сводку модели в качестве ответа.
  2. В файле require.txt есть зависимости пакетов:
  • функции-фреймворк == 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, которое позволяет получить доступ к Cloud Storage из командной строки. Вы можете использовать gsutil для выполнения широкого спектра задач по управлению сегментами и объектами.
  • mb означает «Сделать ведро»
gsutil mb -l $REGION gs://"$BUCKET_NAME"

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

8ce34eb05153abf2.png

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

c5a7103e90689684.png

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

11c2df774fa740a9.png

  1. Разверните этот источник в Cloud Functions. Запустите следующую команду из облачного терминала Shell:
  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 перейдите в раздел «Облачные функции ::».

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

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

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

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

  1. В консоли Google Cloud перейдите в Cloud Storage.
  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 , чтобы узнать больше о доступных моделях.