Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis

Cara Menggunakan Google Gen AI TypeScript/JavaScript SDK untuk Membuat Aplikasi AI Generatif yang Powerful

Mark Ponomarev

Mark Ponomarev

Updated on May 27, 2025

Dunia Kecerdasan Buatan (AI) berkembang pesat, dan Google berada di garis depan dengan model Gemini-nya yang canggih. Bagi pengembang TypeScript dan JavaScript yang ingin memanfaatkan kekuatan ini, Google Gen AI SDK menyediakan solusi yang komprehensif dan fleksibel. SDK ini memberdayakan Anda untuk dengan mudah membangun aplikasi yang didukung oleh Gemini 2.5 dan model mutakhir lainnya, menawarkan dukungan kuat untuk Gemini Developer API dan Vertex AI. Artikel ini akan menjadi panduan Anda untuk memahami dan memanfaatkan SDK ini, mencakup fitur-fitur utamanya mulai dari interaksi langsung secara real-time dan pemrosesan konten multimodal hingga Text-to-Speech (TTS), pembuatan gambar, dan banyak lagi.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
tombol

Pendahuluan: Menjembatani Kekuatan JavaScript dan Gemini

Google Gen AI JavaScript SDK dirancang dengan cermat untuk memungkinkan pengembang mengintegrasikan kemampuan AI generatif canggih Google ke dalam aplikasi web dan Node.js mereka. Baik Anda membangun chatbot yang canggih, alat pembuatan konten yang cerdas, atau aplikasi yang memahami dan menghasilkan berbagai jenis media, SDK ini menyediakan blok bangunan yang diperlukan.

Kekuatan utama SDK ini adalah pendekatan terpadunya untuk mengakses model Gemini, terlepas dari apakah model tersebut di-host di platform Gemini Developer (melalui kunci API dari Google AI Studio) atau platform Vertex AI Google Cloud. Fleksibilitas ini memungkinkan pengembang untuk memilih lingkungan yang paling sesuai dengan kebutuhan proyek mereka, mulai dari pembuatan prototipe cepat dengan kunci API hingga deployment tingkat produksi di Vertex AI dengan kemampuan MLOps-nya.

SDK ini dirancang untuk bekerja secara mulus dengan fitur Gemini terbaru, termasuk model Gemini 2.5 yang sangat dinanti-nantikan, memastikan pengembang memiliki akses ke AI tercanggih segera setelah tersedia.

Memulai: Instalasi dan Inisialisasi

Sebelum mendalami fitur-fitur canggih, mari kita bahas dasar-dasar pengaturan SDK.

Prasyarat:
Pastikan Anda memiliki Node.js versi 18 atau yang lebih baru terinstal di lingkungan pengembangan Anda.

Instalasi:
Menginstal SDK sangat mudah menggunakan npm:

npm install @google/genai

Inisialisasi - Gerbang Anda ke Gemini:
Semua interaksi dengan Gemini API, baik melalui Google AI Studio maupun Vertex AI, dimulai dengan membuat instance dari kelas GoogleGenAI.

1. Menggunakan Gemini Developer API (dengan Kunci API):
Ini sering kali merupakan cara tercepat untuk memulai, terutama untuk aplikasi sisi server atau proyek pribadi. Anda memerlukan kunci API dari Google AI Studio.

import { GoogleGenAI } from '@google/genai';

const GEMINI_API_KEY = process.env.GEMINI_API_KEY; // Atau kunci API Anda yang sebenarnya
const ai = new GoogleGenAI({ apiKey: GEMINI_API_KEY });

async function run() {
  // Contoh: Menghasilkan konten teks
  const model = ai.models.generateContent({
    model: "gemini-pro", // Atau model Gemini 2.5 tertentu seperti "gemini-2.5-flash-001"
    contents: [{ role: "user", parts: [{ text: "Jelaskan pentingnya Google Gen AI SDK." }] }]
  });
  const response = await model;
  console.log(response.text);
}

run();
Perhatian tentang Keamanan Kunci API:

2. Menggunakan Vertex AI:
Untuk aplikasi yang membutuhkan ketahanan dan skalabilitas Google Cloud, menginisialisasi SDK untuk Vertex AI adalah cara yang tepat. Ini melibatkan penentuan ID proyek Google Cloud dan lokasi Anda.

import { GoogleGenAI } from '@google/genai';

const ai = new GoogleGenAI({
    vertexai: true,
    project: 'your-gcp-project-id',
    location: 'your-gcp-location', // contoh: 'us-central1'
});

async function runVertex() {
  // Contoh: Menghasilkan konten teks dengan Vertex AI
  const model = ai.models.generateContent({
    model: "gemini-1.5-pro-preview-0409", // Contoh model Vertex AI
    contents: [{ role: "user", parts: [{ text: "Apa manfaat menggunakan Vertex AI dengan Gen AI SDK?" }] }]
  });
  const response = await model;
  console.log(response.text);
}

runVertex();

Pemilihan Versi API:
Secara default, SDK memanfaatkan endpoint API beta untuk menyediakan akses awal ke fitur pratinjau. Namun, untuk aplikasi yang membutuhkan stabilitas, Anda dapat secara eksplisit memilih versi API v1 (stabil) atau versi API spesifik lainnya (seperti v1alpha untuk fitur pratinjau tertentu di Gemini API) selama inisialisasi:

Untuk Vertex AI (mengatur ke v1):

const ai = new GoogleGenAI({
    vertexai: true,
    project: 'your-gcp-project-id',
    location: 'your-gcp-location',
    apiVersion: 'v1'
});

Untuk Gemini Developer API (mengatur ke v1alpha untuk fitur seperti ai.live):

const ai = new GoogleGenAI({
    apiKey: 'YOUR_GEMINI_API_KEY',
    apiVersion: 'v1alpha'
});

Struktur Inti SDK: Objek GoogleGenAI

Setelah diinisialisasi, objek ai (sebuah instance dari GoogleGenAI) adalah antarmuka utama Anda ke kemampuan SDK. Ini menyediakan akses ke berbagai submoule, masing-masing melayani fungsionalitas spesifik:

  • ai.models: Ini bisa dibilang submoule yang paling sering digunakan. Ini adalah gerbang Anda untuk berinteraksi dengan model generatif itu sendiri. Melalui ai.models, Anda dapat:
  • Menghasilkan konten teks (generateContent, generateContentStream).
  • Menghasilkan gambar (generateImages).
  • Menghitung embedding untuk teks (embedContent).
  • Menghitung token dalam prompt Anda (countTokens).
  • (Hanya Vertex AI) Menghitung informasi token terperinci (computeTokens).
  • ai.caches: (Pratinjau) Untuk aplikasi yang berulang kali menggunakan prefiks prompt yang besar, caching dapat secara signifikan mengurangi biaya dan latensi. Submoule ai.caches memungkinkan Anda membuat dan mengelola cache ini.
  • ai.chats: Menyederhanakan pengembangan pengalaman percakapan multi-giliran. ai.chats memungkinkan Anda membuat objek obrolan lokal yang stateful yang secara otomatis mengelola riwayat percakapan, sehingga lebih mudah untuk membangun chatbot interaktif.
  • ai.files: (Hanya Gemini API) Memungkinkan Anda mengunggah file (seperti gambar, audio, atau video untuk prompt multimodal) ke API. File-file ini kemudian dapat direferensikan dalam prompt Anda. Ini sangat berguna untuk file besar yang tidak dapat dikirim secara inline atau untuk file yang ingin Anda gunakan kembali di beberapa panggilan API, sehingga mengurangi bandwidth.
  • ai.live: (Pratinjau, hanya Gemini API v1alpha) Submoule yang menarik ini memungkinkan komunikasi dua arah secara real-time dengan model Gemini. Ini dirancang untuk aplikasi yang membutuhkan interaksi segera, mendukung input teks, audio, dan video, dengan output teks atau audio. Ini adalah dasar untuk membangun pengalaman AI yang benar-benar dinamis dan responsif.

Membangun Aplikasi dengan Model Gemini 2.5

SDK adalah jalur langsung Anda ke kekuatan model Gemini 2.5 (dan versi sebelumnya seperti Gemini 1.0 Pro, 1.5 Pro, dan 1.5 Flash). Untuk menggunakan model spesifik, Anda cukup merujuk namanya dalam parameter model dari metode seperti ai.models.generateContent() atau saat membuat sesi obrolan dengan ai.chats.create().

Misalnya, untuk menggunakan model gemini-2.5-flash-001 (nama hipotetis, ganti dengan pengenal model aktual saat dirilis):

const response = await ai.models.generateContent({
  model: 'gemini-2.5-flash-001', // Gunakan pengenal model spesifik
  contents: [{ role: "user", parts: [{ text: "Ceritakan tentang kemajuan utama dalam Gemini 2.5." }] }]
});
console.log(response.text);

SDK menangani panggilan API yang mendasarinya, memungkinkan Anda untuk fokus pada penyusunan prompt Anda dan memproses konten yang dihasilkan. Saat Google merilis model baru dan memperbarui yang sudah ada, Anda biasanya dapat beralih ke model tersebut hanya dengan mengubah string pengenal model, membuatnya mudah untuk menjaga aplikasi Anda tetap mutakhir.

Mendalami: Pemrosesan Konten Multimodal (MCP)

Salah satu aspek paling kuat dari model Gemini adalah kemampuannya untuk memahami dan menghasilkan konten di berbagai modalitas (teks, gambar, audio, video). Google Gen AI SDK sepenuhnya mendukung ini, memungkinkan Anda membangun aplikasi multimodal yang kaya.

MCP terutama dicapai melalui parameter contents dalam metode seperti generateContent dan sendMessage (dalam obrolan). Array contents mengambil serangkaian objek Content, yang masing-masing dapat berisi beberapa objek Part. Setiap Part dapat mewakili jenis data yang berbeda.

Struktur Konten Multimodal:

  • Objek Content: Mewakili satu giliran dalam percakapan atau satu blok input. Biasanya memiliki role (baik "user" atau "model") dan array parts.
  • Objek Part: Di sinilah data sebenarnya berada. Sebuah Part dapat berupa:
  • { text: "Prompt teks Anda" } untuk input tekstual.
  • { inlineData: { mimeType: "image/jpeg", data: "string_gambar_yang_diencode_base64" } } untuk menyematkan data gambar langsung dalam permintaan.
  • { fileData: { mimeType: "video/mp4", fileUri: "gs://bucket/object" } } untuk mereferensikan file yang diunggah melalui ai.files.upload() atau URI yang dapat diakses publik (terutama untuk Vertex AI).
  • Input video juga dapat menyertakan videoMetadata seperti startOffset dan endOffset untuk menentukan segmen tertentu dari file video.

Contoh: Prompt Multimodal (Teks dan Gambar):

import { GoogleGenAI } from '@google/genai';
// ... (Inisialisasi)

async function describeImage() {
  // Asumsikan 'base64ImageData' adalah string Base64 yang diencode dari gambar JPEG
  const base64ImageData = "..."; // Data gambar Base64 Anda

  const contents = [
    {
      role: "user",
      parts: [
        { text: "Apa yang ada di gambar ini?" },
        {
          inlineData: {
            mimeType: "image/jpeg",
            data: base64ImageData,
          },
        },
      ],
    },
  ];

  const response = await ai.models.generateContent({
    model: "gemini-pro-vision", // Atau model yang mendukung visi Gemini 2.5
    contents: contents,
  });
  console.log(response.text);
}

describeImage();

Kemampuan untuk memadukan berbagai jenis data dalam prompt Anda secara mulus membuka berbagai kemungkinan aplikasi, mulai dari sistem Tanya Jawab visual hingga alat yang menganalisis dan mendeskripsikan konten video. Meskipun SDK menyediakan metode langsung untuk pembuatan gambar, pembuatan video tidak secara eksplisit ditawarkan sebagai metode SDK langsung. Sebaliknya, video terutama ditangani sebagai modalitas input. Namun, model multimodal canggih yang diakses melalui generateContent mungkin mampu memproses dan menanggapi input video dengan cara yang canggih, seperti ringkasan atau menjawab pertanyaan tentang konten video.

Interaksi Real-time dengan Live API (ai.live)

Untuk aplikasi yang membutuhkan pengalaman interaktif dengan latensi rendah, submoule ai.live adalah pengubah permainan. Saat ini dalam Pratinjau dan membutuhkan versi API v1alpha untuk Gemini API, ai.live membangun koneksi WebSocket untuk streaming dua arah dengan model Gemini. Ini memungkinkan transmisi real-time potongan teks, audio, dan bahkan frame video sebagai input, dan menerima teks atau audio sebagai output.

Konsep Utama ai.live:

  1. ai.live.connect(params): Ini adalah titik masuk. Anda menyediakan parameter seperti nama model (model), konfigurasi koneksi (config), dan fungsi callback (callbacks) untuk berbagai peristiwa WebSocket (misalnya, onopen, onmessage, onerror, onclose). Ini mengembalikan Promise yang menghasilkan objek Session.
  2. Objek Session: Mewakili koneksi WebSocket yang aktif. Ini memiliki metode untuk:
  • sendClientContent(params): Mengirim Content terstruktur (seperti dalam generateContent), cocok untuk pesan teks atau mengisi konteks percakapan sebelumnya.
  • sendRealtimeInput(params): Mengirim data Blob, dioptimalkan untuk aliran berkelanjutan potongan audio atau frame video (sebagai gambar). Metode ini dirancang untuk responsivitas, berpotensi mengorbankan jaminan urutan yang ketat jika dicampur dengan sendClientContent.
  • sendToolResponse(params): Mengirim respons kembali ke model jika pemanggilan fungsi digunakan dalam sesi live.
  • close(): Mengakhiri koneksi WebSocket.

Konfigurasi (LiveConnectParameters dan LiveConnectConfig):

  • model: Menentukan model Gemini untuk dihubungkan (misalnya, model eksperimental seperti 'gemini-2.0-flash-exp' seperti yang ditunjukkan dalam contoh dokumentasi, atau model lain yang kompatibel dengan v1alpha).
  • config.responseModalities: Array yang menentukan jenis output yang diinginkan, misalnya, [Modality.AUDIO, Modality.TEXT]. Defaultnya adalah Modality.AUDIO jika tidak ditentukan.
  • config.speechConfig: Konfigurasi untuk output Text-to-Speech (lebih lanjut tentang ini nanti).
  • config.systemInstruction: Instruksi tingkat sistem untuk memandu model.
  • config.tools: Deklarasi untuk pemanggilan fungsi.

Callbacks (LiveCallbacks):

  • onopen: Dipanggil ketika koneksi WebSocket berhasil dibuat.
  • onmessage: Dipanggil ketika pesan (misalnya, teks yang dihasilkan, data audio, panggilan alat) diterima dari server.
  • onerror: Dipanggil jika terjadi kesalahan pada koneksi WebSocket.
  • onclose: Dipanggil ketika koneksi ditutup.

Contoh: Pengaturan Dasar ai.live (Konseptual):

import { GoogleGenAI, Modality } from '@google/genai';

// Pastikan Anda menginisialisasi dengan apiVersion: 'v1alpha' untuk Gemini API
const ai = new GoogleGenAI({ apiKey: 'YOUR_GEMINI_API_KEY', apiVersion: 'v1alpha' });

async function startLiveSession() {
  try {
    const session = await ai.live.connect({
      model: 'gemini-pro', // Atau model spesifik yang mendukung live, periksa dokumentasi
      config: {
        responseModalities: [Modality.TEXT, Modality.AUDIO], // Harapkan teks dan audio kembali
        // speechConfig: { ... } // Untuk TTS, dibahas di bawah
      },
      callbacks: {
        onopen: () => console.log('Sesi live terhubung!'),
        onmessage: (serverMessage) => {
          // Memproses pesan dari server
          // Ini bisa berupa teks, data audio, panggilan alat, dll.
          console.log('Diterima dari server:', serverMessage);
          if (serverMessage.speechUpdate?.audio) {
            // Menangani data audio yang masuk (misalnya, memutarnya)
            const audioBytes = serverMessage.speechUpdate.audio;
            // ... logika pemutaran audio Anda ...
          }
          if (serverMessage.textUpdate?.text) {
             console.log("Teks: ", serverMessage.textUpdate.text);
          }
        },
        onerror: (error) => console.error('Kesalahan sesi live:', error),
        onclose: () => console.log('Sesi live ditutup.'),
      },
    });

    // Sekarang Anda dapat mengirim pesan
    session.sendClientContent({ turns: [{ role: 'user', parts: [{text: 'Halo, Gemini live!'}] }] });

    // Untuk input audio berkelanjutan:
    // navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {
    //   const mediaRecorder = new MediaRecorder(stream);
    //   mediaRecorder.ondataavailable = event => {
    //     if (event.data.size > 0) {
    //       session.sendRealtimeInput({ media: { mediaChunks: [event.data] } });
    //     }
    //   };
    //   mediaRecorder.start(1000); // Kirim potongan audio setiap detik
    // });

    // Ingat untuk menutup sesi setelah selesai
    // session.close();

  } catch (error) {
    console.error('Gagal menghubungkan sesi live:', error);
  }
}

startLiveSession();

Modul ai.live sangat ampuh untuk membangun aplikasi yang terasa benar-benar percakapan dan responsif, bereaksi secara real-time terhadap input pengguna di berbagai modalitas.

Model dan Kemampuan Text-to-Speech (TTS)

SDK memfasilitasi pembuatan Text-to-Speech (TTS), terutama melalui antarmuka ai.live saat output audio diminta. Ini memungkinkan model Gemini untuk merespons tidak hanya dengan teks, tetapi dengan audio yang diucapkan.

Konfigurasi TTS (SpeechConfig dan VoiceConfig):

Saat Anda membuat koneksi live menggunakan ai.live.connect(), Anda dapat menentukan speechConfig dalam parameter config.

  • SpeechConfig: Objek ini saat ini memiliki satu properti utama:
  • voiceConfig: Objek untuk menentukan suara yang diinginkan untuk output TTS.
  • VoiceConfig:
  • prebuiltVoice: Anda dapat menentukan nama suara bawaan (misalnya, 'aura-asteria-en', 'aura-luna-en' sesuai dengan penawaran potensial Google – selalu merujuk pada dokumentasi resmi terbaru untuk nama suara yang tersedia).
  • customVoice: (Berpotensi) Untuk menggunakan suara yang dilatih khusus jika didukung oleh API.

Contoh: Meminta Output Audio dalam Sesi Live:

// Dalam parameter ai.live.connect:
// ...
config: {
  responseModalities: [Modality.AUDIO], // Penting untuk TTS
  speechConfig: {
    voiceConfig: {
      // Ganti dengan nama suara bawaan yang benar-benar tersedia
      prebuiltVoice: 'aura-asteria-en',
    }
  }
},
callbacks: {
  onmessage: (serverMessage) => {
    if (serverMessage.speechUpdate?.audio) {
      const audioData = serverMessage.speechUpdate.audio; // Ini adalah ArrayBuffer
      // Logika untuk memutar data audio ini di browser atau menyimpannya di Node.js
      // Misalnya, di browser:
      // const audioBlob = new Blob([audioData], { type: 'audio/mpeg' }); // Atau tipe MIME yang sesuai
      // const audioUrl = URL.createObjectURL(audioBlob);
      // new Audio(audioUrl).play();
      console.log('Menerima data audio untuk TTS.');
    }
    if (serverMessage.textUpdate?.text) {
        console.log("Teks yang menyertai (jika ada):", serverMessage.textUpdate.text)
    }
  },
  // ... callbacks lainnya
},
// ...

Saat dikonfigurasi untuk output audio, callback onmessage dalam sesi live Anda akan menerima objek ServerMessage. Jika pesan berisi ucapan, bidang speechUpdate.audio akan berisi data audio (biasanya sebagai ArrayBuffer). Anda kemudian dapat memproses data ini untuk memutarnya kembali kepada pengguna atau menyimpannya sebagai file audio. Bidang textUpdate.text juga dapat diisi dengan versi teks dari ucapan tersebut.

Integrasi TTS langsung ke dalam alur percakapan live ini menjadikan SDK ideal untuk aplikasi yang mengutamakan suara, asisten interaktif, dan fitur aksesibilitas.

Model Pembuatan Gambar

SDK menyediakan metode khusus untuk menghasilkan gambar menggunakan model seperti Imagen: ai.models.generateImages(). Metode ini memungkinkan Anda memberikan prompt teks dan menerima data gambar yang dihasilkan.

Menggunakan ai.models.generateImages():

Metode ini mengambil GenerateImagesParameters, yang meliputi:

  • model: Pengenal model pembuatan gambar (misalnya, 'imagen-3.0-generate-002' – selalu periksa dokumentasi untuk nama model saat ini).
  • prompt: Deskripsi tekstual dari gambar yang ingin Anda hasilkan.
  • config (Opsional GenerateImagesConfig):
  • numberOfImages: Jumlah kandidat gambar yang akan dihasilkan (default seringkali 1).
  • negativePrompt: Deskripsi tentang apa yang tidak Anda inginkan dalam gambar.
  • seed: Angka untuk mengontrol keacakan demi hasil yang dapat direproduksi.
  • aspectRatio: Rasio aspek yang diinginkan (misalnya, "1:1", "16:9").
  • includeRaiReason: Apakah akan menyertakan alasan jika gambar gagal dalam pemeriksaan Responsible AI.
  • Dan parameter spesifik model lainnya.

Contoh: Menghasilkan Gambar:

import { GoogleGenAI } from '@google/genai';
// ... (Inisialisasi untuk Vertex AI, karena Imagen seringkali merupakan layanan Vertex AI)
const ai = new GoogleGenAI({ vertexai: true, project: 'your-gcp-project-id', location: 'your-gcp-location' });


async function createImage() {
  try {
    const response = await ai.models.generateImages({
      model: 'imagen-3.0-generate-002', // Periksa dokumentasi untuk model terbaru
      prompt: 'Pemandangan kota futuristik saat matahari terbenam, dengan kendaraan terbang dan lampu neon.',
      config: {
        numberOfImages: 1,
        aspectRatio: '16:9',
        includeRaiReason: true,
      },
    });

    if (response?.generatedImages && response.generatedImages.length > 0) {
      const imageBytesBase64 = response.generatedImages[0]?.image?.imageBytes;
      if (imageBytesBase64) {
        // imageBytesBase64 adalah string yang diencode Base64 dari gambar
        console.log('Gambar dihasilkan (diencode Base64)!');
        // Anda kemudian dapat menampilkan gambar ini di browser (misalnya, <img src="data:image/png;base64,..." />)
        // atau menyimpannya ke file di Node.js
      }
    } else {
      console.log('Tidak ada gambar yang dihasilkan atau difilter RAI:', response?.raiFilteredReason);
    }
  } catch (error) {
    console.error('Kesalahan saat menghasilkan gambar:', error);
  }
}

createImage();

Respons (GenerateImagesResponse) akan berisi array objek GeneratedImage. Setiap objek dapat menyertakan data gambar (seringkali sebagai imageBytes dalam format Base64), raiFilteredReason jika difilter, dan metadata lainnya.

Pemrosesan Video (sebagai Input)

Seperti yang disorot sebelumnya, SDK terutama memperlakukan video sebagai modalitas input daripada output yang dihasilkan. Anda dapat menyertakan data video dalam prompt Anda ke model Gemini multimodal dengan beberapa cara:

Mengunggah File Video (ai.files.upload() - Gemini API):
Anda dapat mengunggah file video (misalnya, MP4) menggunakan submoule ai.files. Setelah diunggah, Anda menerima URI file yang dapat direferensikan dalam bagian fileData dari objek Content Anda.

// Contoh konseptual untuk unggah file (Gemini API)
// const uploadedFile = await ai.files.upload({
//   file: pathToYourVideoFile, // Atau Blob di browser
//   mimeType: 'video/mp4',
//   displayName: 'my-cool-video.mp4'
// });
// const videoFileUri = uploadedFile.uri;

const contents = [{
  role: "user",
  parts: [
    { text: "Ringkas video ini." },
    { fileData: { mimeType: "video/mp4", fileUri: "URI_VIDEO_YANG_ANDA_UNGGAH_DI_SINI" } },
    // Opsional, tambahkan VideoMetadata
    // { videoMetadata: { startOffset: "0s", endOffset: "30s" } } // Proses 30 detik pertama
  ]
}];

Menggunakan URI Google Cloud Storage (Vertex AI):
Saat menggunakan Vertex AI, Anda dapat langsung mereferensikan file video yang disimpan di bucket Google Cloud Storage menggunakan URI gs:// mereka di bagian fileData.

Frame Video Live (ai.live):
Seperti yang dibahas di bagian ai.live, Anda dapat mengirim frame video individual (sebagai objek Blob, kemungkinan tipe mime gambar seperti image/jpeg atau image/png) menggunakan session.sendRealtimeInput(). Ini memungkinkan analisis atau interaksi real-time berdasarkan feed video live.

Antarmuka VideoMetadata, dengan startOffset dan endOffset, memungkinkan Anda menentukan segmen file video mana yang harus difokuskan oleh model, yang berguna untuk memproses video panjang.

Dukungan Gemini API vs. Vertex AI: Pendekatan Ganda

Keunggulan signifikan dari Google Gen AI SDK adalah dukungan mulusnya untuk Gemini Developer API (melalui Google AI Studio) dan Vertex AI. Dukungan ganda ini menawarkan fleksibilitas kepada pengembang dan jalur peningkatan yang jelas.

  • Gemini Developer API (Google AI Studio):
  • Kelebihan: Pengaturan cepat dengan kunci API, ideal untuk pembuatan prototipe cepat, proyek pribadi, dan aplikasi sisi server di mana pengelolaan infrastruktur cloud kurang diinginkan. Seringkali menyediakan akses lebih awal ke fitur dan model eksperimental terbaru.
  • Kekurangan: Kunci API tidak boleh diekspos di sisi klien. Fitur seperti ai.files dan ai.live spesifik untuk API ini (atau versi v1alpha-nya). Batas kecepatan dan kuota mungkin berbeda dari Vertex AI.
  • Vertex AI:
  • Kelebihan: Platform tingkat produksi dengan kemampuan MLOps yang kuat, IAM untuk keamanan, integrasi dengan layanan Google Cloud lainnya, dan seringkali kuota yang lebih tinggi cocok untuk aplikasi skala besar. Ketersediaan model bisa lebih terkurasi dan stabil.
  • Kekurangan: Membutuhkan proyek Google Cloud dan keakraban dengan konsep GCP. Inisialisasi sedikit lebih rumit (ID proyek, lokasi). Beberapa fitur eksperimental yang sangat baru mungkin pertama kali muncul di Gemini API.

SDK mengabstraksi banyak perbedaan. Metode inti seperti ai.models.generateContent() bekerja serupa untuk keduanya, dengan perbedaan utama adalah inisialisasi (apiKey vs. vertexai: true, project, location). Ini memungkinkan Anda untuk memulai dengan Gemini API dan bermigrasi ke Vertex AI seiring dengan kematangan dan skala aplikasi Anda, tanpa menulis ulang seluruh logika AI Anda. Dokumentasi untuk metode seringkali menentukan apakah fitur atau parameter unik untuk satu platform.

Kesimpulan: Toolkit Anda untuk Aplikasi AI Generasi Berikutnya

Google Gen AI TypeScript/JavaScript SDK adalah toolkit yang kuat dan serbaguna yang membawa kemampuan Gemini 2.5 dan model canggih lainnya langsung ke pengembang JavaScript. Dukungannya untuk konten multimodal, interaksi real-time melalui Live API, TTS terintegrasi, pembuatan gambar, dan fleksibilitas untuk memilih antara Gemini Developer API dan Vertex AI menjadikannya sumber daya yang sangat diperlukan.

Dengan memahami struktur SDK, modul intinya (ai.models, ai.live, ai.chats, ai.files, ai.caches), dan nuansa prompt multimodal, Anda diperlengkapi dengan baik untuk membangun aplikasi inovatif yang dapat melihat, mendengar, berbicara, dan memahami dunia dengan cara yang lebih kaya dari sebelumnya. Seiring Google terus mendorong batas-batas AI, SDK ini akan menjadi kunci Anda untuk membuka potensi tersebut dalam proyek JavaScript dan TypeScript Anda. Selami, bereksperimen, dan bangun masa depan aplikasi bertenaga AI hari ini!

Saya telah menghasilkan artikel berdasarkan informasi yang dikumpulkan dari direktori README.md dan docs. Ini mencakup semua topik yang ditentukan dan bertujuan untuk jumlah kata yang diminta.