1. מבוא
ב-Codelab הזה, משתמשים במודל Gemini Pro כדי לבצע ניתוח סנטימנטים בביקורות על מוצרים באמצעות ABAP SDK ל-Google Cloud. אנחנו נבצע את השלבים להגדרת אימות לצורך גישה ל-Google Cloud Vertex AI API באמצעות אסימונים כשמערכת SAP שלך מתארחת במכונה וירטואלית של Compute Engine.
רשימת השירותים שבהם נעשה שימוש:
- Compute Engine
- שירותי רשת
- Cloud Shell
- Vertex AI
מה תפַתחו
הפעולה הזו תבצע את הפעולות הבאות:
- הגדרת ABAP SDK שמותקן במערכת SAP להתחברות ל-Google APIs.
- אפשר ליצור תוכנית לדוגמה של דוחות כדי להתקשר ל-Gemini AI ולבצע ניתוח סנטימנטים בביקורות על מוצרים.
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, בדף בורר הפרויקטים, בוחרים או יוצרים פרויקט ב-Google Cloud (לדוגמה:
abap-sdk-poc).
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. איך בודקים אם החיוב מופעל בפרויקט אפשר לדלג על השלב הזה אם משתמשים בחשבון לתקופת ניסיון בחינם למשך 90 יום.
- תשתמשו ב-Cloud Shell, סביבת שורת הפקודה שפועלת ב-Google Cloud. לוחצים על Activate Cloud Shell בפינה הימנית העליונה ב-Cloud Console:
- ודאו שכל ממשקי ה-API הנחוצים (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 ל-Google Cloud שמותקן בהם נתוני SAP EPM.
- אפשר להיעזר ב-Codelab " התקנת תקופת ניסיון של פלטפורמת ABAP ב-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 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 " מתקינים תקופת ניסיון של פלטפורמת ABAP ב-Google Cloud Platform ומתקינים את ABAP SDK", ואז משתמשים בשם המשתמש והסיסמה שהוקצו כברירת מחדל כדי להתחבר.
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference JPG.
- לוחצים על 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 | מארח היעד (נקודת קצה ל-API) | הערות |
ZGOOG_IAMCREDENTIALS |
| יעד ה-RFC הזה מטרגט ל-API של IAM. |
ZGOOG_VERTEX_AI |
| יעד ה-RFC הזה מטרגט את נקודת הקצה מסוג us-central1 של Vertex AI API. |
- בכרטיסייה הגדרות טכניות, מזינים את הפרטים הבאים עבור היעד ZGOOG_IAMCREDENTIALS.
- בכרטיסייה הגדרות טכניות, מזינים את הפרטים הבאים עבור היעד ZGOOG_VERTEX_AI.
- בשדה אישור SSL, צריך לוודא שהאפשרות DEFAULT SSL (Standard) מסומנת בשני יעדי ה-RFC.
7. הגדרה של מיפוי שירותים
כדי להגדיר את טבלת מיפוי השירותים ל-IAM API ול-Vertex AI API, מבצעים את השלבים הבאים:
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference JPG.
- לוחצים על ABAP SDK for Google Cloud > הגדרות בסיסיות > הגדרת מיפוי שירותים.
- לוחצים על New Credentials (רשומות חדשות) עבור IAM Credential ו-Vertex AI API ומעדכנים את יעדי ה-RFC כפי שמוצג בהמשך.
8. אימות ההגדרות האישיות
כדי לבדוק את הגדרות האימות, מבצעים את השלבים הבאים:
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference JPG.
- לוחצים על ABAP SDK for Google Cloud > כלי ניהול > מאמתים את הגדרות האימות.
- צריך להזין את שם מפתח הלקוח בתור
ABAP_SDK_DEMO
. - לוחצים על Execute כדי לבדוק אם התהליך הכולל הוגדר בהצלחה.
- סימן וי ירוק בעמודה 'תוצאות' מציין שכל שלבי ההגדרה הושלמו בהצלחה.
9. עיון בנתוני הביקורות על מוצרים
גרסת הניסיון של פלטפורמת ABAP מותקנת מראש עם SAP Enterprise Procurement Model (EPM), אפליקציה מקצה לקצה שניתנת מקצה לקצה על ידי SAP למטרות הדגמה ובדיקה. הביקורות על המוצרים שישמשו לניתוח סנטימנטים מאוחסנות בטבלה SNWD_REV_ITEM.
אפשר להציג את נתוני הטבלה באמצעות Tcode: SE16. נשתמש בטקסט לדוגמה מהשדה 'RATING_TEXT'.
אפשר גם להציג את הנתונים באפליקציה 'מוצרי ניהול' (אופציונלי) מ-Fiori Launchpad (TCode: /UI2/FLP).
בצילום המסך הבא מוצגת רשימת המוצרים.
לוחצים על המוצר כדי לראות את דירוג המוצר ואת הביקורות לדוגמה.
בקטע הבא נשתמש בביקורות לדוגמה על מוצרים כדי לנתח את הרגש באמצעות LLM של Google.
10. ניתוח סנטימנט באמצעות Vertex AI Studio
- פותחים את מרכז הבקרה של Vertex AI ובוחרים באפשרות שפה בקטע Vertex AI studio.
- יוצרים הנחיית טקסט חדשה.
- מוודאים שבחרתם מודל Gemini Pro.
- בכלי העריכה, מזינים את ההנחיה הבאה כדי להנחות את המודל לנתח את סנטימנט של הלקוחות בביקורת על המוצר.
- לוחצים על שליחה כדי ליצור את התשובה מהמודל.
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.
- בחלון הקופץ שנפתח, מזינים את הפרטים כפי שמוצג למטה ולוחצים על שמירה.
- בחלון הקופץ הבא, בוחרים באפשרות אובייקט מקומי או מספקים שם חבילה מתאים.
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 ל-Google Cloud.
13. הסרת המשאבים
לא רוצה להמשיך עם ה-Codelabs הנוספים שקשורים ל-ABAP SDK ל-Google Cloud? אפשר להמשיך בניקוי.
מחיקת הפרויקט
- מוחקים את הפרויקט ב-Google Cloud:
gcloud projects delete abap-sdk-poc
איך מוחקים משאבים ספציפיים
- כדי למחוק את הרשומות של תצורת מפתח הלקוח, נכנסים אל JPG > Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח
- כדי למחוק את רשומות התצורה של מיפוי השירות, נכנסים אל JPG > Google Cloud > הגדרות בסיסיות > הגדרת מפתח לקוח
- מוחקים את יעדי RFC ZGOOG_IAMCREDENTIALS ו-ZGOOG_VERTEX_AI.
- מחיקת תוכנת הדיווח
ZSENTIMENT_ANALYSIS
.
- מוחקים את חשבון השירות.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com