تجزیه و تحلیل احساسات با استفاده از هوش مصنوعی Gemini با ABAP SDK

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 در گوشه سمت راست بالا کلیک کنید:
  • 6757b2fb50ddcc2d.png
  • مطمئن شوید که همه APIهای لازم (AM Service Account Credentials API، Vertex AI API) فعال هستند.
  • دستورات زیر را برای احراز هویت برای حساب خود اجرا کنید و پروژه پیش فرض را روی abap-sdk-poc تنظیم کنید. Zone 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 نصب شده است دسترسی دارید.
  • برای راه اندازی یک سیستم جدید می توانید به codelab " Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK " مراجعه کنید.

4. یک حساب کاربری ایجاد کنید و نقش کاربر Vertex AI را تنظیم کنید

  1. دستور زیر را برای ایجاد یک حساب کاربری (اگر قبلاً ایجاد نشده است) اجرا کنید.
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. برای تنظیم نقش 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 " استفاده می کنید، از نام کاربری و رمز عبور پیش فرض ارائه شده برای ورود استفاده کنید.

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Basic Settings > Configure Client Key کلیک کنید.
  4. روی New Entries کلیک کنید.
  5. مقادیر فیلدهای زیر را وارد کنید:

میدان

توضیحات

نام کلید 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.

فیلدهای دیگر را خالی بگذارید

c72e71da6fd75b29.png

6. مقصد RFC را ایجاد کنید

با استفاده از کد تراکنش SM59، مقصد RFC را برای اعتبار IAM و Vertex AI API ایجاد کنید. در صورت نیاز، لطفاً برای مراحل دقیق ایجاد یک مقصد RFC به اینجا مراجعه کنید.

نام مقصد RFC

میزبان هدف (نقطه پایانی API)

یادداشت ها

ZGOOG_IAMCREDENTIALS

  • میزبان : iamcredentials.googleapis.com
  • مسیر : پیشوند: /v1/
  • بندر : 443
  • SSL : فعال

این مقصد RFC IAM API را هدف قرار می دهد.

ZGOOG_VERTEX_AI

  • میزبان : us-central1-aiplatform.googleapis.com
  • بندر : 443
  • SSL : ACTIVE

این مقصد RFC Vertex AI API us-central1 endpoint را هدف قرار می دهد.

  • در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_IAMCREDENTIALS وارد کنید.

e670c6a91acba40f.png

  • در برگه تنظیمات فنی ، جزئیات زیر را برای مقصد ZGOOG_VERTEX_AI وارد کنید.

5c584aaed5c110f2.png

  • برای قسمت گواهی SSL ، مطمئن شوید که گزینه DEFAULT SSL Client (Standard) برای هر دو مقصد RFC انتخاب شده است.

b6370d12bd332318.png

7. نقشه سرویس را پیکربندی کنید

برای پیکربندی جدول نگاشت سرویس برای IAM API و Vertex AI API، مراحل زیر را انجام دهید:

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Basic Settings > Configure Service Mapping کلیک کنید.
  4. روی New Entries برای IAM Credential و Vertex AI API کلیک کنید و مقصدهای RFC را مطابق شکل زیر به روز کنید.

e7cc1429a4fe3a04.png

8. اعتبارسنجی پیکربندی

برای تأیید اعتبار پیکربندی احراز هویت، مراحل زیر را انجام دهید:

  1. در SAP GUI، کد تراکنش SPRO را وارد کنید.
  2. روی SAP Reference IMG کلیک کنید.
  3. روی ABAP SDK برای Google Cloud > Utilities > Validate Authentication Configuration کلیک کنید.
  4. نام کلید مشتری را به عنوان ABAP_SDK_DEMO وارد کنید.
  5. برای بررسی اینکه آیا جریان کلی با موفقیت پیکربندی شده است، روی Execute کلیک کنید.
  6. علامت سبز رنگ در ستون Result نشان می دهد که تمام مراحل پیکربندی با موفقیت انجام شده است.

d7285e64e22c25b6.png

9. داده های بررسی محصول را مطالعه کنید

آزمایشی پلتفرم ABAP با SAP Enterprise Procurement Model (EPM) از پیش نصب شده است، یک برنامه کاربردی سرتاسر که توسط SAP برای اهداف نمایشی و آزمایشی ارائه شده است. نظرات محصول که برای تجزیه و تحلیل احساسات استفاده می شود در جدول SNWD_REV_ITEM ذخیره می شود.

می توانید داده های جدول را با استفاده از Tcode: SE16 مشاهده کنید. ما از متن نمونه فیلد "RATING_TEXT" استفاده خواهیم کرد.

2bae72d437ea639.png

همچنین می‌توانید داده‌ها را با دسترسی به برنامه «مدیر محصولات» از صفحه راه‌انداز Fiori (TCode: /UI2/FLP) مشاهده کنید.

f9792a91ef9f0736.png

تصویر زیر لیست محصولات را نشان می دهد.

f822f9ab71d37a9.png

برای مشاهده رتبه بندی محصول و بررسی نمونه، روی محصول کلیک کنید.

69fe380d5ca7b276.png

در بخش بعدی، از این نمونه بررسی های محصول برای تجزیه و تحلیل احساسات با استفاده از Google LLM استفاده خواهیم کرد.

10. احساسات را با استفاده از Vertex AI Studio تجزیه و تحلیل کنید

  1. داشبورد Vertex AI را باز کنید، زبان را در استودیوی Vertex AI انتخاب کنید.
  2. یک Text Prompt جدید ایجاد کنید.

8ce4c928c75174d7.png

  1. انتخاب مدل جمینی پرو را تایید کنید.
  2. در ویرایشگر، دستور زیر را وارد کنید تا به مدل دستور دهید احساسات مشتری را در بررسی محصول تجزیه و تحلیل کند.
  3. برای ایجاد پاسخ از مدل، روی ارسال کلیک کنید.

اعلان :

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.

fd245c204144484.png

داده های بازبینی جدول "SNWD_REV_ITEM" را می توان برای آزمایش مدل با درخواست های اضافی استفاده کرد.

11. یک برنامه گزارش برای فراخوانی مدل Gemini Pro ایجاد کنید

در این مرحله، مدل Gemini Pro را از ABAP فراخوانی می کنیم تا تجزیه و تحلیل احساسات بررسی های محصول را انجام دهیم. برای اهداف نمایشی، برنامه حداکثر 10 بررسی محصول را انتخاب می کند و از ABAP SDK برای فراخوانی مدل Gemini Pro برای تعیین احساسات در هر بررسی استفاده می کند. بر اساس تجزیه و تحلیل خود، مدل می تواند مقادیری مانند "مثبت"، "منفی"، "خنثی" یا "مخلوط" را برگرداند.

  1. وارد سیستم SAP خود شوید.
  2. به کد تراکنش SE38 بروید و یک برنامه گزارش با نام ZSENTIMENT_ANALYSIS ایجاد کنید.
  3. در پاپ آپی که باز می شود، جزئیات را مانند شکل زیر ارائه کنید و روی ذخیره کلیک کنید.

a2158523ec8ef3c7.png

  1. در پاپ آپ بعدی یا 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.

  1. برای مشاهده تحلیل احساسات متن بازبینی، برنامه را اجرا کنید.

4d869f1b8436b9ca.png

12. تبریک می گویم

تبریک می گویم! شما با موفقیت یک برنامه نمونه برای انجام تجزیه و تحلیل احساسات با استفاده از هوش مصنوعی Gemini Pro با ABAP SDK برای Google Cloud ایجاد کرده اید.

13. پاکسازی کنید

اگر نمی‌خواهید با کدهای اضافی مرتبط با ABAP SDK برای Google Cloud ادامه دهید، لطفاً به پاکسازی ادامه دهید.

پروژه را حذف کنید

  • پروژه Google Cloud را حذف کنید:
gcloud projects delete abap-sdk-poc

منابع فردی را حذف کنید

  1. با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی کلید مشتری را حذف کنید.
  2. با رفتن به IMG > Google Cloud > Basic Settings > Configure Client Key، ورودی های پیکربندی Service Mapping را حذف کنید.
  3. مقصدهای RFC ZGOOG_IAMCREDENTIALS و ZGOOG_VERTEX_AI را حذف کنید.
  4. برنامه گزارش ZSENTIMENT_ANALYSIS را حذف کنید .
  5. حساب سرویس را حذف کنید.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com