Halaman ini menunjukkan cara menggunakan flow Genkit sebagai tindakan server di aplikasi Next.js.
Sebelum memulai
Anda harus memahami konsep alur Genkit, dan cara menulisnya.
Membuat project Next.js
Jika belum memiliki project Next.js yang ingin Anda tambahkan fitur AI generatif, Anda dapat membuatnya untuk mengikuti halaman ini:
npx create-next-app@latest
Menginstal dependensi Genkit
Instal dependensi Genkit ke aplikasi Next.js, dengan cara yang sama seperti untuk project Genkit apa pun:
Instal library Genkit inti:
npm i --save genkit
Instal minimal satu plugin model.
Misalnya, untuk menggunakan AI Google:
npm i --save @genkit-ai/googleai
Atau untuk menggunakan Vertex AI:
npm i --save @genkit-ai/vertexai
Jika tidak menginstal Genkit CLI secara global, Anda dapat menginstalnya sebagai dependensi pengembangan. Alat tsx juga direkomendasikan, karena membuat pengujian kode Anda lebih praktis. Namun, kedua dependensi ini bersifat opsional.
npm i --save-dev genkit-cli tsx
Menentukan alur Genkit
Buat file baru di project Next.js untuk memuat alur Genkit Anda: misalnya, src/app/genkit.ts
. File ini dapat berisi alur Anda tanpa
perubahan; namun, karena Anda hanya dapat menjalankan alur dari backend server, Anda
harus menambahkan perintah 'use server'
ke bagian atas file.
Contoh:
'use server';
import { gemini15Flash, googleAI } from "@genkit-ai/googleai";
import { genkit, z } from "genkit";
const ai = genkit({
plugins: [googleAI()],
model: gemini15Flash,
});
export const menuSuggestionFlow = ai.defineFlow(
{
name: "menuSuggestionFlow",
inputSchema: z.string(),
outputSchema: z.string(),
},
async (restaurantTheme) => {
const { text } = await ai.generate({
model: gemini15Flash,
prompt: `Invent a menu item for a ${restaurantTheme} themed restaurant.`,
});
return text;
}
);
Memanggil flow
Sekarang, dalam kode frontend, Anda dapat mengimpor alur dan memanggilnya sebagai tindakan server.
Contoh:
'use client';
import { menuSuggestionFlow } from './genkit';
import { useState } from 'react';
export default function Home() {
const [menuItem, setMenuItem] = useState<string>('');
async function getMenuItem(formData: FormData) {
const theme = formData.get('theme')?.toString() ?? '';
const suggestion = await menuSuggestionFlow(theme);
setMenuItem(suggestion);
}
return (
<main>
<form action={getMenuItem}>
<label htmlFor="theme">
Suggest a menu item for a restaurant with this theme:{' '}
</label>
<input type="text" name="theme" id="theme" />
<br />
<br />
<button type="submit">Generate</button>
</form>
<br />
<pre>{menuItem}</pre>
</main>
);
}
Menguji aplikasi secara lokal
Jika ingin menjalankan aplikasi secara lokal, Anda harus menyediakan kredensial untuk layanan API model yang Anda pilih.
Gemini (AI Google)
Pastikan AI Google tersedia di region Anda.
Buat kunci API untuk Gemini API menggunakan Google AI Studio.
Tetapkan variabel lingkungan
GOOGLE_GENAI_API_KEY
ke kunci Anda:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
Di Konsol Cloud, Aktifkan API Vertex AI untuk project Anda.
Tetapkan beberapa variabel lingkungan dan gunakan alat
gcloud
untuk menyiapkan kredensial default aplikasi:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Kemudian, jalankan aplikasi secara lokal seperti biasa:
npm run dev
Semua alat pengembangan Genkit akan terus berfungsi seperti biasa. Misalnya, untuk memuat flow di UI developer:
npx genkit start -- npx tsx --watch src/app/genkit.ts
Men-deploy aplikasi
Saat men-deploy aplikasi, Anda harus memastikan kredensial untuk layanan eksternal apa pun yang Anda gunakan (seperti layanan API model yang Anda pilih) tersedia untuk aplikasi yang di-deploy. Lihat halaman berikut untuk mengetahui informasi khusus untuk platform deployment yang Anda pilih: