1. Введение
В этой кодовой лаборатории вы можете найти шаги по обобщению контента, загруженного в облачное хранилище Google, с использованием большой языковой модели Vertex AI для генерации текста ( text-bison ) в качестве облачной функции в Python. Список используемых услуг:
- Vertex AI PaLM API: API большой языковой модели (LLM), который обеспечивает доступ к модели Google AI PaLM Text Bison.
- Облачные функции: бессерверная платформа для выполнения функций без необходимости управления серверами.
- Облачное хранилище: управляемый сервис для хранения неструктурированных данных.
- Облачная регистрация: полностью управляемая служба, которая позволяет хранить, искать, анализировать, отслеживать и оповещать о данных регистрации.
Что ты построишь
Вы создадите приложение, развернутое как облачная функция Python для суммирования текста с помощью Palm API.
2. Требования
3. Прежде чем начать
- В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата в проекте .
- Убедитесь, что все необходимые API (API Cloud Storage, 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
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 файла:
- Файл Python main.py определяет простую облачную функцию HTTP, которая использует модель генерации текста Vertex AI для создания кратких сводок текстовых входных данных. Функция принимает текстовый ввод в качестве параметра и возвращает краткую сводку введенных данных. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. Облачная функция HTTP принимает объект запроса и возвращает сводку модели в качестве ответа.
- В файле require.txt есть зависимости пакетов:
- функции-фреймворк == 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, которое позволяет получить доступ к Cloud Storage из командной строки. Вы можете использовать gsutil для выполнения широкого спектра задач по управлению сегментами и объектами.
- mb означает «Сделать ведро»
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- На этом этапе мы готовы развернуть функцию. Но перед этим убедитесь, что сервисная учетная запись Cloud Storage Bucket имеет роль Pub/Sub Publisher.
- Перейдите в Google Cloud Storage и на левой панели нажмите «Настройки».
- Скопируйте «Сервисную учетную запись» из настроек и запишите ее.
- Откройте IAM и администратор из меню навигации консоли Google Cloud.
- На вкладке «Разрешения» нажмите «Предоставить доступ», введите записанный вами идентификатор учетной записи службы в разделе «Новые участники», выберите «Роль» как «Издатель Pub/Sub» и нажмите «СОХРАНИТЬ».
- Разверните этот источник в Cloud Functions. Запустите следующую команду из облачного терминала Shell:
- Убедитесь, что вы находитесь в папке 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 перейдите в раздел «Облачные функции ::».
Здесь будет указана только что созданная облачная функция vertex-ai-function с ее общедоступным URL-адресом. Мы будем использовать эту функцию для создания триггера GCS.
6. Вызов функции
Когда файл загружается в корзину $BUCKET_NAME *, триггер GCS вызывает функцию. Корзина $BUCKET_NAME"-summaries
включает итоговый файл с тем же именем.
Прежде чем начать, сохраните образец файла Story.md из папки summarization-gcs-cloudfunction на свой локальный компьютер.
- В консоли Google Cloud перейдите в Cloud Storage.
- Откройте корзину
$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 , чтобы узнать больше о доступных моделях.