لمحة عن هذا الدرس التطبيقي حول الترميز
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 في أعلى يسار الصفحة:
- تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (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
- تأكَّد من أنّ لديك إذن الوصول إلى نظام SAP مع تثبيت حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud مع بيانات SAP EPM.
- يمكنك الرجوع إلى دورة codelab تثبيت إصدار ABAP Platform Trial على Google Cloud Platform وتثبيت حزمة تطوير البرامج (SDK) لـ ABAP لإعداد نظام جديد.
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. إذا كنت تستخدِم النظام الذي تم توفيره من خلال دورة codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (تثبيت إصدار تجريبي من ABAP Platform على Google Cloud Platform وتثبيت حِزمة تطوير البرامج ABAP SDK)، استخدِم اسم المستخدم وكلمة المرور التلقائيَين المقدَّمَين لتسجيل الدخول.
- في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > ضبط مفتاح العميل.
- انقر على إدخالات جديدة.
- أدخِل قيمًا للحقول التالية:
الحقل | الوصف |
اسم مفتاح 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. |
اترك الحقول الأخرى فارغة
6. إنشاء وجهة RFC
أنشئ وجهة RFC لمستند اعتماد IAM وVertex AI API باستخدام رمز المعاملة SM59. إذا لزم الأمر، يُرجى الرجوع إلى هذا الرابط للاطّلاع على الخطوات التفصيلية لإنشاء وجهة RFC.
اسم وجهة RFC | المضيف المستهدَف (نقطة نهاية واجهة برمجة التطبيقات) | ملاحظات |
ZGOOG_IAMCREDENTIALS |
| تستهدف وجهة RFC هذه واجهة برمجة التطبيقات IAM API. |
ZGOOG_VERTEX_AI |
| تستهدف وجهة RFC هذه نقطة نهاية us-central1 لواجهة برمجة التطبيقات Vertex AI API. |
- ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_IAMCREDENTIALS.
- ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_VERTEX_AI.
- بالنسبة إلى حقل شهادة SSL، تأكَّد من اختيار الخيار DEFAULT SSL Client (Standard) (عميل طبقة المقابس الآمنة التلقائي (عادي)) لكلا وجهتَي RFC.
7. ضبط تعيين الخدمة
لضبط جدول تعيين الخدمات لكل من IAM API وVertex AI API، اتّبِع الخطوات التالية:
- في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على حزمة تطوير البرامج ABAP لـ Google Cloud > الإعدادات الأساسية > ضبط تعيين الخدمات.
- انقر على إدخالات جديدة لبيانات اعتماد إدارة الهوية وإمكانية الوصول وVertex AI API وعدِّل وجهات RFC كما هو موضّح أدناه.
8. التحقّق من الإعدادات
للتحقّق من صحة إعدادات المصادقة، اتّبِع الخطوات التالية:
- في واجهة مستخدم SAP، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud > الأدوات > التحقّق من إعدادات المصادقة.
- أدخِل اسم مفتاح العميل على النحو التالي:
ABAP_SDK_DEMO
. - انقر على تنفيذ للتحقّق مما إذا تمّ إعداد العملية بشكلٍ كامل بنجاح.
- تشير علامة الاختيار الخضراء في عمود "النتيجة" إلى اكتمال جميع خطوات الضبط بنجاح.
9. دراسة بيانات مراجعات المنتجات
يتم تثبيت الفترة التجريبية لمنصّة ABAP مُسبَقًا مع نموذج SAP Enterprise Procurement Model (EPM)، وهو تطبيق شامل تقدّمه شركة SAP لأغراض العرض التوضيحي والاختبار. يتم تخزين مراجعات المنتجات التي سيتم استخدامها لتحليل المشاعر في الجدول SNWD_REV_ITEM.
يمكنك عرض بيانات الجدول باستخدام رمز التشغيل: SE16. سنستخدم نموذج النص من الحقل RATING_TEXT.
يمكنك أيضًا عرض البيانات اختياريًا من خلال الوصول إلى تطبيق "إدارة المنتجات" من Fiori Launchpad (رمز التشغيل: /UI2/FLP).
تعرض لقطة الشاشة التالية قائمة المنتجات.
انقر على المنتج للاطّلاع على تقييمه وأمثلة على المراجعات.
في القسم التالي، سنستخدم نماذج مراجعات المنتجات هذه لتحليل المشاعر باستخدام نموذج "المعالجة اللغوية الكبيرة" من Google.
10. تحليل مدى توافق الآراء باستخدام Vertex AI Studio
- افتح لوحة بيانات Vertex AI، واختَر اللغة ضمن Vertex AI Studio.
- أنشئ طلبًا نصيًا جديدًا.
- أكِّد اختيار طراز 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 مع حزمة تطوير البرامج (SDK) لـ ABAP في Google Cloud.
13. تَنظيم
إذا كنت لا تريد مواصلة استخدام مجموعات الاختبار البرمجي الإضافية المرتبطة بحزمة تطوير البرامج (SDK) لـ ABAP في 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