Membuat output terstruktur (seperti JSON) menggunakan Gemini API


Gemini API menampilkan respons sebagai teks tidak terstruktur secara default. Namun, beberapa kasus penggunaan memerlukan teks terstruktur, seperti JSON. Misalnya, Anda mungkin menggunakan respons untuk tugas downstream lainnya yang memerlukan skema data yang sudah ditetapkan.

Untuk memastikan bahwa output yang dihasilkan model selalu mematuhi skema tertentu, Anda dapat menentukan skema respons, yang berfungsi seperti cetak biru untuk respons model. Kemudian, Anda dapat langsung mengekstrak data dari output model dengan lebih sedikit pascapemrosesan.

Berikut beberapa contohnya:

  • Pastikan respons model menghasilkan JSON yang valid dan sesuai dengan skema yang Anda berikan.
    Misalnya, model dapat menghasilkan entri terstruktur untuk resep yang selalu menyertakan nama resep, daftar bahan, dan langkah-langkah. Kemudian, Anda dapat lebih mudah mengurai dan menampilkan informasi ini di UI aplikasi.

  • Batasi cara model merespons selama tugas klasifikasi.
    Misalnya, Anda dapat meminta model menganotasi teks dengan kumpulan label tertentu (misalnya, kumpulan enum tertentu seperti positive dan negative), bukan label yang dihasilkan model (yang dapat memiliki tingkat variabilitas seperti good, positive, negative, atau bad).

Panduan ini menunjukkan cara membuat output JSON dengan memberikan responseSchema dalam panggilan ke generateContent. Model ini berfokus pada input teks saja, tetapi Gemini juga dapat menghasilkan respons terstruktur untuk permintaan multimodal yang menyertakan gambar, video, dan audio sebagai input.

Di bagian bawah halaman ini terdapat contoh lainnya, seperti cara membuat nilai enum sebagai output. Untuk melihat contoh tambahan tentang cara membuat output terstruktur, lihat daftar Contoh skema dan respons model dalam dokumentasi Google Cloud.

Sebelum memulai

Jika belum melakukannya, selesaikan panduan memulai untuk Vertex AI in Firebase SDK. Pastikan Anda telah melakukan semua hal berikut:

  1. Siapkan project Firebase baru atau yang sudah ada, termasuk menggunakan paket harga Blaze dan mengaktifkan API yang diperlukan.

  2. Hubungkan aplikasi ke Firebase, termasuk mendaftarkan aplikasi dan menambahkan konfigurasi Firebase ke aplikasi.

  3. Tambahkan SDK dan lakukan inisialisasi layanan Vertex AI dan model generatif di aplikasi Anda.

Setelah menghubungkan aplikasi ke Firebase, menambahkan SDK, dan melakukan inisialisasi layanan Vertex AI dan model generatif, Anda siap memanggil Gemini API.

Langkah 1: Tentukan skema respons

Tentukan skema respons untuk menentukan struktur output model, nama kolom, dan jenis data yang diharapkan untuk setiap kolom.

Saat membuat respons, model menggunakan nama kolom dan konteks dari perintah Anda. Agar intent Anda jelas, sebaiknya gunakan struktur yang jelas, nama kolom yang tidak ambigu, dan bahkan deskripsi sesuai kebutuhan.

Pertimbangan untuk skema respons

Perhatikan hal-hal berikut saat menulis skema respons:

  • Ukuran skema respons dihitung dalam batas token input.

  • Fitur skema respons mendukung jenis MIME respons berikut:

    • application/json: JSON output seperti yang ditentukan dalam skema respons (berguna untuk persyaratan output terstruktur)

    • text/x.enum: menampilkan nilai enum seperti yang ditentukan dalam skema respons (berguna untuk tugas klasifikasi)

  • Fitur skema respons mendukung kolom skema berikut:

    enum
    items
    maxItems
    nullable
    properties
    required

    Jika Anda menggunakan kolom yang tidak didukung, model masih dapat menangani permintaan Anda, tetapi akan mengabaikan kolom tersebut. Perhatikan bahwa daftar di atas adalah subset dari objek skema OpenAPI 3.0 (lihat referensi skema Vertex AI).

  • Secara default, untuk SDK Vertex AI in Firebase, semua kolom dianggap wajib kecuali jika Anda menentukannya sebagai opsional dalam array optionalProperties. Untuk kolom opsional ini, model dapat mengisi kolom atau melewatinya.

    Perhatikan bahwa ini berlawanan dengan perilaku default untuk Vertex AI Gemini API.

Langkah 2: Kirim perintah dengan skema respons untuk membuat JSON

Contoh berikut menunjukkan cara membuat output JSON terstruktur.

Untuk menghasilkan output terstruktur, Anda perlu menentukan selama inisialisasi model responseMimeType yang sesuai (dalam contoh ini, application/json) serta responseSchema yang ingin Anda gunakan model.

Penggunaan responseSchema didukung oleh Gemini 1.5 Pro dan Gemini 1.5 Flash.

Pelajari cara memilih model Gemini dan secara opsional lokasi yang sesuai untuk kasus penggunaan dan aplikasi Anda.

Contoh tambahan

Untuk melihat contoh tambahan tentang cara menggunakan dan membuat output terstruktur, lihat daftar Contoh skema dan respons model dalam dokumentasi Google Cloud.

Membuat nilai enum sebagai output

Contoh berikut menunjukkan cara menggunakan skema respons untuk tugas klasifikasi. Model diminta untuk mengidentifikasi genre film berdasarkan deskripsinya. Outputnya adalah satu nilai enum teks biasa yang dipilih model dari daftar nilai yang ditentukan dalam skema respons yang disediakan.

Untuk melakukan tugas klasifikasi terstruktur ini, Anda perlu menentukan selama inisialisasi model responseMimeType yang sesuai (dalam contoh ini, text/x.enum) serta responseSchema yang ingin digunakan model.

Pelajari cara memilih model Gemini dan secara opsional lokasi yang sesuai untuk kasus penggunaan dan aplikasi Anda.

Opsi lain untuk mengontrol pembuatan konten

  • Pelajari lebih lanjut desain perintah agar Anda dapat memengaruhi model untuk menghasilkan output yang spesifik untuk kebutuhan Anda.
  • Konfigurasikan parameter model untuk mengontrol cara model menghasilkan respons. Parameter ini mencakup token output maksimum, suhu, topK, dan topP.
  • Gunakan setelan keamanan untuk menyesuaikan kemungkinan mendapatkan respons yang mungkin dianggap berbahaya, termasuk ujaran kebencian dan konten seksual vulgar.
  • Tetapkan petunjuk sistem untuk mengarahkan perilaku model. Fitur ini seperti "preamble" yang Anda tambahkan sebelum model diekspos ke petunjuk lebih lanjut dari pengguna akhir.


Berikan masukan tentang pengalaman Anda dengan Vertex AI in Firebase