Tutorial ini menunjukkan cara mem-build aplikasi percakapan yang memungkinkan pengguna meringkas video YouTube dan melakukan chat tentang kontennya menggunakan bahasa alami.
- Menyiapkan project
- Mengimpor dependensi yang diperlukan
- Mengonfigurasi Genkit dan model default
- Mendapatkan URL video dari command line
- Menyiapkan perintah
- Buat respons
- Menjalankan aplikasi
Prasyarat
Sebelum memulai pekerjaan, Anda harus menyiapkan prasyarat berikut:
Langkah-Langkah Penerapan
Setelah menyiapkan dependensi, Anda dapat mem-build project.
1. Menyiapkan project
Buat struktur direktori dan file untuk menyimpan kode sumber Anda.
$ mkdir -p summarize-a-video/src && \ cd summarize-a-video && \ touch src/index.ts
Lakukan inisialisasi project TypeScript baru.
$ npm init -y
Instal dependensi Genkit berikut untuk menggunakan Genkit dalam project Anda:
$ npm i genkit @genkit-ai/googleai
genkit
menyediakan kemampuan inti Genkit.@genkit-ai/googleai
menyediakan akses ke model Gemini Google AI.
Mendapatkan dan mengonfigurasi kunci API model
Untuk menggunakan Gemini API, yang digunakan tutorial ini, Anda harus mengonfigurasi kunci API terlebih dahulu. Jika Anda belum memilikinya, buat kunci di Google AI Studio.
Gemini API menyediakan paket gratis yang melimpah dan tidak memerlukan kartu kredit untuk memulai.
Setelah membuat kunci API, tetapkan variabel lingkungan
GEMINI_API_KEY
ke kunci Anda dengan perintah berikut:$ export GEMINI_API_KEY=<your API key>
2. Mengimpor dependensi yang diperlukan
Dalam file index.ts
yang Anda buat, tambahkan
baris berikut untuk mengimpor dependensi yang diperlukan untuk project ini:
import { gemini, googleAI } from '@genkit-ai/googleai';
import { genkit } from 'genkit';
- Baris pertama mengimpor plugin
googleAI
dan fungsi loader modelgemini
dari paket@genkit-ai/googleai
, yang memungkinkan akses ke model Gemini Google.
3. Mengonfigurasi Genkit dan model default
Tambahkan baris berikut untuk mengonfigurasi Genkit dan menetapkan Gemini 2.0 Flash sebagai model default.
const ai = genkit({
plugins: [googleAI()],
model: gemini('gemini-2.0-flash'),
});
Kemudian, Anda dapat menambahkan kerangka untuk kode dan penanganan error.
(async () => {
try {
// Step 1: get command line arguments
// Step 2: construct prompt
// Step 3: process video
} catch (error) {
console.error("Error processing video:", error);
}
})(); // <-- don't forget the trailing parentheses to call the function!
4. Mengurai command line dan mendapatkan URL video
Tambahkan kode untuk membaca URL video yang diteruskan dari command line.
// Step 1: get command line arguments
const videoURL = process.argv[2];
if (!videoURL) {
console.error("Please provide a video URL as a command line argument.");
process.exit(1);
}
5. Menyiapkan dialog
Tambahkan kode untuk menyiapkan perintah:
// Step 2: construct prompt
const prompt = process.argv[3] || "Please summarize the following video:";
- Deklarasi
const
ini menentukan perintah default jika pengguna tidak meneruskan salah satu perintahnya dari command line.
6. Membuat respons
Tambahkan kode berikut untuk meneruskan perintah multimodal ke model:
// Step 3: process video
const { text } = await ai.generate({
prompt: [
{ text: prompt },
{ media: { url: videoURL, contentType: "video/mp4" } }
],
});
console.log(text);
Cuplikan kode ini memanggil metode ai.generate
untuk mengirim perintah multimodal ke
model. Perintah ini terdiri dari dua bagian:
{ text: prompt }
: Ini adalah perintah teks yang Anda tentukan sebelumnya.{ media: { url: videoURL, contentType: "video/mp4" } }
: Ini adalah URL video yang Anda berikan sebagai argumen command line.contentType
ditetapkan kevideo/mp4
untuk menunjukkan bahwa URL mengarah ke file video MP4.
Metode ai.generate
menampilkan objek yang berisi teks yang dihasilkan, yang kemudian dicatat ke konsol.
7. Menjalankan aplikasi
Untuk menjalankan aplikasi, buka terminal di folder root project Anda, lalu jalankan perintah berikut:
npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q
Setelah beberapa saat, ringkasan video yang Anda berikan akan muncul.
Anda juga dapat meneruskan perintah lain. Contoh:
npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q "Transcribe this video"