О практической работе
1. Введение
В этой лабораторной работе вы будете использовать модель Gemini Pro для анализа тональности отзывов о продуктах с помощью ABAP SDK для Google Cloud. Мы рассмотрим, как настроить аутентификацию для доступа к API Google Cloud Vertex AI с помощью токенов, когда ваша система SAP размещена на экземпляре виртуальной машины Compute Engine.
Список использованных услуг:
- Вычислительный движок
- Сетевые службы
- Cloud Shell
- Вершинный ИИ
Что вы построите
Вам предстоит выполнить следующее:
- Настройте ABAP SDK, установленный в системе SAP, для подключения к API Google.
- Создайте пример программы-отчета для вызова Gemini AI и проведения анализа настроений в отзывах о продуктах.
2. Требования
- Браузер, например Chrome или Firefox .
- Проект Google Cloud с включенным биллингом или создание 90-дневной бесплатной пробной учетной записи для Google Cloud Platform.
- SAP GUI (Windows или Java) установлен в вашей системе. Если SAP GUI уже установлен в вашей системе, подключитесь к SAP, используя внешний IP-адрес виртуальной машины в качестве IP-адреса сервера приложений. Если вы используете Mac, вы также можете установить SAP GUI для Java, доступный по этой ссылке.
3. Прежде чем начать
- В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud (например:
abap-sdk-poc).
- Убедитесь, что для вашего облачного проекта включена оплата. Узнайте, как проверить, включена ли оплата для проекта . Пропустите этот шаг, если вы используете 90-дневную бесплатную пробную версию .
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud. В консоли Cloud Console нажмите «Активировать Cloud Shell» в правом верхнем углу:
- Убедитесь, что все необходимые API (API учетных данных службы AM, API Vertex AI) включены .
- Выполните следующие команды для аутентификации вашей учётной записи и установите проект по умолчанию
abap-sdk-poc
. Зонаus-west4-b
используется в качестве примера. При необходимости измените проект и зону в следующих командах по своему усмотрению.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b
- Убедитесь, что у вас есть доступ к системе SAP с установленным ABAP SDK для Google Cloud и данными SAP EPM.
- Для настройки новой системы вы можете обратиться к практическому занятию « Установка пробной версии платформы ABAP на Google Cloud Platform и установка ABAP SDK ».
4. Создайте учетную запись службы и настройте роль пользователя Vertex AI.
- Выполните следующую команду, чтобы создать учетную запись службы (если она еще не создана).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Выполните следующую команду, чтобы установить роль пользователя Vertex AI .
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/aiplatform.user
5. Настроить клиентский ключ
Войдите в систему SAP. Если вы используете систему, предоставленную в рамках практического занятия « Установка пробной версии ABAP Platform на Google Cloud Platform и установка ABAP SDK », используйте для входа имя пользователя и пароль, предоставленные по умолчанию.
- В графическом интерфейсе SAP введите код транзакции SPRO .
- Нажмите ссылку SAP IMG .
- Нажмите ABAP SDK для Google Cloud > Основные настройки > Настроить ключ клиента .
- Нажмите «Новые записи» .
- Введите значения для следующих полей:
Поле | Описание |
Имя ключа Google Cloud | ABAP_SDK_DEMO |
Имя учетной записи облачной службы Google | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Область применения Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Идентификатор проекта Google Cloud | abap-sdk-poc |
Класс авторизации | /GOOG/CL_AUTH_GOOGLE. |
Оставьте остальные поля пустыми.
6. Создать RFC-адрес назначения
Создайте RFC-адрес для учётных данных IAM и API Vertex AI, используя код транзакции SM59. При необходимости ознакомьтесь с подробными инструкциями по созданию RFC-адреса здесь .
Имя назначения RFC | Целевой хост (конечная точка API) | Примечания |
ZGOOG_IAMCREDENTIALS |
| Этот RFC-адрес предназначен для API IAM. |
ZGOOG_VERTEX_AI |
| Этот RFC-адрес предназначен для конечной точки API Vertex AI us-central1. |
- На вкладке Технические настройки введите следующие данные для назначения ZGOOG_IAMCREDENTIALS.
- На вкладке Технические настройки введите следующие данные для назначения ZGOOG_VERTEX_AI.
- В поле Сертификат SSL убедитесь, что для обоих назначений RFC выбран параметр Клиент SSL по умолчанию (стандартный) .
7. Настроить сопоставление услуг
Чтобы настроить таблицу сопоставления служб для IAM API и Vertex AI API, выполните следующие действия:
- В графическом интерфейсе SAP введите код транзакции SPRO .
- Нажмите ссылку SAP IMG .
- Нажмите ABAP SDK для Google Cloud > Основные настройки > Настроить сопоставление служб .
- Нажмите «Новые записи» для учетных данных IAM и API Vertex AI и обновите назначения RFC, как показано ниже.
8. Проверить конфигурацию
Для проверки конфигурации аутентификации выполните следующие действия:
- В графическом интерфейсе SAP введите код транзакции SPRO .
- Нажмите ссылку SAP IMG .
- Нажмите ABAP SDK для Google Cloud > Утилиты > Проверить конфигурацию аутентификации .
- Введите имя ключа клиента как
ABAP_SDK_DEMO
. - Нажмите кнопку «Выполнить» , чтобы проверить, успешно ли настроен общий поток.
- Зеленая галочка в столбце «Результат» означает, что все этапы настройки выполнены успешно.
9. Изучите данные обзоров продуктов
Пробная версия платформы ABAP предустановлена вместе с SAP Enterprise Procurement Model (EPM) — комплексным приложением, предоставленным SAP для демонстрации и тестирования. Обзоры продуктов, которые будут использоваться для анализа настроений, хранятся в таблице SNWD_REV_ITEM.
Вы можете просмотреть данные таблицы, используя Tcode: SE16. Мы будем использовать пример текста из поля «RATING_TEXT».
При желании вы также можете просмотреть данные, открыв приложение «Менеджер продуктов» на панели запуска Fiori (TCode: /UI2/FLP).
На следующем снимке экрана показан список продуктов.
Щелкните по продукту, чтобы просмотреть рейтинг продукта и примеры отзывов.
В следующем разделе мы воспользуемся этими образцами обзоров продуктов для анализа настроений с помощью Google LLM.
10. Анализируйте настроения с помощью Vertex AI Studio
- Откройте панель инструментов Vertex AI , выберите «Язык» в разделе «Студия Vertex AI».
- Создайте новую текстовую подсказку.
- Подтвердите выбор модели Gemini Pro .
- В редакторе введите следующую подсказку, чтобы указать модели проанализировать настроения клиентов в обзоре продукта.
- Нажмите «Отправить» , чтобы сформировать ответ на основе модели.
Быстрый :
What's the Customer sentiment in the below product review
Horrible! Unsatisfied in every way! The description is wrong. I sent it back. I want my money back! It is so horrible that I can't even believe it! Too expensive for what I received. I'd expect a little more durability. No instructions included for use or installation. I'm actually really surprised by the positive reviews, which I relied on when ordering. Called customer service..no answer. Looks better than it works. The Worst I have ever seen! Honestly I have no clue what you had in mind when choosing to offer this product. Not sure if I should even post one star.... It broke after 1 day. Poor Quality. Didn't work, that is why I cannot recommend this product.
Обзорные данные из таблицы «SNWD_REV_ITEM» можно использовать для тестирования модели с дополнительными подсказками.
11. Создайте программу-отчет для вызова модели Gemini Pro
На этом этапе мы вызовем модель Gemini Pro из ABAP для анализа тональности отзывов о товарах. В демонстрационных целях программа выберет до 10 отзывов о товарах и с помощью ABAP SDK вызовет модель Gemini Pro для определения тональности каждого отзыва. На основе анализа модель может возвращать значения «Положительный», «Отрицательный», «Нейтральный» или «Смешанный».
- Войдите в свою систему SAP.
- Перейдите к коду транзакции SE38 и создайте программу отчета с именем ZSENTIMENT_ANALYSIS .
- В открывшемся всплывающем окне укажите данные, как показано ниже, и нажмите кнопку Сохранить .
- В следующем всплывающем окне выберите «Локальный объект» или укажите необходимое имя пакета.
REPORT zsentiment_analysis.
DATA lo_client TYPE REF TO /goog/cl_aiplatform_v1.
DATA lv_p_projects_id TYPE string.
DATA lv_p_locations_id TYPE string.
DATA lv_p_publishers_id TYPE string.
DATA lv_p_models_id TYPE string.
DATA ls_input TYPE /goog/cl_aiplatform_v1=>ty_726.
DATA ls_output TYPE /goog/cl_aiplatform_v1=>ty_727.
DATA lv_ret_code TYPE i.
DATA lv_err_text TYPE string.
DATA ls_err_resp TYPE /goog/err_resp.
DATA lv_msg TYPE string.
DATA lo_exception TYPE REF TO /goog/cx_sdk.
DATA es_raw TYPE string.
TYPES:
BEGIN OF t_reviews,
product_id TYPE snwd_product_id,
sentiment TYPE string,
rating_text TYPE snwd_rating_text,
END OF t_reviews.
DATA lt_reviews TYPE STANDARD TABLE OF t_reviews WITH DEFAULT KEY.
FIELD-SYMBOLS <fs_review> TYPE t_reviews.
TRY.
" Open HTTP Connection
lo_client = NEW #( iv_key_name = 'ABAP_SDK_DEMO' ).
" Populate relevant parameters
lv_p_projects_id = lo_client->gv_project_id.
lv_p_locations_id = 'us-central1'.
lv_p_publishers_id = 'google'.
lv_p_models_id = 'gemini-1.0-pro'.
SELECT a~product_id AS product_id c~rating_text
FROM ( ( snwd_pd AS a
INNER JOIN snwd_rev_head AS b ON a~node_key = b~entity_key )
INNER JOIN snwd_rev_item AS c ON b~node_key = c~parent_key )
INTO CORRESPONDING FIELDS OF TABLE lt_reviews UP TO 10 ROWS.
LOOP AT lt_reviews ASSIGNING <fs_review>.
" Construct the prompt
DATA(lv_prompt) = |DO NOT EXPLAIN and your response should not have more than one word.| &&
|Classify the overall sentiment of this product review as ONLY ONE of| &&
| the following: Positive, Negative, Neutral, or Mixed.| &&
cl_abap_char_utilities=>newline &&
<fs_review>-rating_text.
" Set the Model Parameters and Prompt
ls_input = VALUE #( generation_config = VALUE #( max_output_tokens = 10
temperature = '0.2'
top_p = '0.8'
top_k = '40' )
contents = VALUE #( ( role = 'user'
parts = VALUE #( ( text = lv_prompt ) ) ) ) ).
" Call Gemini Pro to identify sentiments.
lo_client->generate_content_models( EXPORTING iv_p_projects_id = lv_p_projects_id
iv_p_locations_id = lv_p_locations_id
iv_p_publishers_id = lv_p_publishers_id
iv_p_models_id = lv_p_models_id
is_input = ls_input
IMPORTING
es_output = ls_output
ev_ret_code = lv_ret_code
ev_err_text = lv_err_text
es_err_resp = ls_err_resp ).
IF lo_client->is_success( lv_ret_code ) = abap_true.
LOOP AT ls_output-candidates INTO DATA(ls_candidate).
LOOP AT ls_candidate-content-parts INTO DATA(ls_part).
<fs_review>-sentiment = ls_part-text.
EXIT.
ENDLOOP.
EXIT.
ENDLOOP.
ELSE.
MESSAGE lv_err_text TYPE 'E'.
ENDIF.
ENDLOOP.
cl_demo_output=>display( lt_reviews ).
" Close HTTP Connection
lo_client->close( ).
CATCH /goog/cx_sdk INTO lo_exception.
lv_msg = lo_exception->get_text( ).
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
- Запустите программу, чтобы увидеть анализ тональности текста отзыва.
12. Поздравления
Поздравляем! Вы успешно разработали пример программы для анализа тональности текста с использованием Gemini Pro AI и ABAP SDK для Google Cloud.
13. Уборка
Если вы не хотите продолжать работу с дополнительными практическими занятиями, связанными с ABAP SDK для Google Cloud, пожалуйста, продолжите очистку.
Удалить проект
- Удалить проект Google Cloud:
gcloud projects delete abap-sdk-poc
Удалить отдельные ресурсы
- Удалите записи конфигурации ключа клиента, перейдя в IMG > Google Cloud > Основные настройки > Настроить ключ клиента .
- Удалите записи конфигурации сопоставления услуг, перейдя в IMG > Google Cloud > Основные настройки > Настроить ключ клиента .
- Удалите RFC-назначения ZGOOG_IAMCREDENTIALS и ZGOOG_VERTEX_AI .
- Удалить программу-отчет
ZSENTIMENT_ANALYSIS
.
- Удалить учетную запись службы.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com