1. บทนำ
คุณชอบอ่านหนังสือไหม แต่รู้สึกว่ามีตัวเลือกเยอะเกินไปจนเลือกไม่ถูกใช่ไหม ลองนึกภาพว่ามีแอปที่ทำงานด้วยระบบ AI ซึ่งไม่เพียงแนะนำหนังสือที่เหมาะกับคุณเท่านั้น แต่ยังสรุปเนื้อหาโดยย่อตามประเภทที่คุณเลือกไว้ด้วย เพื่อให้คุณได้เห็นภาพรวมของหนังสือ ในโค้ดแล็บนี้ ฉันจะแนะนำวิธีสร้างแอปดังกล่าวด้วย BigQuery, Gemini และ Cloud Functions ที่ขับเคลื่อนโดย Gemini
ภาพรวมของโปรเจ็กต์
กรณีการใช้งานของเรามุ่งเน้นที่องค์ประกอบสำคัญ 4 อย่างต่อไปนี้
- ฐานข้อมูลหนังสือ: ชุดข้อมูลสาธารณะ BigQuery ขนาดใหญ่ของหนังสือใน Internet Archive จะเป็นแคตตาล็อกหนังสือที่ครอบคลุมของเรา
- เครื่องมือสรุปโดย AI: Google Cloud Functions ที่มาพร้อมโมเดลภาษา Gemini 1.0 Pro จะสร้างข้อมูลสรุปเชิงลึกที่ปรับให้เหมาะกับคำขอของผู้ใช้
- การผสานรวม BigQuery: ฟังก์ชันระยะไกลภายใน BigQuery ที่เรียกใช้ Cloud Function ของเราเพื่อแสดงข้อมูลสรุปและธีมของหนังสือตามต้องการ
- อินเทอร์เฟซผู้ใช้: เว็บแอปที่โฮสต์ใน Cloud Run ซึ่งจะนำเสนอเว็บแอปพลิเคชันให้ผู้ใช้ดูผลลัพธ์
เราจะแบ่งการติดตั้งใช้งานออกเป็น 3 โค้ดแล็บ ดังนี้
Codelab 1: ใช้ Gemini เพื่อสร้าง Cloud Function ของ Java สำหรับแอปพลิเคชัน Gemini
Codelab 2: ใช้ Gemini เพื่อสร้างแอป SQL ด้วย BigQuery และ Generative AI
Codelab 3: ใช้ Gemini เพื่อสร้างเว็บแอปพลิเคชัน Java Spring Boot ที่โต้ตอบกับ BigQuery
2. ใช้ Gemini เพื่อสร้างแอป SQL ด้วย BigQuery และ Generative AI
สิ่งที่คุณจะสร้าง
คุณจะสร้าง
- โมเดลระยะไกลใน BigQuery ที่เรียกใช้ปลายทาง text-bison-32k ของ Vertex AI เพื่อระบุประเภท (หรือธีม) ของหนังสือจากรายการคีย์เวิร์ดที่คั่นด้วย ";" ในตาราง
- ฟังก์ชันระยะไกลใน BigQuery ที่จะเรียกใช้ Cloud Functions ของ Generative AI ที่ติดตั้งใช้งานจากระยะไกล
- ใช้โมเดลและฟังก์ชันระยะไกลเพื่อสรุปธีมและข้อความของหนังสือด้วยการค้นหา SQL และเขียนผลลัพธ์ลงในตารางใหม่ในชุดข้อมูลชั้นวางหนังสือ
- คุณจะทำตามขั้นตอนเหล่านี้ได้ด้วยความช่วยเหลือจาก Gemini
3. ข้อกำหนด
- เบราว์เซอร์ เช่น Chrome หรือ Firefox
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
- ซึ่งจะเป็นประโยชน์หากคุณได้ติดตั้งใช้งาน Cloud Function เป็นส่วนหนึ่งของ Codelab ส่วนที่ 1 ใช้ Gemini เพื่อสร้าง Java Cloud Function สำหรับแอปพลิเคชัน Gemini Codelab
- แบบมีเงื่อนไข: หากคุณมีสิทธิ์เข้าถึงลิงก์เครดิต Google Cloud ฟรีในขณะนี้ (ซึ่งอาจได้รับการจัดสรรจากผู้จัดเวิร์กช็อป) ให้ทำตามวิธีการในหน้าด้านล่างเพื่อทำขั้นตอนการเปิดใช้งานเครดิตและการสร้างโปรเจ็กต์ให้เสร็จสมบูรณ์ล่วงหน้า หากไม่มีลิงก์นี้ ให้ทำตามขั้นตอนข้อกำหนดเบื้องต้นของโปรเจ็กต์และการเรียกเก็บเงินด้านล่าง
สร้างโปรเจ็กต์
คุณข้ามขั้นตอนด้านล่างได้หากเปิดใช้งานบัญชีสำหรับการเรียกเก็บเงินและสร้างโปรเจ็กต์โดยใช้ลิงก์ที่กล่าวถึงในขั้นตอนแบบมีเงื่อนไขด้านบนแล้ว
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
เปิดใช้งาน Cloud Shell
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และมาพร้อมกับ bq ที่โหลดไว้ล่วงหน้า
จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน 
- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรเห็นว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและโปรเจ็กต์ได้รับการตั้งค่าเป็นรหัสโปรเจ็กต์ของคุณแล้ว เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณได้รับการตรวจสอบสิทธิ์แล้ว
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
4. การเปิดใช้ Gemini สำหรับ Google Cloud และ API ที่จำเป็น
เปิดใช้ Gemini
- ไปที่ Gemini สำหรับ Marketplace ของ Google Cloud เพื่อเปิดใช้ API คุณยังใช้คำสั่งต่อไปนี้ได้ด้วย
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
- ไปที่หน้า Gemini แล้วคลิก "เริ่มแชท"
เปิดใช้ API อื่นๆ ที่จำเป็น
เราจะทำเช่นนั้นได้อย่างไร มาถาม Gemini กันดีกว่า แต่ก่อนอื่น โปรดทราบสิ่งต่อไปนี้
หมายเหตุ: LLM เป็นแบบไม่กำหนด ดังนั้นขณะที่คุณลองใช้พรอมต์เหล่านี้ คำตอบที่คุณได้รับอาจแตกต่างจากคำตอบในภาพหน้าจอของฉัน
ไปที่คอนโซลแชทของ Gemini โดยคลิกไอคอน "เปิด Gemini" ที่มุมขวาบนซึ่งอยู่ติดกับแถบค้นหาในคอนโซล Google Cloud
พิมพ์คำถามนี้ในส่วน "ป้อนพรอมต์ที่นี่"
ฉันจะเปิดใช้ BigQuery และ Vertex AI API โดยใช้คำสั่ง gcloud ได้อย่างไร
คุณจะได้รับคำตอบดังที่เห็นในรูปภาพต่อไปนี้

คัดลอกคำสั่งดังกล่าว (คุณใช้ไอคอนคัดลอกที่ด้านบนของข้อมูลโค้ดคำสั่งได้) แล้วเรียกใช้ในเทอร์มินัล Cloud Shell เพื่อเปิดใช้บริการที่เกี่ยวข้อง
- bigquery.googleapis.com
- aiplatform.googleapis.com
5. สำรวจชุดข้อมูลสาธารณะของ BigQuery สำหรับข้อมูลหนังสือ
เริ่มต้นด้วยการทำความคุ้นเคยกับชุดข้อมูลสาธารณะของ BigQuery ซึ่งมีข้อมูลเกี่ยวกับหนังสือในอินเทอร์เน็ตอาร์ไคฟ์จำนวนมาก
คุณดูชุดข้อมูลสาธารณะนี้ได้ในแผงสำรวจ BigQuery คุณจะเห็นส่วนนี้ทางด้านซ้ายเมื่อไปที่คอนโซล BigQuery

พิมพ์ "gdelt-bq" หรือ "internetarchivebooks" ในแถบค้นหา แล้วคลิกค้นหาทุกโปรเจ็กต์ ขยายผลการค้นหาและติดดาวหนังสือใน Internet Archive ดังที่แสดงในรูปภาพด้านล่าง

ขยายชุดข้อมูล คลิก gdelt-bq.internetarchivebooks แล้วดูตัวอย่างข้อมูลในตาราง 1920 ตารางนี้มีหนังสือตั้งแต่ปี 1920 ที่เก็บถาวรไว้
หากต้องการดูสคีมาที่เราจะใช้ในส่วนต่อๆ ไป ให้เรียกใช้การค้นหาต่อไปนี้
select * from `gdelt-bq.internetarchivebooks.1920` limit 5;
เราจะใช้ฟิลด์ 3 รายการต่อไปนี้สำหรับ Codelab
- BookMeta_Title (title)
- ธีม (ธีมที่คั่นด้วย ";')
- BookMeta_FullText (ข้อความทั้งหมดของหนังสือ)
6. สร้างชุดข้อมูล BigQuery ใหม่ชื่อ bookshelf
เราต้องการสร้างชุดข้อมูลภายใต้โปรเจ็กต์เพื่อจัดเก็บออบเจ็กต์ฐานข้อมูลและการวิเคราะห์ทั้งหมดที่เราจะสร้างในแล็บนี้ มาถาม Gemini ถึงวิธีสร้างชุดข้อมูล BigQuery กัน คุณควรเปิดแชท Gemini ในอีกแท็บหนึ่งในเบราว์เซอร์ไว้แล้วจากขั้นตอนการเปิดใช้ API หากยังไม่ได้ทำ คุณสามารถทำได้เลย ไปที่ Google Cloud Console โดยไปที่ https://console.cloud.google.com แล้วคุณจะเห็นไอคอน Gemini อยู่ข้างแถบค้นหาที่ด้านบน คลิกที่แชทนั้น แล้วแชทจะเปิดขึ้น

ป้อนพรอมต์ตามที่แสดงด้านล่าง
พรอมต์ของฉันมีดังนี้
How to create a BigQuery dataset?
คำตอบมีดังนี้

มาทำตามขั้นตอนที่ระบุไว้ในการตอบกลับเพื่อสร้างชุดข้อมูลชื่อ "bookshelf" ในโปรเจ็กต์ที่ใช้งานอยู่
หากต้องการสร้างชุดข้อมูล BigQuery ให้ทำตามขั้นตอนต่อไปนี้
- ไปที่หน้า BigQuery ในคอนโซล Google Cloud
- คลิกรหัสโปรเจ็กต์ในแผง Explorer
- คลิกสร้างชุดข้อมูล (ควรอยู่ในตัวเลือกที่แสดงเมื่อคลิกจุด 3 จุดข้างรหัสโปรเจ็กต์)
- ป้อนชื่อชุดข้อมูลเป็น "bookshelf"
- ตั้งค่าตำแหน่งเป็น "สหรัฐอเมริกา(หลายภูมิภาค)"
- สำหรับขั้นตอนที่ 3, 4, 5 และ 6 จากการตอบกลับ ให้ปล่อยตัวเลือกเริ่มต้นไว้
- คลิกสร้างชุดข้อมูล
ระบบจะสร้างชุดข้อมูลและแสดงในแผง Explorer คุณดูชุดข้อมูล "ชั้นหนังสือ" ได้ดังนี้
7. สร้างโมเดลระยะไกลเพื่อเรียกใช้ LLM ของ Vertex AI (text-bison-32k)
จากนั้นเราต้องสร้างโมเดลใน BigQuery ที่เรียกใช้โมเดล Vertex AI "text-bison-32k" โมเดลจะช่วยระบุธีมทั่วไป บริบทของหนังสือ จากรายการคีย์เวิร์ดของหนังสือแต่ละเล่มในชุดข้อมูล
มาถามคำถามนี้กับ Gemini กัน โดยไปที่แท็บที่คุณเปิดคอนโซลแชทของ Gemini ไว้ แล้วพิมพ์พรอมต์ด้านล่าง
คุณจะเชื่อมต่อ BigQuery กับ Vertex AI เพื่อเรียกใช้ปลายทาง LLM (text-bison-32k) ใน BigQuery ได้อย่างไร
การตอบกลับมีดังนี้

คำตอบประกอบด้วยข้อมูลที่ถูกต้อง เช่น ขั้นตอนที่รวมถึงการใช้คำสั่ง CREATE MODEL, การใช้การเชื่อมต่อ BigQuery และการกำหนดปลายทาง คำสั่งค้นหาถูกต้องสำหรับฉัน แต่ไม่ได้หมายความว่าคุณจะได้รับเอาต์พุตที่เหมือนกันทุกประการ เนื่องจากนี่คือโมเดลภาษาขนาดใหญ่ คุณอาจได้รับคำตอบในรูปแบบ ปริมาณ และความลึกที่แตกต่างกัน หากคุณไม่เห็นรายละเอียดทั้งหมดที่ฉันได้รับ โปรดถามคำถามติดตามผลในแชท เช่น ให้รายละเอียดเพิ่มเติมเกี่ยวกับวิธีสร้างทรัพยากรการเชื่อมต่อ หรือเหตุผลที่ไม่มีแอตทริบิวต์การเชื่อมต่อ หรือฉันจะเชื่อมต่อจาก BigQuery ไปยัง Vertex AI ได้อย่างไร เป็นต้น
นี่คือตัวอย่างพรอมต์ติดตามผล (ใช้เฉพาะในกรณีที่คุณต้องการติดตามผล หากการตอบกลับแรกที่คุณได้รับเพียงพอแล้ว ให้ดำเนินการต่อ)
What about the connection? How will I connect from BigQuery to Vertex AI?
คำตอบมีดังนี้

มาทำตามขั้นตอนจากคำตอบเพื่อสร้างการเชื่อมต่อ BigQuery กัน
- ไปที่คอนโซล BigQuery
- ในแผง BigQuery Explorer ให้คลิกปุ่ม "+เพิ่ม" แล้วคลิก "การเชื่อมต่อกับแหล่งข้อมูลภายนอก"
- ในขั้นตอนนี้ ระบบจะขอให้คุณเปิดใช้ BigQuery Connection API คลิกเปิดใช้ API

- คลิก "การเชื่อมต่อกับแหล่งข้อมูลภายนอก" แล้วคุณจะเห็นสไลด์แหล่งข้อมูลภายนอกดังที่แสดงด้านล่าง เลือกแหล่งที่มา "Vertex AI" จากรายการแหล่งที่มาภายนอก

- พิมพ์รหัสการเชื่อมต่อ (คุณสามารถเลือกใช้รหัสใดก็ได้ แต่ตอนนี้ให้ตั้งค่าเป็น "bq-vx") และภูมิภาค (หลายภูมิภาค "สหรัฐอเมริกา")
- คลิก "สร้างการเชื่อมต่อ"

- หลังจากสร้างการเชื่อมต่อแล้ว ให้คลิก "ไปที่การเชื่อมต่อ"
- ในหน้าข้อมูลการเชื่อมต่อ ให้คัดลอกรหัสบัญชีบริการเนื่องจากเราจะใช้รหัสนี้ในขั้นตอนถัดไป
- เมื่อสร้างการเชื่อมต่อแล้ว ให้กำหนดสิทธิ์ให้กับรหัสบัญชีบริการที่เราคัดลอกไว้เพื่อใช้ Vertex AI
- จากหน้า Google Cloud Console ให้เปิด Google Cloud IAM หรือไปที่ลิงก์
- คลิกให้สิทธิ์เข้าถึงในส่วนดูตามผู้ใช้หลัก

- ในกล่องโต้ตอบให้สิทธิ์เข้าถึง ให้ป้อนรหัสบัญชีบริการที่เราจดไว้ก่อนหน้านี้ภายในกล่องข้อความหลักการใหม่
- ตั้งค่าบทบาทเป็น "ผู้ใช้ Vertex AI"

ระบบจะสร้างการเชื่อมต่อที่จำเป็น ระบบจะให้สิทธิ์ที่จำเป็นแก่ผู้ใช้หลัก (บัญชีบริการของการเชื่อมต่อ) เพื่อใช้ Vertex AI จาก BigQuery
เรียกใช้คำสั่ง DDL(Data Definition Language) ต่อไปนี้ซึ่งแสดงถึงการสร้างออบเจ็กต์ DB ในกรณีนี้คือ MODEL ในตัวแก้ไขคำค้นหา BigQuery
CREATE OR REPLACE MODEL bookshelf.llm_model
REMOTE WITH CONNECTION `us.bq-vx`
OPTIONS (ENDPOINT = 'text-bison-32k');
คุณลองใช้สิ่งต่อไปนี้แทนขั้นตอนข้างต้นได้ โดยขอให้ Gemini แนะนำคำค้นหาเพื่อสร้างโมเดลสำหรับการเรียกใช้โมเดล "text-bison-32k"
หมายเหตุ: หากคุณใช้ชื่ออื่นสำหรับการเชื่อมต่อ ให้แทนที่ "us.bq-vx" ด้วยชื่อนั้นในคำสั่ง DDL ก่อนหน้า คําค้นหานี้จะสร้างโมเดลระยะไกลในชุดข้อมูล "bookshelf" ที่เราสร้างไว้ก่อนหน้านี้
8. สร้างฟังก์ชันระยะไกลที่เรียกใช้ Java Cloud Function
ตอนนี้เราจะสร้างฟังก์ชันระยะไกลใน BigQuery โดยใช้ฟังก์ชัน Cloud ของ Java ที่เราสร้างขึ้นใน codelab 1 ของชุดนี้เพื่อใช้โมเดล Gemini ระบบจะใช้ฟังก์ชันระยะไกลนี้เพื่อสรุปเนื้อหาของหนังสือ
หมายเหตุ: หากพลาดโค้ดแล็บนี้หรือยังไม่ได้ติดตั้งใช้งาน Cloud Function นี้ คุณสามารถข้ามขั้นตอนนี้และไปยังหัวข้อถัดไปได้ (ซึ่งก็คือสรุปธีมของหนังสือโดยใช้โมเดลระยะไกล)
ไปที่คอนโซล BigQuery แล้ววางคำสั่ง DDL ต่อไปนี้ในตัวแก้ไขคำค้นหา (คุณสร้างแท็บตัวแก้ไขคำค้นหาใหม่ได้โดยคลิกปุ่ม +)

ด้านล่างนี้คือ DDL ที่คุณคัดลอกได้ อย่าลืมแทนที่ปลายทางด้วยปลายทาง Cloud Functions ที่คุณติดตั้งใช้งาน (สร้างจาก codelab 1) หากไม่มีปลายทาง คุณสามารถแทนที่อักขระที่มาสก์ใน DDL ด้านล่างด้วย "abis-345004" เพื่อวัตถุประสงค์ในการสาธิต
CREATE OR REPLACE FUNCTION
`bookshelf.GEMINI_REMOTE_CALL` (context STRING) RETURNS STRING
REMOTE WITH CONNECTION `us.bq-vx`
OPTIONS (
endpoint = 'https://us-central1-****-******.cloudfunctions.net/remote-gemini-call' );
ไปที่คอนโซล BigQuery ในแพลตฟอร์ม Google Cloud แล้วเปิดแท็บตัวแก้ไขคำค้นหาใหม่ ในเครื่องมือแก้ไขคำค้นหาของ BigQuery ให้วางคำสั่ง DDL ด้านบน คุณจะเห็นการตอบกลับต่อไปนี้หลังจากเรียกใช้การค้นหา

เมื่อสร้างโมเดลและฟังก์ชันแล้ว มาทดสอบออบเจ็กต์ BigQuery ทั้ง 2 รายการนี้โดยเรียกใช้ในการค้นหา SELECT กัน
9. สรุปธีมโดยใช้โมเดลระยะไกล
มาใช้โมเดลระยะไกลที่เราสร้างขึ้น "bookshelf.llm_model" เพื่อสร้างคีย์เวิร์ดแบบรวมสำหรับหนังสือจากรายการธีมที่กำหนดกัน
SELECT * FROM ML.GENERATE_TEXT(MODEL `bookshelf.llm_model`,
(
SELECT
CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
FROM `gdelt-bq.internetarchivebooks.1920` LIMIT 1
));
ขั้นตอนที่ไม่บังคับ: ผลลัพธ์สำหรับฟิลด์ผลลัพธ์ที่ LLM สร้างขึ้นจะซ้อนกัน มาเพิ่มพารามิเตอร์ LLM และแอตทริบิวต์ "flatten_json_output" ลงในคำค้นหา การใช้แอตทริบิวต์ "flatten_json_output" จะช่วยนำโครงสร้างที่ซ้อนกันออกจากฟิลด์ผลลัพธ์ที่ LLM สร้างขึ้น
SELECT * FROM ML.GENERATE_TEXT ( MODEL `bookshelf.llm_model`, (
SELECT CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt FROM `gdelt-bq.internetarchivebooks.1920` limit 1),
STRUCT( 0.2 AS temperature, 100 AS max_output_tokens, TRUE AS flatten_json_output));
ตอนนี้ ให้เรียกใช้การค้นหา SELECT ในเครื่องมือแก้ไข BigQuery และยืนยันผลลัพธ์ เราจำกัดผลการค้นหาไว้ที่ 1 รายการเพื่อการทดสอบ ผลลัพธ์จะแสดงดังนี้

10. สรุปข้อความแบบเต็มของหนังสือโดยใช้ฟังก์ชันระยะไกล
ตอนนี้เราจะลองสรุปหนังสือโดยเรียกใช้ฟังก์ชัน Cloud bookshelf.GEMINI_REMOTE_CALL ที่เราสร้างไว้ก่อนหน้านี้
หมายเหตุ: หากคุณข้ามการสร้างฟังก์ชันระยะไกล (หัวข้อก่อนหน้าใน Codelab นี้) โปรดอย่าลืมข้ามการเรียกฟังก์ชัน bookshelf.GEMINI_REMOTE_CALL ในคำสั่ง SELECT ด้วย
ใช้คำสั่ง SELECT ที่เรียกฟังก์ชันระยะไกล (GEMINI_REMOTE_CALL) ที่เราสร้างไว้ก่อนหน้านี้ การเรียกใช้ฟังก์ชันนี้ GEMINI_REMOTE_CALL จะมีพรอมต์ที่ขอสรุปข้อความในหนังสือ
select BookMeta_Title, `bookshelf.GEMINI_REMOTE_CALL` (
CONCAT('This is about a book. The title of the book is this: ', BookMeta_Title, ' . The theme of the book is as follows: ', Themes, 'The following text contains an excerpt from the book. Summarize it in less than 5 lines to create the gist. If you do not have a summary, use the title and themes to make up a short summary. DO NOT RETURN EMPTY RESPONSE. ', SUBSTR(BookMeta_FullText, 5000, 10000))) Summary
from `gdelt-bq.internetarchivebooks.1920` where Themes like '%EDUCATION%' limit 1;
โปรดทราบว่าเราได้นำสตริงย่อยของข้อความแบบเต็มของหนังสือมาใช้เพื่อสร้างข้อมูลสรุป
ผลลัพธ์ของการค้นหามีดังนี้

11. จัดเก็บข้อมูลหนังสือในตาราง
ตอนนี้เราได้ทดสอบทั้งการเรียก LLM (โมเดลและฟังก์ชันระยะไกล) จาก BigQuery โดยใช้เฉพาะคำค้นหา SQL แล้ว มาสร้างตาราง BigQuery เพื่อจัดเก็บข้อมูล "ชั้นวางหนังสือ" พร้อมข้อมูลเชิงลึกของธีมในชุดข้อมูลเดียวกันกับโมเดลและฟังก์ชันระยะไกลกัน
ในขั้นตอนนี้ เราสามารถรวมทั้งการเรียกใช้โมเดล LLM และการเรียกใช้ฟังก์ชันระยะไกลได้ แต่เนื่องจากเราได้ทําเครื่องหมายการเรียกฟังก์ชันระยะไกล (ที่เรียกใช้ Cloud Functions) เป็นขั้นตอนที่ไม่บังคับ เราจึงจะใช้ข้อมูลเชิงลึกจากโมเดลระยะไกลเท่านั้น
คำค้นหาที่เราจะใช้มีดังนี้
SELECT
BookMeta_Title, Themes, ml_generate_text_llm_result Context
FROM
ML.GENERATE_TEXT (
MODEL `bookshelf.llm_model`,
(
SELECT
BookMeta_Title,
Themes,BookMeta_FullText,
CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
STRUCT(
0.2 AS temperature,
100 AS max_output_tokens,
TRUE AS flatten_json_output));
เมื่อเรียกใช้การค้นหาในเครื่องมือแก้ไข BigQuery ผลลัพธ์จะเป็นดังนี้

ตอนนี้เรามาขอให้ Gemini สร้างตารางชื่อ "bookshelf.books" จากการค้นหาข้างต้นกัน ไปที่คอนโซล Gemini Chat ใน Google Cloud Console แล้วป้อนพรอมต์ต่อไปนี้
พรอมต์ที่เราจะใช้มีดังนี้
Create a BigQuery table named bookshelf.books from this SELECT query:
SELECT
BookMeta_Title, Themes, ml_generate_text_llm_result Context
FROM
ML.GENERATE_TEXT (
MODEL `bookshelf.llm_model`,
(
SELECT
BookMeta_Title,
Themes,BookMeta_FullText,
CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
STRUCT(
0.2 AS temperature,
100 AS max_output_tokens,
TRUE AS flatten_json_output));
คำตอบของ Gemini Chat มีดังนี้

นี่คือคำค้นหาในกรณีที่คุณต้องการคัดลอกจากที่นี่โดยตรง
CREATE TABLE bookshelf.books (
BookMeta_Title STRING,
Themes STRING,
ml_generate_text_llm_result STRING
) AS (
SELECT
BookMeta_Title,
Themes,
ml_generate_text_llm_result Context
FROM
ML.GENERATE_TEXT (
MODEL `bookshelf.llm_model`,
(
SELECT
BookMeta_Title,
Themes,
BookMeta_FullText,
CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
FROM `gdelt-bq.internetarchivebooks.1920`
LIMIT 5
),
STRUCT(
0.2 AS temperature,
100 AS max_output_tokens,
TRUE AS flatten_json_output
)
)
);
หลังจากเรียกใช้การค้นหาในเครื่องมือแก้ไข BigQuery แล้ว ผลลัพธ์จะเป็นดังนี้

เท่านี้ก็เรียบร้อย ตอนนี้ให้ค้นหาตารางและลองใช้ข้อมูลเพื่อดูข้อมูลเชิงลึกเพิ่มเติม
12. ขอแสดงความยินดี
ยินดีด้วย เราได้ดำเนินการต่อไปนี้เสร็จสมบูรณ์แล้ว และใช้ Gemini ในบางขั้นตอนของกระบวนการด้วย
- สร้างโมเดลระยะไกลใน BigQuery ที่เรียกใช้ปลายทาง "text-bison-32k" ของ Vertex AI เพื่อระบุประเภท (หรือธีม) ของหนังสือจากรายการคีย์เวิร์ดที่คั่นด้วย ";" ในตาราง
- สร้างฟังก์ชันระยะไกลใน BigQuery ที่จะเรียกใช้ Cloud Functions ของ Generative AI ที่ติดตั้งใช้งานนี้จากระยะไกล ฟังก์ชันนี้จะรับพรอมต์เป็นอินพุตและแสดงผลสตริงที่สรุปหนังสือใน 5 บรรทัด
- ใช้โมเดลและฟังก์ชันระยะไกลเพื่อสรุปธีมและข้อความของหนังสือด้วยการค้นหา SQL และเขียนผลลัพธ์ลงในตารางใหม่ในชุดข้อมูลชั้นวางหนังสือ
- ในงานที่มอบหมายถัดไป ให้ลองใช้ Gemini เพื่อรับ SQL สำหรับลบออบเจ็กต์ที่สร้างใน BigQuery ซึ่งจะครอบคลุมขั้นตอนการล้างข้อมูล