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 lain yang memerlukan skema data yang telah 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 membuat entri terstruktur untuk resep yang selalu menyertakan nama resep, daftar bahan, dan langkah-langkahnya. 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 Anda belum melakukannya, selesaikan panduan memulai untuk SDK Vertex AI in Firebase. 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 Anda ke Firebase, termasuk mendaftarkan aplikasi dan menambahkan konfigurasi Firebase ke aplikasi Anda.

  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 menghasilkan respons, model akan 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 Anda:

  • Ukuran skema respons diperhitungkan 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 tetap 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 Vertex AI in Firebase SDK, semua kolom dianggap sebagai 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 oleh 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 diberikan.

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 desain prompt lebih lanjut sehingga Anda dapat memengaruhi model untuk menghasilkan output sesuai kebutuhan Anda.
  • Konfigurasikan parameter model untuk mengontrol cara model menghasilkan respons. Parameter ini mencakup token output maksimum, temperatur, 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.


Memberikan masukan tentang pengalaman Anda menggunakan Vertex AI in Firebase