Приложение Text Summarizer с Vertex AI и Svelte Kit

1. Введение

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

  1. Svelte Kit: платформа веб-приложений, основанная на Svelte.
  2. API Vertex AI PaLM 2: API большой языковой модели (LLM), который обеспечивает доступ к модели Google AI PaLM 2.
  3. Облачные функции: бессерверная платформа для выполнения функций без необходимости управления серверами.
  4. Cloud Run: бессерверная платформа для запуска контейнерных приложений.

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

Вы создадите

  • Облачная функция Python используется для вызова API Palm.
  • Веб-приложение Svelte для пользовательского интерфейса для взаимодействия с API Vertex AI через облачную функцию.
  • Служба Cloud Run для бессерверного развертывания приложения, созданного выше.

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

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

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

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

51622c00acec2fa.png

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

gcloud config set project <YOUR_PROJECT_ID>
  1. Убедитесь, что все необходимые API включены, выполнив следующую команду в терминале Cloud Shell:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. Создайте переменные среды для 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.

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

mkdir vertex-ai-functions

cd vertex-ai-functions

Создайте файл main.py для написания облачной функции Python и файл require.txt для хранения зависимостей.

touch main.py requirements.txt

Этот файл Python определяет простую облачную функцию HTTP, которая использует модель генерации текста Vertex AI для создания кратких сводок текстовых входных данных. Функция принимает текстовый ввод в качестве параметра и возвращает краткую сводку введенного текста. Функция использует различные параметры для управления процессом генерации, такие как креативность, разнообразие и беглость сгенерированного текста. Облачная функция HTTP принимает объект запроса и возвращает сводку модели в качестве ответа.

Откройте облачный редактор Google. Вы можете открыть его, открыв новую вкладку консоли Google Cloud и нажав кнопку АКТИВИРОВАТЬ ОБЛАЧНУЮ Оболочку, а когда терминал загрузится, быстро нажмите кнопку ОТКРЫТЬ РЕДАКТОР, как показано на изображении ниже:

8e501bd2c41d11b8.png

Как только редактор откроется, вы сможете увидеть файл main.py. Замените его содержимое кодом из этой ссылки на репозиторий. Объяснение кода включено в виде комментариев к коду. Таким образом, этот код обеспечивает краткий способ создания кратких сводок текстовых вводов с использованием Vertex AI.

В файле require.txt есть зависимости пакета: function-framework==3.*: гарантирует, что функция использует новейшие функции и исправления ошибок Functions Framework. google-cloud-aiplatform: требуется для использования модели генерации текста Vertex AI.

Добавьте это в файл require.txt:

functions-framework==3.*
google-cloud-aiplatform

Развертывание в облачных функциях

Теперь давайте развернем этот источник в Cloud Functions. Запустите следующую команду из облачного терминала Shell:

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:

43a6b247098a9edb.png

Здесь будет указана только что созданная облачная функция vertex-ai-function, ее общедоступный URL-адрес будет указан на странице функции. Мы используем это для подключения нашего Frontend и Vertex AI API. Сохраните этот URL. Возможно, вам также придется разрешить базовому сервису Cloud Run доступ без проверки подлинности. Использование службы аутентификации рекомендуется в целях безопасности.

5. Создайте и разверните интерфейсную часть

Это приложение имеет внешний интерфейс для взаимодействия с нашим Vertex AI API через функции Google Cloud. Давайте создадим его сейчас.

Клонирование репозитория и настройка 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-адресом вашей облачной функции.

2958bb12343368a9.png

Развертывание внешнего интерфейса в Cloud Run

Мы будем использовать реестр артефактов Google для создания и хранения наших образов Docker. Cloud Run используется для развертывания контейнеров в бессерверной архитектуре.

Создайте репозиторий реестра артефактов, выполнив приведенную ниже команду в терминале 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-контейнер и пометьте его местоположением репозитория реестра артефактов. Пометка образа 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🤖.

cd94442961bb5308.gif

6. Очистка

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

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

7. Поздравления

Поздравляем! Вы успешно использовали API-интерфейс Vertex AI PaLM2 для программного суммирования текста, создания веб-приложения Svelte и его развертывания в облачных функциях. Ознакомьтесь с документацией по продукту Vertex AI LLM , чтобы узнать больше о доступных моделях.