1. مقدمة
في هذا الدرس التطبيقي حول الترميز، ستستخدم نموذج Gemini Pro لإجراء تحليل الآراء حول مراجعات المنتجات من خلال ABAP SDK for 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 لـ Java المتوفرة في هذا الرابط.
3- قبل البدء
- في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه (على سبيل المثال:
abap-sdk-poc).
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع. يمكنك تخطّي هذه الخطوة إذا كنت تستخدم حساب الفترة التجريبية المجانية لمدة 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 باستخدام حزمة ABAP SDK for Google Cloud المثبَّتة مع SAP EPM.
- يمكنك الرجوع إلى درس تطبيقي حول الترميز " تثبيت الإصدار التجريبي من ABAP Platform على 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 GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > اضبط مفتاح العميل.
- انقر على إدخالات جديدة.
- أدخِل قيمًا للحقول التالية:
الحقل | الوصف |
اسم Google Cloud Key | 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 لبيانات اعتماد "إدارة الهوية وإمكانية الوصول" وواجهة برمجة تطبيقات Vertex AI باستخدام رمز المعاملة SM59. إذا لزم الأمر، يُرجى الرجوع هنا للحصول على خطوات تفصيلية حول إنشاء وجهة RFC.
اسم وجهة RFC | المضيف المستهدف (نقطة نهاية واجهة برمجة التطبيقات) | ملاحظات |
ZGOOG_IAMCREDENTIALS |
| تستهدف وجهة RFC هذه واجهة برمجة التطبيقات IAM API. |
ZGOOG_VERTEX_AI |
| تستهدف وجهة RFC هذه نقطة نهاية Vertex AI API us-central1. |
- ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_IAMCREDENTIALS.
- ضمن علامة التبويب الإعدادات الفنية، أدخِل التفاصيل التالية لوجهة ZGOOG_VERTEX_AI.
- بالنسبة إلى حقل شهادة طبقة المقابس الآمنة (SSL)، تأكَّد من تحديد الخيار عميل طبقة المقابس الآمنة التلقائي (الخيار العادي) لكل من وجهات RFC.
7. ضبط عملية ربط الخدمة
لضبط جدول ربط الخدمات لواجهة برمجة التطبيقات IAM API وVertex AI API، عليك اتّباع الخطوات التالية:
- في SAP GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > الإعدادات الأساسية > ضبط عملية ربط الخدمة
- انقر على إدخالات جديدة لـ IAM Credential وVertex AI API وعدِّل وجهات RFC كما هو موضّح أدناه.
8. التحقّق من صحة الإعدادات
للتحقّق من صحة ضبط المصادقة، اتّبِع الخطوات التالية:
- في SAP GUI، أدخِل رمز المعاملة SPRO.
- انقر على SAP Reference IMG.
- انقر على ABAP SDK for Google Cloud > أدوات مساعدة > التحقق من صحة ضبط المصادقة
- أدخِل اسم مفتاح العميل باسم
ABAP_SDK_DEMO
. - انقر على تنفيذ لمعرفة ما إذا كان قد تم ضبط التدفق العام بنجاح.
- تشير علامة الاختيار الخضراء في عمود "النتيجة" إلى اكتمال جميع خطوات الإعداد بنجاح.
9. دراسة بيانات مراجعات المنتجات
تم تثبيت الإصدار التجريبي من منصة ABAP بشكل مسبق مع نموذج الشراء SAP Enterprise (EPM)، وهو تطبيق شامل توفّره SAP لأغراض العرض والاختبار. يتم تخزين مراجعات المنتج التي سيتم استخدامها لتحليل الآراء في الجدول SNWD_REV_ITEM.
يمكنك عرض بيانات الجدول باستخدام رمز Tcode: SE16. سنستخدم نموذج النص من الحقل "RATING_TEXT".
اختياريًا، يمكنك أيضًا عرض البيانات عن طريق الوصول إلى تطبيق "المنتجات الإدارية" من Fiori Launchpad (TCode: /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 AI مع حزمة ABAP SDK for 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