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


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

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

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

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

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

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

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

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

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

  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 ตามที่ระบุไว้ในสคีมาการตอบกลับ (มีประโยชน์สำหรับข้อกำหนดเกี่ยวกับ Structured Data)

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

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

    enum
    items
    maxItems
    nullable
    properties
    required

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

  • โดยค่าเริ่มต้น ระบบจะถือว่าช่องทั้งหมดใน Vertex AI in Firebase SDK ต้องกรอก เว้นแต่คุณจะระบุว่าเป็นช่องที่ไม่บังคับในอาร์เรย์ 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 ของข้อความธรรมดา 1 ค่าซึ่งโมเดลจะเลือกจากรายการค่าที่กำหนดไว้ในสคีมาการตอบกลับที่มีให้

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

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

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

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


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