تحليل الآراء باستخدام Gemini AI مع حزمة ABAP SDK

تحليل المشاعر باستخدام تكنولوجيات الذكاء الاصطناعي في Gemini مع حزمة تطوير البرامج (SDK) لـ ABAP

لمحة عن هذا الدرس التطبيقي حول الترميز

subjectتاريخ التعديل الأخير: سبتمبر 4, 2024
account_circleتأليف: Ameya Suvarna

1. مقدمة

في هذا الدليل التعليمي حول رموز البرامج، ستستخدم نموذج Gemini Pro لإجراء تحليل للمشاعر في مراجعات المنتجات باستخدام حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud. سنطّلع على خطوات إعداد المصادقة للوصول إلى Google Cloud Vertex AI API باستخدام الرموز المميّزة عندما يكون نظام SAP مستضافًا على نسخة افتراضية من Compute Engine.

في ما يلي قائمة الخدمات المستخدَمة:

  • Compute Engine
  • خدمات الشبكة
  • Cloud Shell
  • Vertex AI

ما ستُنشئه

عليك تنفيذ ما يلي:

  • عليك ضبط حزمة تطوير البرامج (SDK) ABAP المثبَّتة على نظام SAP للربط بـ Google APIs.
  • أنشئ مثالاً لبرنامج تقارير للاتصال بتكنولوجيات الذكاء الاصطناعي في Gemini وإجراء تحليل للمشاعر في مراجعات المنتجات.

2. المتطلبات

  • متصفّح، مثل Chrome أو Firefox
  • مشروع على Google Cloud تم تفعيل الفوترة فيه أو إنشاء حساب في فترة تجريبية مجانية لمدة 90 يومًا على Google Cloud Platform
  • يجب تثبيت SAP GUI (Windows أو Java) في نظامك. إذا سبق تثبيت SAP GUI على نظامك، يمكنك الاتصال بخدمة SAP باستخدام عنوان IP الخارجي لوحدة VM كعنوان IP لخادم التطبيقات. إذا كنت تستخدم جهاز Mac، يمكنك أيضًا تثبيت SAP GUI for Java المتاح في هذا الرابط.

3. قبل البدء

  • في Google Cloud Console، في صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشِئه (على سبيل المثال: abap-sdk-poc).
  • تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع. يمكنك تخطّي هذه الخطوة إذا كنت تستخدم حساب الفترة التجريبية المجانية لمدة 90 يومًا.
  • ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud. من Cloud Console، انقر على تفعيل Cloud Shell في أعلى يسار الصفحة:
  • 6757b2fb50ddcc2d.png
  • تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (AM Service Account Credentials API وVertex AI API).
  • شغِّل الأوامر التالية لمصادقة حسابك وضبط المشروع التلقائي على 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

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.
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 (تثبيت إصدار تجريبي من ABAP Platform على Google Cloud Platform وتثبيت حِزمة تطوير البرامج ABAP SDK)، استخدِم اسم المستخدم وكلمة المرور التلقائيَين المقدَّمَين لتسجيل الدخول.

  1. في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على ABAP SDK for Google Cloud ‏ > الإعدادات الأساسية > ضبط مفتاح العميل.
  4. انقر على إدخالات جديدة.
  5. أدخِل قيمًا للحقول التالية:

الحقل

الوصف

اسم مفتاح Google Cloud

ABAP_SDK_DEMO

اسم حساب الخدمة في Google Cloud

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.

اترك الحقول الأخرى فارغة

c72e71da6fd75b29.png

6. إنشاء وجهة RFC

أنشئ وجهة RFC لمستند اعتماد IAM وVertex AI API باستخدام رمز المعاملة SM59. إذا لزم الأمر، يُرجى الرجوع إلى هذا الرابط للاطّلاع على الخطوات التفصيلية لإنشاء وجهة RFC.

اسم وجهة RFC

المضيف المستهدَف (نقطة نهاية واجهة برمجة التطبيقات)

ملاحظات

ZGOOG_IAMCREDENTIALS

  • المضيف: iamcredentials.googleapis.com
  • المسار: البادئة: ‎/v1/
  • المنفذ: 443
  • SSL: نشطة

تستهدف وجهة RFC هذه واجهة برمجة التطبيقات IAM API.

ZGOOG_VERTEX_AI

  • المضيف: us-central1-aiplatform.googleapis.com
  • المنفذ: 443
  • SSL: نشطة

تستهدف وجهة RFC هذه نقطة نهاية us-central1 لواجهة برمجة التطبيقات Vertex AI API.

  • ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة 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، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على حزمة تطوير البرامج ABAP لـ Google Cloud ‏ > الإعدادات الأساسية > ضبط تعيين الخدمات.
  4. انقر على إدخالات جديدة لبيانات اعتماد إدارة الهوية وإمكانية الوصول وVertex AI API وعدِّل وجهات RFC كما هو موضّح أدناه.

e7cc1429a4fe3a04.png

8. التحقّق من الإعدادات

للتحقّق من صحة إعدادات المصادقة، اتّبِع الخطوات التالية:

  1. في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
  2. انقر على SAP Reference IMG.
  3. انقر على حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud > الأدوات > التحقّق من إعدادات المصادقة.
  4. أدخِل اسم مفتاح العميل على النحو التالي: ABAP_SDK_DEMO.
  5. انقر على تنفيذ للتحقّق مما إذا تمّ إعداد العملية بشكلٍ كامل بنجاح.
  6. تشير علامة الاختيار الخضراء في عمود "النتيجة" إلى اكتمال جميع خطوات الضبط بنجاح.

d7285e64e22c25b6.png

9. دراسة بيانات مراجعات المنتجات

يتم تثبيت الفترة التجريبية لمنصّة ABAP مُسبَقًا مع نموذج SAP Enterprise Procurement Model ‏ (EPM)، وهو تطبيق شامل تقدّمه شركة SAP لأغراض العرض التوضيحي والاختبار. يتم تخزين مراجعات المنتجات التي سيتم استخدامها لتحليل المشاعر في الجدول SNWD_REV_ITEM.

يمكنك عرض بيانات الجدول باستخدام رمز التشغيل: SE16. سنستخدم نموذج النص من الحقل RATING_TEXT.

2bae72d437ea639.png

يمكنك أيضًا عرض البيانات اختياريًا من خلال الوصول إلى تطبيق "إدارة المنتجات" من Fiori Launchpad (رمز التشغيل: ‎/UI2/FLP).

f9792a91ef9f0736.png

تعرض لقطة الشاشة التالية قائمة المنتجات.

f822f9ab71d37a9.png

انقر على المنتج للاطّلاع على تقييمه وأمثلة على المراجعات.

69fe380d5ca7b276.png

في القسم التالي، سنستخدم نماذج مراجعات المنتجات هذه لتحليل المشاعر باستخدام نموذج "المعالجة اللغوية الكبيرة" من Google.

10. تحليل مدى توافق الآراء باستخدام Vertex AI Studio

  1. افتح لوحة بيانات Vertex AI، واختَر اللغة ضمن Vertex AI Studio.
  2. أنشئ طلبًا نصيًا جديدًا.

8ce4c928c75174d7.png

  1. أكِّد اختيار طراز Gemini Pro.
  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. في النافذة المنبثقة التالية، اختَر عنصر محلي أو أدخِل اسم حزمة حسب الاقتضاء.
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 مع حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud.

13. تَنظيم

إذا كنت لا تريد مواصلة استخدام مجموعات الاختبار البرمجي الإضافية المرتبطة بحزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud، يُرجى المتابعة لتنظيف المساحة.

حذف المشروع

  • يُرجى اتّباع الخطوات التالية لحذف مشروع Google Cloud:
gcloud projects delete abap-sdk-poc

حذف موارد فردية

  1. يمكنك حذف إدخالات إعدادات مفتاح العميل من خلال الانتقال إلى IMG > Google Cloud > الإعدادات الأساسية > ضبط مفتاح العميل.
  2. احذف إدخالات إعدادات تعيين الخدمات من خلال الانتقال إلى IMG > Google Cloud > الإعدادات الأساسية > ضبط مفتاح العميل.
  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