Mulai

Untuk mulai menggunakan Firebase Genkit, instal Genkit CLI dan jalankan genkit init di project Node.js. Bagian selanjutnya dari halaman ini akan menunjukkan caranya.

Persyaratan

Node.js 20 atau yang lebih baru.

Rekomendasi: nvm dan Alat nvm-windows adalah cara mudah untuk menginstal Node.

Instal Genkit

Instal Genkit CLI dengan menjalankan perintah berikut:

npm i -g genkit

Perintah ini menginstal Genkit CLI ke direktori penginstalan Node Anda, sehingga dapat digunakan di luar project Node.

Membuat dan menjelajahi proyek contoh

  1. Buat project Node baru:

    mkdir genkit-intro && cd genkit-intro
    npm init -y
    

    Lihat package.json dan pastikan kolom main ditetapkan ke lib/index.js.

  2. Inisialisasi project Genkit:

    genkit init
    
    1. Pilih Platform lain sebagai opsi platform deployment (template untuk Firebase Cloud Functions dan Google Cloud Run juga tersedia).

    2. Pilih model Anda:

      Gemini (AI Google)

      Cara termudah untuk memulai adalah menggunakan Gemini API AI Google. Pastikan Gemini API AI Google tersedia di region Anda.

      Buat kunci API untuk Gemini API menggunakan Google AI Studio. Lalu, tetapkan variabel lingkungan GOOGLE_GENAI_API_KEY ke kunci Anda:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      Jika Gemini API AI Google tidak tersedia di region Anda, pertimbangkan menggunakan API Vertex AI yang juga menawarkan Gemini dan model lainnya. Anda harus memiliki project Google Cloud yang mendukung penagihan, mengaktifkan API AI Platform, lalu menetapkan beberapa variabel lingkungan tambahan:

      gcloud services enable aiplatform.googleapis.com
      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      

      Lihat https://cloud.google.com/vertex-ai/generative-ai/pricing untuk mengetahui harga Vertex AI.

    3. Pilih jawaban default untuk pertanyaan lainnya, yang akan menginisialisasi folder project Anda dengan beberapa kode contoh.

    Perintah genkit init akan membuat contoh file sumber, index.ts, yang menentukan alur tunggal, menuSuggestionFlow, yang meminta LLM untuk menyarankan item untuk restoran dengan tema tertentu.

    File ini terlihat seperti berikut (langkah-langkah konfigurasi plugin akan mungkin akan terlihat berbeda jika Anda memilih Vertex AI):

    import * as z from 'zod';
    
    // Import the Genkit core libraries and plugins.
    import { generate } from '@genkit-ai/ai';
    import { configureGenkit } from '@genkit-ai/core';
    import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
    import { googleAI } from '@genkit-ai/googleai';
    
    // Import models from the Google AI plugin. The Google AI API provides access to
    // several generative models. Here, we import Gemini 1.5 Flash.
    import { gemini15Flash } from '@genkit-ai/googleai';
    
    configureGenkit({
      plugins: [
        // Load the Google AI plugin. You can optionally specify your API key
        // by passing in a config object; if you don't, the Google AI plugin uses
        // the value from the GOOGLE_GENAI_API_KEY environment variable, which is
        // the recommended practice.
        googleAI(),
      ],
      // Log debug output to tbe console.
      logLevel: 'debug',
      // Perform OpenTelemetry instrumentation and enable trace collection.
      enableTracingAndMetrics: true,
    });
    
    // Define a simple flow that prompts an LLM to generate menu suggestions.
    export const menuSuggestionFlow = defineFlow(
      {
        name: 'menuSuggestionFlow',
        inputSchema: z.string(),
        outputSchema: z.string(),
      },
      async (subject) => {
        // Construct a request and send it to the model API.
        const llmResponse = await generate({
          prompt: `Suggest an item for the menu of a ${subject} themed restaurant`,
          model: gemini15Flash,
          config: {
            temperature: 1,
          },
        });
    
        // Handle the response from the model API. In this sample, we just convert
        // it to a string, but more complicated flows might coerce the response into
        // structured output or chain the response into another LLM call, etc.
        return llmResponse.text();
      }
    );
    
    // Start a flow server, which exposes your flows as HTTP endpoints. This call
    // must come last, after all of your plug-in configuration and flow definitions.
    // You can optionally specify a subset of flows to serve, and configure some
    // HTTP server options, but by default, the flow server serves all defined flows.
    startFlowsServer();
    

    Saat membangun fitur AI aplikasi dengan Genkit, Anda mungkin akan membuat alur dengan beberapa langkah seperti pra-pemrosesan input, konstruksi prompt yang canggih, yang mengintegrasikan informasi eksternal sumber untuk retrieval-augmented generation (RAG), dan banyak lagi.

  3. Sekarang Anda dapat menjalankan dan menjelajahi fitur Genkit serta project contoh secara lokal di komputer Anda. Download dan mulai UI Developer Genkit:

    genkit start
    

    Selamat datang di UI Developer Genkit

    UI Developer Genkit kini berjalan di komputer Anda. Saat Anda menjalankan model atau flow di langkah berikutnya, mesin Anda akan melakukan tugas orkestrasi yang diperlukan agar langkah-langkah flow Anda berfungsi bersama; panggilan ke layanan eksternal seperti Gemini API akan terus dilakukan terhadap server langsung.

    Selain itu, karena Anda berada di lingkungan pengembangan, Genkit akan menyimpan trace dan status flow di file lokal.

  4. UI Developer Genkit akan didownload dan terbuka secara otomatis saat Anda menjalankan perintah genkit start.

    UI Developer memungkinkan Anda melihat flow yang telah ditentukan dan model yang telah dikonfigurasikan, menjalankannya, dan memeriksa trace operasi sebelumnya. Cobalah beberapa fitur berikut:

    • Pada tab Run, Anda akan melihat daftar semua flow yang telah ditentukan dan semua model yang telah dikonfigurasikan oleh plugin.

      Klik menuSuggestionFlow, lalu coba jalankan dengan beberapa teks input (misalnya, "cat"). Jika semuanya berjalan lancar, Anda akan mendapatkan saran menu untuk kucing restoran bertema tertentu.

    • Pada tab Inspect, Anda akan melihat histori eksekusi flow. Untuk setiap , Anda dapat melihat parameter yang diteruskan ke flow dan melacak setiap langkah saat mereka berjalan.

Langkah berikutnya

Lihat cara membangun dan men-deploy aplikasi Genkit dengan Firebase, Cloud Run, atau platform Node.js apa pun.