1. Введение
В этом практическом руководстве я описал шаги по созданию веб-приложения, позволяющего выполнять суммаризацию текста с использованием API Vertex AI Large Language Model for text generation ( text-bison ) в фреймворке Svelte Kit. Список используемых сервисов и технологического стека:
- Svelte Kit: фреймворк для веб-приложений, созданный на основе Svelte.
- API Vertex AI PaLM 2: API для больших языковых моделей (LLM), предоставляющий доступ к модели PaLM 2 от Google AI.
- Облачные функции: бессерверная платформа для запуска функций без необходимости управления серверами.
- Cloud Run: бессерверная платформа для запуска контейнерных приложений.
Что вы построите
Вы создадите
- Для вызова API Palm используется облачная функция Python.
- Веб-приложение на Svelte, предназначенное для пользовательского интерфейса взаимодействия с API Vertex AI через облачные функции.
- Сервис Cloud Run для бессерверного развертывания созданного выше приложения.
2. Требования
3. Прежде чем начать
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта.
- Для взаимодействия со сервисами Google Cloud вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. Подробную информацию о командах gcloud и их использовании см. в документации . В консоли Cloud Console нажмите кнопку «Активировать Cloud Shell» в правом верхнем углу.

Если ваш проект не задан, используйте следующую команду для его установки:
gcloud config set project <YOUR_PROJECT_ID>
- Убедитесь, что все необходимые API включены, выполнив следующую команду в терминале Cloud Shell:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Создайте переменные среды для REGION и PROJECT_ID, выполнив следующую команду в терминале Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=asia-south1
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 2 для работы с текстом идеально подходит для задач, которые можно выполнить одним ответом API, без необходимости в постоянном общении. Давайте теперь создадим для этого облачную функцию.
Создайте новую директорию с помощью Cloud Shell и перейдите в неё (используйте тот же терминал, который был открыт в предыдущем разделе):
mkdir vertex-ai-functions
cd vertex-ai-functions
Создайте файл main.py для написания облачных функций на Python и файл requirements.txt для хранения зависимостей.
touch main.py requirements.txt
Этот файл Python определяет простую HTTP-функцию Cloud Function, которая использует модель генерации текста Vertex AI для создания кратких резюме на основе входных текстовых данных. Функция принимает текст в качестве параметра и возвращает краткое резюме. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. HTTP-функция Cloud Function принимает объект запроса и возвращает резюме модели в качестве ответа.
Откройте редактор Google Cloud. Для этого откройте новую вкладку консоли Google Cloud, нажмите кнопку «АКТИВИРОВАТЬ CLOUD SHELL», а после загрузки терминала быстро нажмите кнопку «ОТКРЫТЬ РЕДАКТОР», как показано на изображении ниже:

После открытия редактора вы увидите файл main.py. Замените его содержимое кодом из этого репозитория (ссылка) . Пояснения к коду приведены в комментариях. Вкратце, этот код предоставляет краткий способ генерации кратких резюме текстовых данных с помощью Vertex AI.
В файле requirements.txt указаны зависимости пакетов: functions-framework==3.*: Гарантирует, что функция использует последние возможности и исправления ошибок Functions Framework. google-cloud-aiplatform: Требуется для использования модели генерации текста Vertex AI.
Добавьте это в файл requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Развертывание в облачных функциях
Теперь давайте развернем этот исходный код в Cloud Functions. Выполните следующую команду в терминале облачной оболочки:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
Воспользуйтесь строкой поиска и перейдите в консоль Cloud Functions:

Здесь будет указана созданная нами облачная функция vertex-ai-function, а её публичный URL-адрес будет указан на странице функции. Мы используем её для подключения нашего фронтенда к API Vertex AI. Сохраните этот URL-адрес. Возможно, вам также потребуется разрешить доступ к базовой службе Cloud Run без аутентификации. Использование аутентифицированной службы рекомендуется в целях безопасности.
5. Создайте и разверните интерфейсную часть.
Это приложение поставляется с пользовательским интерфейсом для взаимодействия с нашим API Vertex AI через Google Cloud Functions. Давайте создадим его прямо сейчас.
Клонируйте репозиторий и настройте Dockerfile.
Перейдите в корневой каталог и клонируйте репозиторий Git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Для запуска этого приложения необходимо добавить переменную среды PUBLIC_FUNCTION_URL в Dockerfile. Этот URL-адрес — это URL-адрес облачной функции, созданный и сохраненный в предыдущем разделе.
Откройте Cloud Editor и отредактируйте содержимое файла Dockerfile. Замените переменную PUBLIC_FUNCTION_URL на URL вашей облачной функции.

Развертывание фронтенда в облаке.
Для создания и хранения образов Docker мы будем использовать Google Artifact Registry. Для развертывания контейнеров в бессерверной архитектуре используется Cloud Run.
Создайте репозиторий Artifact Registry, выполнив следующую команду в терминале Cloud Shell:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Создайте переменную среды для URL-адреса репозитория реестра артефактов.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Создайте контейнер Docker и укажите в нем местоположение репозитория Artifact Registry. Указание имени репозитория в качестве тега образа Docker настраивает команду `docker push` для отправки образа в определенное место.
docker build . -t ${DOCKER_URL}
Загрузите изображение в Реестр артефактов.
docker push ${DOCKER_URL}
Разверните контейнер Docker в Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
Ура!! Vertex Summarizer запущен и работает. URL-адрес будет отображаться в Cloud Shell, так что изучайте и наслаждайтесь Vertex AI🤖.

6. Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этой статье, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» .
- В списке проектов выберите проект, который хотите удалить, и нажмите «Удалить».
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить», чтобы удалить проект.
- Если вы хотите сохранить проект и удалить только службу Cloud Run, выполните следующие действия .
- Если вы хотите просто удалить облачную функцию или отозвать доступ, вы можете сделать это здесь.
7. Поздравляем!
Поздравляем! Вы успешно использовали API Vertex AI PaLM2 для программного выполнения суммаризации текста, создания веб-приложения Svelte и развертывания в Cloud Functions. Для получения дополнительной информации о доступных моделях ознакомьтесь с документацией по продукту Vertex AI LLM .