1. บทนำ
หากคุณชอบไล่ดูหนังสือต่างๆ แต่เลือกไม่ถูกเลือกเพราะตัวเลือกที่มีมากมายจนเลือกไม่ออก ลองจินตนาการว่าคุณมีแอปที่ทำงานด้วยระบบ AI ซึ่งไม่เพียงแนะนำหนังสือที่เหมาะกับคุณที่สุด แต่ยังให้สรุปที่กระชับตามประเภทหนังสือที่คุณเลือก ซึ่งจะช่วยให้คุณเห็นภาพรวมของเนื้อหาหนังสือ ในโค้ดแล็บนี้ เราจะแนะนำการสร้างแอปดังกล่าวด้วย BigQuery, Gemini และ Cloud Functions ที่ทำงานด้วย Gemini
ภาพรวมของโปรเจ็กต์
กรณีการใช้งานของเรามุ่งเน้นที่องค์ประกอบหลัก 4 ประการต่อไปนี้
- ฐานข้อมูลหนังสือ: ชุดข้อมูลสาธารณะ BigQuery ขนาดใหญ่ของหนังสือที่เก็บถาวรบนอินเทอร์เน็ตจะทำหน้าที่เป็นแคตตาล็อกหนังสือที่ครอบคลุม
- เครื่องมือสรุปข้อมูลด้วย AI: Google Cloud Functions ที่มาพร้อมกับโมเดลภาษา Gemini 1.0 Pro จะสร้างข้อมูลสรุปที่เป็นประโยชน์ซึ่งปรับให้เหมาะกับคำขอของผู้ใช้
- การผสานรวม BigQuery: ฟังก์ชันระยะไกลภายใน BigQuery ที่เรียกใช้ Cloud Functions เพื่อแสดงสรุปและธีมของหนังสือแบบออนดีมานด์
- อินเทอร์เฟซผู้ใช้: เว็บแอปที่โฮสต์ใน Cloud Run ซึ่งจะให้บริการเว็บแอปพลิเคชันเพื่อให้ผู้ใช้ดูผลลัพธ์
เราจะแบ่งการติดตั้งใช้งานออกเป็น 3 โค้ดแล็บ ดังนี้
Codelab 1: ใช้ Gemini เพื่อสร้างฟังก์ชัน Java Cloud สำหรับแอปพลิเคชัน Gemini
Codelab 2: ใช้ Gemini เพื่อสร้างแอป SQL ด้วย BigQuery และ Generative AI
Codelab 3: ใช้ Gemini เพื่อสร้างเว็บแอปพลิเคชัน Java Spring Boot ที่โต้ตอบกับ BigQuery
2. ใช้ Gemini เพื่อสร้างแอป SQL ด้วย BigQuery และ Generative AI
สิ่งที่คุณจะสร้าง
คุณจะต้องสร้าง
- model ระยะไกลใน BigQuery ที่เรียกใช้ปลายทาง Vertex AI text-bison-32k เพื่อระบุประเภท (หรือธีม) ของหนังสือจากรายการ ";" ที่แยกคีย์เวิร์ดในตาราง
- ฟังก์ชันระยะไกลใน BigQuery ที่จะเรียกใช้ Cloud Functions ของ Generative AI ที่ติดตั้งใช้งานจากระยะไกล
- ใช้โมเดลและฟังก์ชันระยะไกลเพื่อสรุปธีมและข้อความของหนังสือด้วยการค้นหา SQL และเขียนผลลัพธ์ลงในตารางใหม่ในชุดข้อมูลชั้นวางหนังสือ
- คุณจะทำตามขั้นตอนเหล่านี้โดยได้รับความช่วยเหลือจาก Gemini
3. ข้อกำหนด
- เบราว์เซอร์ เช่น Chrome หรือ Firefox
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
- คุณควรทำให้ Cloud Function ใช้งานได้เป็นส่วนหนึ่งของ Codelab ส่วนที่ 1 ใช้ Gemini เพื่อสร้าง Cloud Function ภาษา Java สําหรับแอปพลิเคชัน Gemini
- แบบมีเงื่อนไข: หากตอนนี้คุณมีสิทธิ์เข้าถึงลิงก์เครดิต Google Cloud ฟรี (ซึ่งผู้จัดเวิร์กช็อปอาจจัดสรรให้คุณ) ให้ทำตามวิธีการในหน้าด้านล่างเพื่อดำเนินการตามขั้นตอนการเปิดใช้งานเครดิตและการสร้างโปรเจ็กต์ให้เสร็จสมบูรณ์ก่อน หากคุณไม่มีลิงก์นี้ ให้ดำเนินการตามขั้นตอนที่จำเป็นของโปรเจ็กต์และการเรียกเก็บเงินด้านล่าง
สร้างโปรเจ็กต์
คุณข้ามขั้นตอนด้านล่างได้หากเปิดใช้งานบัญชีสำหรับการเรียกเก็บเงินและสร้างโปรเจ็กต์โดยใช้ลิงก์ที่กล่าวถึงในขั้นตอนแบบมีเงื่อนไขด้านบนแล้ว
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์หรือไม่
เปิดใช้งาน Cloud Shell
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud โดยโหลด bq ไว้ล่วงหน้า
จากคอนโซลระบบคลาวด์ ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน
- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรจะเห็นการตรวจสอบสิทธิ์แล้วและโปรเจ็กต์ได้รับการตั้งค่าเป็นรหัสโปรเจ็กต์ของคุณแล้ว เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณได้รับการตรวจสอบสิทธิ์
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
โปรเจ็กต์รายการการกำหนดค่า gcloud
- หากไม่ได้ตั้งค่าโปรเจ็กต์ไว้ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่าโปรเจ็กต์
โปรเจ็กต์ชุดการกำหนดค่า gcloud <YOUR_PROJECT_ID>
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
4. การเปิดใช้ Gemini สำหรับ Google Cloud และ API ที่จำเป็น
เปิดใช้ Gemini
- ไปที่ Marketplace ของ Gemini สำหรับ 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" ในแถบค้นหา แล้วคลิก "ค้นหาทุกโปรเจ็กต์" ขยายผลการค้นหาและติดดาวหนังสือจากหอจดหมายเหตุอินเทอร์เน็ตดังที่แสดงในรูปภาพด้านล่าง
ขยายชุดข้อมูล คลิก gdelt-bq.internetarchivebooks แล้วดูตัวอย่างข้อมูลในตาราง 1920 ตารางนี้รวมหนังสือจากปี 1920 ที่เก็บไว้
หากต้องการดูสคีมาที่เราจะใช้ในส่วนต่อๆ ไป ให้เรียกใช้การค้นหาต่อไปนี้
select * from `gdelt-bq.internetarchivebooks.1920` limit 5;
เราจะใช้ฟิลด์ 3 รายการต่อไปนี้สําหรับ Codelab
- BookMeta_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?
คําตอบมีดังนี้
มาทําตามขั้นตอนที่ระบุไว้ในคําตอบเพื่อสร้างชุดข้อมูลชื่อ "ชั้นวางหนังสือ" ในโปรเจ็กต์ที่ใช้งานอยู่กัน
หากต้องการสร้างชุดข้อมูล 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(ภาษานิยามข้อมูล) ต่อไปนี้ซึ่งแสดงการสร้างออบเจ็กต์ 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 ก่อนหน้า การค้นหานี้จะสร้างโมเดลระยะไกลในชุดข้อมูล "ชั้นวางหนังสือ" ซึ่งเราสร้างขึ้นก่อนหน้านี้
8. สร้างฟังก์ชันระยะไกลที่เรียกใช้ Cloud Function ของ Java
ตอนนี้เราจะสร้างฟังก์ชันระยะไกลใน BigQuery โดยใช้ Cloud Function ของ Java ที่เราสร้างไว้ใน codelab 1 ของชุดนี้เพื่อติดตั้งใช้งานโมเดล Gemini ระบบจะใช้ฟังก์ชันระยะไกลนี้เพื่อสรุปเนื้อหาหนังสือ
หมายเหตุ: หากคุณพลาด Codelab นี้หรือยังไม่ได้ทำให้ 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. สรุปข้อความทั้งหมดของหนังสือโดยใช้ฟังก์ชันระยะไกล
ตอนนี้เราจะพยายามสรุปหนังสือโดยการเรียกใช้ชั้นวางหนังสือGEMINI_REMOTE_CALL Cloud Function ที่เราสร้างขึ้นก่อนหน้านี้
หมายเหตุ: หากข้ามการสร้างฟังก์ชันระยะไกล (หัวข้อก่อนหน้าในโค้ดแล็บนี้) อย่าลืมข้ามการเรียกใช้ฟังก์ชัน 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) เป็นขั้นตอนที่ไม่บังคับ เราจะใช้เฉพาะข้อมูลเชิงลึกจากโมเดลระยะไกล
คําค้นหาที่เราจะใช้มีดังนี้
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 Editor ผลลัพธ์จะเป็นดังนี้
ตอนนี้มาขอให้ Gemini สร้างตารางชื่อ "bookshelf.books" จากข้อความค้นหาข้างต้นกัน ไปที่คอนโซลแชท Gemini ใน 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 มีดังนี้
นี่คือคำค้นหาสำหรับกรณีที่คุณต้องการคัดลอกจากที่นี่โดยตรง
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 Function ของ Generative AI ที่ติดตั้งใช้งานนี้จากระยะไกล ฟังก์ชันนี้จะรับพรอมต์เป็นอินพุตและแสดงผลสตริงที่สรุปหนังสือเป็น 5 บรรทัด
- ใช้โมเดลและฟังก์ชันระยะไกลเพื่อสรุปธีมและข้อความของหนังสือด้วยการค้นหา SQL และเขียนผลลัพธ์ลงในตารางใหม่ในชุดข้อมูลชั้นวางหนังสือ
- ในการติดตามผล ให้ลองใช้ Gemini เพื่อรับ SQL สําหรับการลบออบเจ็กต์ที่สร้างใน BigQuery ซึ่งจะครอบคลุมขั้นตอนการล้างข้อมูล