การวิเคราะห์ความเห็นด้วย Gemini AI ที่มี ABAP SDK

การวิเคราะห์ความรู้สึกโดยใช้ AI ของ Gemini ด้วย ABAP SDK

เกี่ยวกับ Codelab นี้

subjectอัปเดตล่าสุดเมื่อ ก.ค. 30, 2025
account_circleเขียนโดย Ameya Suvarna

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 ที่มุมบนขวา
  • 6757b2fb50ddcc2d.png
  • ตรวจสอบว่าได้เปิดใช้ 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

4 สร้างบัญชีบริการและตั้งค่าบทบาทผู้ใช้ Vertex AI

  1. เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างบัญชีบริการ (หากยังไม่ได้สร้าง)
gcloud iam service-accounts create abap-sdk-dev \
   
--description="ABAP SDK Dev Account" \
   
--display-name="ABAP SDK Dev Account"
  1. เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าบทบาทผู้ใช้ 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" ให้ใช้ชื่อผู้ใช้และรหัสผ่านที่จัดสรรไว้เริ่มต้นเพื่อเข้าสู่ระบบ

  1. ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
  2. คลิก SAP Reference IMG
  3. คลิก ABAP SDK สำหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
  4. คลิกรายการใหม่
  5. ป้อนค่าสำหรับช่องต่อไปนี้

ช่อง

คำอธิบาย

ชื่อคีย์ 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

เว้นช่องอื่นๆ ว่างไว้

c72e71da6fd75b29.png

6 สร้างปลายทาง RFC

สร้างปลายทาง RFC สำหรับข้อมูลเข้าสู่ระบบ IAM และ Vertex AI API โดยใช้รหัสธุรกรรม SM59 หากจำเป็น โปรดดูขั้นตอนโดยละเอียดเกี่ยวกับการสร้างปลายทาง RFC ที่นี่

ชื่อปลายทาง RFC

โฮสต์เป้าหมาย (ปลายทาง API)

หมายเหตุ

ZGOOG_IAMCREDENTIALS

  • โฮสต์: iamcredentials.googleapis.com
  • เส้นทาง: คำนำหน้า: /v1/
  • พอร์ต: 443
  • SSL: ใช้งานได้

ปลายทาง RFC นี้กำหนดเป้าหมายเป็น IAM API

ZGOOG_VERTEX_AI

  • โฮสต์: us-central1-aiplatform.googleapis.com
  • พอร์ต: 443
  • SSL: ใช้งานได้

ปลายทาง RFC นี้กำหนดเป้าหมายไปยังปลายทาง us-central1 ของ Vertex AI API

  • ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_IAMCREDENTIALS

e670c6a91acba40f.png

  • ในแท็บการตั้งค่าทางเทคนิค ให้ป้อนรายละเอียดต่อไปนี้สำหรับปลายทาง ZGOOG_VERTEX_AI

5c584aaed5c110f2.png

  • สำหรับช่องใบรับรอง SSL ให้ตรวจสอบว่าได้เลือกตัวเลือกไคลเอ็นต์ SSL เริ่มต้น (มาตรฐาน) สำหรับปลายทาง RFC ทั้ง 2 รายการ

b6370d12bd332318.png

7 กำหนดค่าการแมปบริการ

หากต้องการกำหนดค่าตารางการแมปบริการสำหรับ IAM API และ Vertex AI API ให้ทำตามขั้นตอนต่อไปนี้

  1. ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
  2. คลิก SAP Reference IMG
  3. คลิก ABAP SDK สำหรับ Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าการแมปบริการ
  4. คลิกรายการใหม่สำหรับข้อมูลเข้าสู่ระบบ IAM และ Vertex AI API แล้วอัปเดตปลายทาง RFC ตามที่แสดงด้านล่าง

e7cc1429a4fe3a04.png

8 ตรวจสอบการกำหนดค่า

หากต้องการตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์ ให้ทำตามขั้นตอนต่อไปนี้

  1. ใน SAP GUI ให้ป้อนรหัสธุรกรรม SPRO
  2. คลิก SAP Reference IMG
  3. คลิก ABAP SDK สำหรับ Google Cloud > ยูทิลิตี > ตรวจสอบการกำหนดค่าการตรวจสอบสิทธิ์
  4. ป้อนชื่อคีย์ไคลเอ็นต์เป็น ABAP_SDK_DEMO
  5. คลิกเรียกใช้เพื่อตรวจสอบว่ากำหนดค่าโฟลว์โดยรวมสำเร็จหรือไม่
  6. เครื่องหมายถูกสีเขียวในคอลัมน์ผลลัพธ์แสดงว่าขั้นตอนการกำหนดค่าทั้งหมดเสร็จสมบูรณ์แล้ว

d7285e64e22c25b6.png

9 ศึกษาข้อมูลรีวิวผลิตภัณฑ์

การทดลองใช้แพลตฟอร์ม ABAP มีการติดตั้งโมเดลการจัดซื้อจัดจ้างระดับองค์กรของ SAP (EPM) ไว้ล่วงหน้า ซึ่งเป็นแอปพลิเคชันแบบครบวงจรที่ SAP จัดเตรียมไว้เพื่อวัตถุประสงค์ในการสาธิตและการทดสอบ รีวิวผลิตภัณฑ์ที่จะใช้ในการวิเคราะห์ความรู้สึกจะจัดเก็บไว้ในตาราง SNWD_REV_ITEM

คุณดูข้อมูลตารางได้โดยใช้ Tcode: SE16 เราจะใช้ข้อความตัวอย่างจากฟิลด์ "RATING_TEXT"

2bae72d437ea639.png

นอกจากนี้ คุณยังดูข้อมูลได้โดยเข้าถึงแอปพลิเคชัน "จัดการผลิตภัณฑ์" จาก Fiori Launchpad (TCode: /UI2/FLP)

f9792a91ef9f0736.png

ภาพหน้าจอต่อไปนี้แสดงรายการผลิตภัณฑ์

f822f9ab71d37a9.png

คลิกผลิตภัณฑ์เพื่อดูคะแนนผลิตภัณฑ์และรีวิวตัวอย่าง

69fe380d5ca7b276.png

ในส่วนถัดไป เราจะใช้รีวิวผลิตภัณฑ์ตัวอย่างเหล่านี้เพื่อวิเคราะห์ความรู้สึกโดยใช้ LLM ของ Google

10 วิเคราะห์ความรู้สึกโดยใช้ Vertex AI Studio

  1. เปิดแดชบอร์ด Vertex AI แล้วเลือกภาษาใน Vertex AI Studio
  2. สร้างพรอมต์ข้อความใหม่

8ce4c928c75174d7.png

  1. ยืนยันการเลือกโมเดล Gemini Pro
  2. ในเครื่องมือแก้ไข ให้ป้อนพรอมต์ต่อไปนี้เพื่อสั่งให้โมเดลวิเคราะห์ความรู้สึกของลูกค้าในรีวิวผลิตภัณฑ์
  3. คลิกส่งเพื่อสร้างคำตอบจากโมเดล

พรอมต์:

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.

fd245c204144484.png

คุณสามารถใช้ข้อมูลรีวิวจากตาราง "SNWD_REV_ITEM" เพื่อทดสอบโมเดลด้วยพรอมต์เพิ่มเติมได้

11 สร้างโปรแกรมรายงานเพื่อเรียกใช้โมเดล Gemini Pro

ในขั้นตอนนี้ เราจะเรียกใช้โมเดล Gemini Pro จาก ABAP เพื่อทำการวิเคราะห์ความรู้สึกของรีวิวผลิตภัณฑ์ เพื่อวัตถุประสงค์ในการสาธิต โปรแกรมจะเลือกรีวิวผลิตภัณฑ์สูงสุด 10 รายการและใช้ ABAP SDK เพื่อเรียกใช้โมเดล Gemini Pro เพื่อพิจารณาความรู้สึกต่อรีวิวแต่ละรายการ โมเดลจะแสดงค่า เช่น "เชิงบวก" "เชิงลบ" "เป็นกลาง" หรือ "ผสม" ตามการวิเคราะห์

  1. เข้าสู่ระบบ SAP
  2. ไปที่รหัสธุรกรรม SE38 แล้วสร้างโปรแกรมรายงานชื่อ ZSENTIMENT_ANALYSIS
  3. ในป๊อปอัปที่เปิดขึ้น ให้ระบุรายละเอียดตามที่แสดงด้านล่าง แล้วคลิกบันทึก

a2158523ec8ef3c7.png

  1. ในป๊อปอัปถัดไป ให้เลือกออบเจ็กต์ในเครื่องหรือระบุชื่อแพ็กเกจตามความเหมาะสม
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.

  1. เรียกใช้โปรแกรมเพื่อดูการวิเคราะห์ความรู้สึกสำหรับข้อความรีวิว

4d869f1b8436b9ca.png

12 ขอแสดงความยินดี

ยินดีด้วย คุณพัฒนาโปรแกรมตัวอย่างเพื่อทำการวิเคราะห์ความรู้สึกโดยใช้ AI ของ Gemini Pro ด้วย ABAP SDK สำหรับ Google Cloud ได้สำเร็จแล้ว

13 ล้างข้อมูล

หากไม่ต้องการทำ Codelab เพิ่มเติมที่เกี่ยวข้องกับ ABAP SDK สำหรับ Google Cloud ต่อ โปรดดำเนินการล้างข้อมูล

ลบโปรเจ็กต์

  • ลบโปรเจ็กต์ Google Cloud โดยทำดังนี้
gcloud projects delete abap-sdk-poc

ลบทรัพยากรแต่ละรายการ

  1. ลบรายการการกำหนดค่าคีย์ไคลเอ็นต์โดยไปที่ IMG > Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
  2. ลบรายการการกำหนดค่าการเชื่อมโยงบริการโดยไปที่ IMG > Google Cloud > การตั้งค่าพื้นฐาน > กำหนดค่าคีย์ไคลเอ็นต์
  3. ลบปลายทาง RFC ZGOOG_IAMCREDENTIALS และ ZGOOG_VERTEX_AI
  4. ลบโปรแกรมรายงาน ZSENTIMENT_ANALYSIS.
  5. ลบบัญชีบริการ
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com