מידע על Codelab זה
1. מבוא
ב-codelab הזה תשתמשו במודל Gemini Pro כדי לבצע ניתוח סנטימנט של ביקורות על מוצרים באמצעות ABAP SDK ל-Google Cloud. במאמר הזה נסביר איך להגדיר אימות כדי לגשת ל-Google Cloud Vertex AI API באמצעות טוקנים, כשהמערכת של SAP מתארחת במכונה וירטואלית (VM) של Compute Engine.
רשימת השירותים שנעשה בהם שימוש:
- Compute Engine
- Network Services
- 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 החיצונית של המכונה הווירטואלית ככתובת ה-IP של שרת האפליקציות. אם אתם משתמשים ב-Mac, אתם יכולים גם להתקין את SAP GUI for Java שזמין בקישור הזה.
3. לפני שמתחילים
- ב-Google Cloud Console, בדף לבחירת הפרויקט, בוחרים או יוצרים פרויקט ב-Google Cloud (לדוגמה:
abap-sdk-poc).
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט אפשר לדלג על השלב הזה אם אתם משתמשים בחשבון עם תקופת ניסיון בחינם ל-90 יום.
- תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud. בפינה הימנית העליונה של Cloud Console, לוחצים על Activate Cloud Shell:
- מוודאים שכל ממשקי ה-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 for Google Cloud שמותקן עם נתוני SAP EPM.
- כדי להגדיר מערכת חדשה, אפשר לעיין ב-codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (התקנת גרסת ניסיון של פלטפורמת 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 Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK, אתם יכולים להתחבר באמצעות שם המשתמש והסיסמה שהוקצו כברירת מחדל.
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference IMG.
- לוחצים על ABAP SDK for Google Cloud (חבילת SDK של ABAP ל-Google Cloud) > Basic Settings (הגדרות בסיסיות) > Configure Client Key (הגדרת מפתח לקוח).
- לוחצים על New Entries (רשומות חדשות).
- מזינים ערכים בשדות הבאים:
שדה | תיאור |
שם המפתח ב-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 |
Authorization Class | /GOOG/CL_AUTH_GOOGLE. |
משאירים את שאר השדות ריקים
6. יצירת יעד RFC
יוצרים יעד RFC עבור אישורי IAM ו-Vertex AI API באמצעות קוד העסקה SM59. אם צריך, כאן אפשר למצוא שלבים מפורטים ליצירת יעד RFC.
שם יעד RFC | מארח היעד (נקודת קצה של API) | הערות |
ZGOOG_IAMCREDENTIALS |
| יעד ה-RFC הזה הוא IAM API. |
ZGOOG_VERTEX_AI |
| יעד ה-RFC הזה הוא נקודת הקצה us-central1 של Vertex AI API. |
- בכרטיסייה Technical Settings (הגדרות טכניות), מזינים את הפרטים הבאים ליעד ZGOOG_IAMCREDENTIALS.
- בכרטיסייה הגדרות טכניות, מזינים את הפרטים הבאים ליעד ZGOOG_VERTEX_AI.
- בשדה SSL Certificate (אישור SSL), מוודאים שהאפשרות DEFAULT SSL Client (Standard) (לקוח SSL שמוגדר כברירת מחדל (רגיל)) מסומנת בשני יעדי ה-RFC.
7. הגדרת מיפוי שירותים
כדי להגדיר את טבלת מיפוי השירותים עבור IAM API ו-Vertex AI API, מבצעים את השלבים הבאים:
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference IMG.
- לוחצים על ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping (ערכת ה-SDK של ABAP ל-Google Cloud > הגדרות בסיסיות > הגדרת מיפוי שירותים).
- לוחצים על New Entries (ערכים חדשים) עבור IAM Credential (אישורי IAM) ו-Vertex AI API, ומעדכנים את יעדי ה-RFC כמו שמוצג בהמשך.
8. אימות ההגדרות
כדי לאמת את הגדרת האימות:
- ב-SAP GUI, מזינים את קוד העסקה SPRO.
- לוחצים על SAP Reference IMG.
- לוחצים על ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration (ערכת ה-SDK של ABAP ל-Google Cloud > כלי עזר > אימות הגדרת האימות).
- מזינים את שם מפתח הלקוח בתור
ABAP_SDK_DEMO
. - לוחצים על Execute (הפעלה) כדי לבדוק אם התהליך הכולל מוגדר בהצלחה.
- סימן וי ירוק בעמודה 'תוצאה' מציין שכל שלבי ההגדרה הושלמו בהצלחה.
9. בדיקת נתוני הביקורות על מוצרים
גרסת הניסיון של ABAP Platform מגיעה עם SAP Enterprise Procurement Model (EPM), אפליקציה מקצה לקצה ש-SAP מספקת למטרות הדגמה ובדיקה. הביקורות על המוצרים שישמשו לניתוח הסנטימנט מאוחסנות בטבלה SNWD_REV_ITEM.
אפשר להציג את נתוני הטבלה באמצעות קוד הטרנזקציה: SE16. נשתמש בטקסט לדוגמה מהשדה 'RATING_TEXT'.
אפשר גם להציג את הנתונים באמצעות גישה לאפליקציה Manager Products (ניהול מוצרים) מ-Fiori Launchpad (קוד עסקה: /UI2/FLP).
בצילום המסך הבא מוצגת רשימת המוצרים.
לוחצים על המוצר כדי לראות את דירוג המוצר ודוגמאות לביקורות.
בקטע הבא נשתמש בדוגמאות האלה של ביקורות על מוצרים כדי לנתח את הסנטימנט באמצעות מודל שפה גדול (LLM) של Google.
10. ניתוח סנטימנטים באמצעות Vertex AI Studio
- פותחים את מרכז הבקרה של Vertex AI ובוחרים באפשרות Language בקטע 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.
- בחלון הקופץ שנפתח, מזינים את הפרטים כמו שמוצג למטה ולוחצים על שמירה.
- בחלון הקופץ הבא, בוחרים באפשרות 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.
- מריצים את התוכנית כדי לראות את ניתוח הסנטימנטים של הטקסט בביקורת.
12. מזל טוב
מעולה! הצלחתם לפתח תוכנית לדוגמה לביצוע ניתוח סנטימנט באמצעות Gemini Pro AI עם ABAP SDK ל-Google Cloud.
13. הסרת המשאבים
אם לא רוצים להמשיך עם ה-codelab הנוסף שקשור ל-ABAP SDK ל-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