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. Требования
3. Прежде чем начать
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
- Убедитесь, что все необходимые API (API облачного хранилища, API Vertex AI, API облачных функций и облачное логирование) включены.
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. Для получения информации о командах gcloud и их использовании обратитесь к документации .
- В консоли Cloud Console нажмите кнопку «Активировать Cloud Shell» в правом верхнем углу:

Если ваш проект не задан, используйте следующую команду для его настройки:
gcloud config set project <YOUR_PROJECT_ID>
- Убедитесь, что все необходимые API включены, выполнив следующую команду в терминале Cloud Shell:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- Создайте переменные среды для 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 файла:
- Файл main.py на Python определяет простую HTTP-функцию Cloud Function, которая использует модель генерации текста Vertex AI для создания кратких резюме на основе входных текстовых данных. Функция принимает текст в качестве параметра и возвращает краткое резюме. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. HTTP-функция Cloud Function принимает объект запроса и возвращает резюме модели в качестве ответа.
- В файле requirements.txt указаны зависимости пакетов:
- functions-framework==3. : Гарантирует, что функция использует новейшие возможности и исправления ошибок Functions Framework.
- google-cloud-aiplatform : Необходим для использования модели генерации текста Vertex AI.
- google-cloud-storage: Необходим для создания сегментов хранилища в Google Cloud Storage.
- google-cloud-logging : Необходим для генерации логов.
5. Разверните функцию
- Создайте два сегмента 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
- На данном этапе мы готовы развернуть функцию. Но перед этим убедитесь, что у учетной записи службы в хранилище Cloud Storage есть роль издателя (Pub/Sub Publisher).
- Перейдите в Google Cloud Storage и в левой панели нажмите «Настройки».

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

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

- Разверните этот источник в Cloud Functions. Выполните следующую команду в терминале облачной оболочки:
- Убедитесь, что вы находитесь в папке summarization-gcs-cloudfunction в этом проекте.
- Выполните следующую команду:
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
- В консоли Google Cloud перейдите в раздел Cloud Functions ::
Здесь будет отображен список созданных нами облачных функций vertex-ai-function с их публичным URL-адресом. Мы будем использовать эту функцию для создания триггера GCS.
6. Вызовите функцию
Когда файл загружается в корзину $BUCKET_NAME *, триггер GCS вызывает функцию. Корзина $BUCKET_NAME"-summaries включает в себя файл с кратким описанием, имеющий то же имя.
Прежде чем начать, сохраните файл sample story.md из папки summarization-gcs-cloudfunction на свой локальный компьютер.
- В консоли Google Cloud перейдите в раздел «Облачное хранилище».
- Откройте свой бакет
$BUCKET_NAMEиз списка бакетов. - Нажмите «Загрузить файлы» и выберите файл story.md .
Запускается функция summarizeArticles , которая начинает суммировать содержимое файла.
- В левой панели навигации нажмите «Корзины».
- Откройте свой бакет
$BUCKET_NAME"-summaries.
Файл story.md содержит краткое описание содержимого файла.
7. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этой статье, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
- В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить».
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить», чтобы удалить проект.
- Если вы хотите сохранить проект и удалить только некоторые ресурсы, перейдите в консоль Cloud Storage, нажмите «Корзины» и из списка отметьте корзины, которые хотите удалить, затем нажмите «УДАЛИТЬ».
- Вы также можете удалить облачную функцию, перейдя в раздел «Облачные функции», выбрав в списке функций ту, которую хотите удалить, и нажав кнопку «УДАЛИТЬ».
8. Поздравляем!
Поздравляем! Вы успешно использовали Vertex AI Text Generation LLM программным способом для выполнения суммаризации текста на ваших данных. Для получения дополнительной информации о доступных моделях ознакомьтесь с документацией по продукту Vertex AI LLM .