เกี่ยวกับ Codelab นี้
1 บทนำ
ในโค้ดแล็บนี้ คุณจะได้ใช้โมเดล Gemini Pro เพื่อวิเคราะห์ความรู้สึกในรีวิวผลิตภัณฑ์ด้วย ABAP SDK สำหรับ Google Cloud เราจะอธิบายขั้นตอนการตั้งค่าการตรวจสอบสิทธิ์เพื่อเข้าถึง Google Cloud Vertex AI API โดยใช้โทเค็นเมื่อระบบ SAP โฮสต์อยู่ในอินสแตนซ์ VM ของ 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 จาก Cloud Console ให้คลิกเปิดใช้งาน 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 สำหรับ 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
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 IMG
- คลิก ABAP SDK สำหรับ 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 นี้กำหนดเป้าหมายเป็น IAM API |
ZGOOG_VERTEX_AI |
| ปลายทาง RFC นี้กำหนดเป้าหมายไปยังปลายทาง us-central1 ของ Vertex AI API |
- ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_IAMCREDENTIALS
- ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_VERTEX_AI
- สำหรับช่องใบรับรอง SSL ให้ตรวจสอบว่าได้เลือกตัวเลือกไคลเอ็นต์ SSL เริ่มต้น (มาตรฐาน) สำหรับปลายทาง RFC ทั้ง 2 รายการ
7 กำหนดค่าการแมปบริการ
หากต้องการกำหนดค่าตารางการแมปบริการสำหรับ IAM API และ Vertex AI API ให้ทำตามขั้นตอนต่อไปนี้
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
- คลิก SAP Reference IMG
- คลิก ABAP SDK สำหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าการแมปบริการ
- คลิกรายการใหม่สำหรับข้อมูลเข้าสู่ระบบ IAM และ Vertex AI API แล้วอัปเดตปลายทาง RFC ตามที่แสดงด้านล่าง
8 ตรวจสอบการกำหนดค่า
หากต้องการตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์ ให้ทำตามขั้นตอนต่อไปนี้
- ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
- คลิก SAP Reference IMG
- คลิก ABAP SDK สำหรับ Google Cloud > ยูทิลิตี > ตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์
- ป้อนชื่อคีย์ไคลเอ็นต์เป็น
ABAP_SDK_DEMO
- คลิกเรียกใช้เพื่อตรวจสอบว่ากำหนดค่าโฟลว์โดยรวมสำเร็จหรือไม่
- เครื่องหมายถูกสีเขียวในคอลัมน์ผลลัพธ์แสดงว่าขั้นตอนการกำหนดค่าทั้งหมดเสร็จสมบูรณ์แล้ว
9 ศึกษาข้อมูลรีวิวผลิตภัณฑ์
การทดลองใช้แพลตฟอร์ม ABAP มีการติดตั้งโมเดลการจัดซื้อจัดจ้างระดับองค์กรของ SAP (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
- ในเครื่องมือแก้ไข ให้ป้อนพรอมต์ต่อไปนี้เพื่อสั่งให้โมเดลวิเคราะห์ความรู้สึกของลูกค้าในรีวิวผลิตภัณฑ์
- คลิกส่งเพื่อสร้างคำตอบจากโมเดล
พรอมต์:
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 ขอแสดงความยินดี
ยินดีด้วย คุณพัฒนาโปรแกรมตัวอย่างเพื่อทำการวิเคราะห์ความรู้สึกโดยใช้ AI ของ Gemini Pro ด้วย 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