1. مقدمه
در این لبه کد، از مدل Gemini Pro برای انجام تجزیه و تحلیل احساسات در بررسی محصولات با ABAP SDK برای Google Cloud استفاده خواهید کرد. هنگامی که سیستم SAP شما روی یک نمونه ماشین مجازی کامپیوتری میزبانی میشود، مراحل تنظیم احراز هویت را برای دسترسی به Google Cloud Vertex AI API با استفاده از نشانهها طی میکنیم.
لیست خدمات مورد استفاده عبارتند از:
- موتور محاسباتی
- خدمات شبکه
- پوسته ابری
- Vertex AI
چیزی که خواهی ساخت
شما موارد زیر را انجام خواهید داد:
- ABAP SDK نصب شده در سیستم SAP را برای اتصال به Google API پیکربندی کنید.
- یک برنامه گزارش نمونه برای فراخوانی Gemini AI و انجام تجزیه و تحلیل احساسات در بررسی محصول ایجاد کنید.
2. الزامات
- یک مرورگر، مانند کروم یا فایرفاکس .
- یک پروژه Google Cloud با فعال کردن صورتحساب یا ایجاد یک حساب آزمایشی رایگان 90 روزه برای Google Cloud Platform.
- SAP GUI (ویندوز یا جاوا) در سیستم شما نصب شده است. اگر SAP GUI قبلاً روی سیستم شما نصب شده است، با استفاده از آدرس IP خارجی VM به عنوان IP سرور برنامه، به SAP متصل شوید. اگر در مک هستید، می توانید SAP GUI برای جاوا را نیز که در این لینک موجود است نصب کنید.
3. قبل از شروع
- در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید (به عنوان مثال:
abap-sdk-poc).
- مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورتحساب در پروژه آشنا شوید. اگر از حساب آزمایشی رایگان 90 روزه استفاده می کنید، از این مرحله رد شوید.
- شما از Cloud Shell ، یک محیط خط فرمان در حال اجرا در Google Cloud استفاده خواهید کرد. از Cloud Console، روی Activate Cloud Shell در گوشه سمت راست بالا کلیک کنید:
- مطمئن شوید که همه APIهای لازم (AM Service Account Credentials API، Vertex AI API) فعال هستند.
- دستورات زیر را برای احراز هویت برای حساب خود اجرا کنید و پروژه پیش فرض را روی
abap-sdk-poc
تنظیم کنید. Zoneus-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 نصب شده است دسترسی دارید.
- برای راه اندازی یک سیستم جدید می توانید به codelab " Install ABAP Platform Trial on Google Cloud Platform and Install 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 User دستور زیر را اجرا کنید.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/aiplatform.user
5. کلید مشتری را پیکربندی کنید
وارد سیستم SAP شوید. اگر از سیستم ارائه شده توسط Codelab " Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK " استفاده می کنید، از نام کاربری و رمز عبور پیش فرض ارائه شده برای ورود استفاده کنید.
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Basic Settings > Configure Client Key کلیک کنید.
- روی New Entries کلیک کنید.
- مقادیر فیلدهای زیر را وارد کنید:
میدان | توضیحات |
نام کلید Google Cloud | ABAP_SDK_DEMO |
نام حساب سرویس Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud Scope | https://www.googleapis.com/auth/cloud-platform |
شناسه پروژه Google Cloud | abap-sdk-poc |
کلاس مجوز | /GOOG/CL_AUTH_GOOGLE. |
فیلدهای دیگر را خالی بگذارید
6. مقصد RFC را ایجاد کنید
با استفاده از کد تراکنش SM59، مقصد RFC را برای اعتبار IAM و Vertex AI API ایجاد کنید. در صورت نیاز، لطفاً برای مراحل دقیق ایجاد یک مقصد RFC به اینجا مراجعه کنید.
نام مقصد RFC | میزبان هدف (نقطه پایانی API) | یادداشت ها |
ZGOOG_IAMCREDENTIALS |
| این مقصد RFC IAM API را هدف قرار می دهد. |
ZGOOG_VERTEX_AI |
| این مقصد RFC Vertex AI API us-central1 endpoint را هدف قرار می دهد. |
- در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_IAMCREDENTIALS وارد کنید.
- در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_VERTEX_AI وارد کنید.
- برای قسمت گواهی SSL ، مطمئن شوید که گزینه DEFAULT SSL Client (Standard) برای هر دو مقصد RFC انتخاب شده است.
7. نقشه سرویس را پیکربندی کنید
برای پیکربندی جدول نگاشت سرویس برای IAM API و Vertex AI API، مراحل زیر را انجام دهید:
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Basic Settings > Configure Service Mapping کلیک کنید.
- روی New Entries برای IAM Credential و Vertex AI API کلیک کنید و مقصدهای RFC را مطابق شکل زیر به روز کنید.
8. اعتبارسنجی پیکربندی
برای تأیید اعتبار پیکربندی احراز هویت، مراحل زیر را انجام دهید:
- در SAP GUI، کد تراکنش SPRO را وارد کنید.
- روی SAP Reference IMG کلیک کنید.
- روی ABAP SDK برای Google Cloud > Utilities > Validate Authentication Configuration کلیک کنید.
- نام کلید مشتری را به عنوان
ABAP_SDK_DEMO
وارد کنید. - برای بررسی اینکه آیا جریان کلی با موفقیت پیکربندی شده است، روی Execute کلیک کنید.
- علامت سبز رنگ در ستون Result نشان می دهد که تمام مراحل پیکربندی با موفقیت انجام شده است.
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 انتخاب کنید.
- یک Text Prompt جدید ایجاد کنید.
- انتخاب مدل جمینی پرو را تایید کنید.
- در ویرایشگر، دستور زیر را وارد کنید تا به مدل دستور دهید احساسات مشتری را در بررسی محصول تجزیه و تحلیل کند.
- برای ایجاد پاسخ از مدل، روی ارسال کلیک کنید.
اعلان :
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 ایجاد کنید.
- در پاپ آپی که باز می شود، جزئیات را مانند شکل زیر ارائه کنید و روی ذخیره کلیک کنید.
- در پاپ آپ بعدی یا Local Object را انتخاب کنید یا یک نام بسته را در صورت لزوم وارد کنید.
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 با ABAP SDK برای Google Cloud ایجاد کرده اید.
13. پاکسازی کنید
اگر نمیخواهید با کدهای اضافی مرتبط با ABAP SDK برای Google Cloud ادامه دهید، لطفاً به پاکسازی ادامه دهید.
پروژه را حذف کنید
- پروژه Google Cloud را حذف کنید:
gcloud projects delete abap-sdk-poc
منابع فردی را حذف کنید
- با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی کلید مشتری را حذف کنید.
- با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی Service Mapping را حذف کنید.
- مقصدهای RFC ZGOOG_IAMCREDENTIALS و ZGOOG_VERTEX_AI را حذف کنید.
- برنامه گزارش
ZSENTIMENT_ANALYSIS
را حذف کنید.
- حساب سرویس را حذف کنید.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com