สร้างเอาต์พุตที่มีโครงสร้าง (เช่น JSON) โดยใช้ Gemini API


Gemini API จะแสดงคำตอบเป็นข้อความที่ไม่มีโครงสร้างโดยค่าเริ่มต้น อย่างไรก็ตาม กรณีการใช้งานบางรายการต้องใช้ข้อความที่มีโครงสร้าง เช่น JSON เช่น คุณอาจใช้การตอบกลับสําหรับงานดาวน์สตรีมอื่นๆ ที่จําเป็นต้องใช้สคีมาข้อมูลที่กําหนดไว้

คุณสามารถกําหนดสคีมาคำตอบเพื่อตรวจสอบว่าเอาต์พุตที่โมเดลสร้างขึ้นเป็นไปตามสคีมาที่ต้องการเสมอ ซึ่งจะทํางานเหมือนพิมพ์เขียวสําหรับคําตอบของโมเดล จากนั้นคุณจะดึงข้อมูลจากเอาต์พุตของโมเดลได้โดยตรงด้วยการประมวลผลขั้นสุดท้ายน้อยลง

โดยตัวอย่างมีดังนี้

  • ตรวจสอบว่าการตอบกลับของโมเดลสร้าง JSON ที่ถูกต้องและเป็นไปตามสคีมาที่คุณระบุ
    ตัวอย่างเช่น โมเดลอาจสร้างรายการที่มีโครงสร้างสำหรับสูตรอาหารที่รวมชื่อสูตรอาหาร รายการส่วนผสม และขั้นตอนไว้ด้วยเสมอ จากนั้นคุณจะแยกวิเคราะห์และแสดงข้อมูลนี้ใน UI ของแอปได้ง่ายขึ้น

  • จํากัดวิธีที่โมเดลจะตอบสนองในระหว่างงานการจัดประเภท
    ตัวอย่างเช่น คุณสามารถให้โมเดลใส่ข้อความกำกับเนื้อหาด้วยชุดป้ายกำกับที่เจาะจง (ตัวอย่างเช่น ชุด enum ที่เฉพาะเจาะจงอย่าง positive และ negative) แทนที่จะเป็นป้ายกำกับที่โมเดลสร้างขึ้น (ซึ่งอาจมีระดับความแปรปรวนในระดับหนึ่ง เช่น good, positive, negative หรือ bad)

คู่มือนี้แสดงวิธีสร้างเอาต์พุต JSON โดยระบุ responseSchema ในการเรียก generateContent โดยจะมุ่งเน้นที่การป้อนข้อมูลแบบข้อความเท่านั้น แต่ Gemini ยังสร้างคำตอบแบบมีโครงสร้างสำหรับคำขอแบบหลายโมดัลที่มีรูปภาพ วิดีโอ และเสียงเป็นอินพุตได้ด้วย

ที่ด้านล่างของหน้านี้จะมีตัวอย่างเพิ่มเติม เช่น วิธีสร้างค่า enum เป็นเอาต์พุต หากต้องการดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีสร้าง Structured Data ให้ดูรายการตัวอย่างสคีมาและคำตอบจำลองในเอกสารประกอบ Google Cloud

ก่อนเริ่มต้น

ทําตามคู่มือการเริ่มต้นใช้งาน Vertex AI in FirebaseSDK ให้เสร็จสมบูรณ์ หากยังไม่ได้ดำเนินการ ตรวจสอบว่าคุณได้ทำสิ่งต่อไปนี้ทั้งหมดแล้ว

  1. สร้างโปรเจ็กต์ Firebase ใหม่หรือที่มีอยู่ รวมถึงการใช้แพ็กเกจราคา Blaze และการเปิดใช้ API ที่จำเป็น

  2. เชื่อมต่อแอปกับ Firebase ซึ่งรวมถึงการลงทะเบียนแอปและเพิ่มการกําหนดค่า Firebase ลงในแอป

  3. เพิ่ม SDK และเริ่มต้นVertex AIบริการและโมเดล Generative ในแอป

หลังจากเชื่อมต่อแอปกับ Firebase, เพิ่ม SDK และเริ่มต้นบริการ Vertex AI และ Generative Model แล้ว คุณก็พร้อมเรียกใช้ Gemini API

ขั้นตอนที่ 1: กําหนดสคีมาการตอบกลับ

กำหนดสคีมาการตอบกลับเพื่อระบุโครงสร้างเอาต์พุตของโมเดล ชื่อช่อง และประเภทข้อมูลที่คาดไว้สำหรับแต่ละช่อง

เมื่อสร้างคำตอบ โมเดลจะใช้ชื่อช่องและบริบทจากพรอมต์ เราขอแนะนำให้คุณใช้โครงสร้างที่ชัดเจน ชื่อช่องที่ไม่ชัดเจน และแม้แต่คำอธิบายตามต้องการเพื่อให้มีเจตนาชัดเจน

ข้อควรพิจารณาสำหรับสคีมาคำตอบ

โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อเขียนสคีมาการตอบกลับ

  • ขนาดของสคีมาการตอบกลับจะนับรวมในขีดจํากัดของโทเค็นอินพุต

  • ฟีเจอร์สคีมาการตอบกลับรองรับประเภท MIME ของการตอบกลับต่อไปนี้

    • application/json: เอาต์พุต JSON ตามที่กําหนดไว้ในสคีมาการตอบกลับ (มีประโยชน์สําหรับข้อกําหนดเอาต์พุตที่มีโครงสร้าง)

    • text/x.enum: แสดงผลค่า Enum ตามที่ระบุไว้ในสคีมาการตอบกลับ (มีประโยชน์สำหรับงานการจัดประเภท)

  • ฟีเจอร์สคีมาการตอบกลับรองรับช่องสคีมาต่อไปนี้

    enum
    items
    maxItems
    nullable
    properties
    required

    หากคุณใช้ฟิลด์ที่ระบบไม่รองรับ โมเดลจะยังคงจัดการคําขอได้ แต่จะละเว้นฟิลด์นั้น โปรดทราบว่ารายการข้างต้นคือชุดย่อยของออบเจ็กต์สคีมา OpenAPI 3.0 (ดูข้อมูลอ้างอิงสคีมา Vertex AI)

  • โดยค่าเริ่มต้น ช่องทุกช่องสำหรับ SDK Vertex AI in Firebase จะถือว่าต้องระบุเว้นแต่คุณจะระบุเป็นช่องที่ไม่บังคับในอาร์เรย์ optionalProperties สําหรับช่องที่ไม่บังคับเหล่านี้ โมเดลจะป้อนข้อมูลในช่องหรือข้ามช่องก็ได้

    โปรดทราบว่าการดำเนินการนี้ตรงข้ามกับลักษณะการทำงานเริ่มต้นของ Vertex AI Gemini API

ขั้นตอนที่ 2: ส่งพรอมต์พร้อมสคีมาการตอบกลับเพื่อสร้าง JSON

ตัวอย่างต่อไปนี้แสดงวิธีสร้างเอาต์พุต JSON ที่มีโครงสร้าง

หากต้องการสร้างเอาต์พุตที่มีโครงสร้าง คุณต้องระบุ responseMimeType ที่เหมาะสมระหว่างการเริ่มต้นโมเดล (ในตัวอย่างนี้คือ application/json) รวมถึง responseSchema ที่ต้องการให้โมเดลใช้

Gemini 1.5 Pro และ Gemini 1.5 Flash รองรับการใช้ responseSchema

ดูวิธีเลือกรูปแบบ Gemini และตำแหน่ง (ไม่บังคับ) ที่เหมาะสมกับกรณีการใช้งานและแอป

ตัวอย่างเพิ่มเติม

หากต้องการดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีใช้และสร้างเอาต์พุตที่มีโครงสร้าง ให้ดูรายการสคีมาตัวอย่างและคำตอบจำลองในเอกสารประกอบ Google Cloud

สร้างค่า enum เป็นเอาต์พุต

ตัวอย่างต่อไปนี้จะแสดงวิธีใช้สคีมาการตอบกลับสำหรับงานการจัดประเภท ระบบจะขอให้โมเดลระบุประเภทของภาพยนตร์ตามคำอธิบาย เอาต์พุตคือค่าแบบข้อความล้วนแบบ Enum รายการเดียวที่โมเดลเลือกจากรายการค่าที่กําหนดไว้ในสคีมาการตอบกลับที่ระบุ

หากต้องการทํางานการจัดประเภทที่มีโครงสร้างนี้ คุณต้องระบุ responseMimeType ที่เหมาะสม (ในตัวอย่างนี้คือ text/x.enum) และ responseSchema ที่ต้องการให้โมเดลใช้ในระหว่างการเริ่มต้นใช้งานโมเดล

ดูวิธีเลือกโมเดล Gemini และตำแหน่งที่ไม่บังคับสำหรับกรณีการใช้งานและแอปของคุณ

ตัวเลือกอื่นๆ ในการควบคุมการสร้างเนื้อหา

  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบพรอมต์เพื่อให้คุณควบคุมโมเดลให้สร้างเอาต์พุตที่ตรงกับความต้องการของคุณได้
  • กำหนดค่าพารามิเตอร์โมเดลเพื่อควบคุมวิธีที่โมเดลสร้างคำตอบ พารามิเตอร์เหล่านี้ ได้แก่ โทเค็นเอาต์พุตสูงสุด, อุณหภูมิ, topK และ topP
  • ใช้การตั้งค่าความปลอดภัยเพื่อปรับความเป็นไปได้ที่จะได้รับคำตอบที่อาจถือว่ามีอันตราย ซึ่งรวมถึงวาจาสร้างความเกลียดชังและเนื้อหาเกี่ยวกับเรื่องเพศอย่างโจ่งแจ้ง
  • ตั้งค่าคำสั่งของระบบเพื่อกำหนดลักษณะการทำงานของโมเดล ฟีเจอร์นี้เปรียบเสมือน "ช่วงนำ" ที่คุณเพิ่มก่อนที่จะแสดงรูปแบบต่อผู้ใช้ปลายทาง


แสดงความคิดเห็นเกี่ยวกับประสบการณ์ของคุณในการใช้ Vertex AI in Firebase