Memulai Genkit menggunakan Go (alfa)

Library Firebase Genkit untuk Go kini tersedia untuk pratinjau. Karena library Go saat ini masih dalam versi Alfa, Anda mungkin melihat perubahan API dan fungsi seiring dengan kemajuan perkembangan. Sebaiknya gunakan hanya untuk pembuatan prototipe dan eksplorasi.

Jika Anda menemukan masalah terkait library atau dokumentasi ini, laporkan di repositori GitHub kami.

Untuk mulai menggunakan Genkit, instal Genkit CLI dan jalankan genkit init dalam project Go. Bagian selanjutnya dari halaman ini akan menunjukkan caranya.

Persyaratan

  • Go versi 1.22 atau yang lebih baru. Lihat Mendownload dan menginstal di dokumen Go resmi.

  • Node.js 20 atau yang lebih baru (untuk Genkit CLI dan UI). Lihat bagian berikutnya untuk melihat panduan singkat tentang cara menginstal Node.

Menginstal Genkit

  1. Jika Anda belum memiliki Node 20 atau versi yang lebih baru di sistem, instal sekarang.

    Rekomendasi: Alat nvm dan nvm-windows merupakan cara mudah untuk menginstal versi Node tertentu jika belum diinstal di sistem Anda. Alat-alat ini akan menginstal Node per pengguna, sehingga Anda tidak perlu membuat perubahan di seluruh sistem.

    Untuk menginstal nvm:

    Linux, macOS, dll.

    Jalankan perintah berikut:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    

    Windows

    Download dan jalankan penginstal seperti yang dijelaskan di dokumen nvm-windows.

    Kemudian, untuk menginstal Node dan npm, buka shell baru dan jalankan perintah berikut:

    nvm install 20
    
  2. 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 project contoh

  1. Buat direktori project baru:

    mkdir genkit-intro && cd genkit-intro
    
  2. Inisialisasi project Genkit:

    genkit init
    
    1. Pilih Go sebagai lingkungan runtime.

    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 harga Vertex AI.

    3. Tentukan hal apa pun untuk nama modul. Contoh: example/genkit-intro

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

    Perintah genkit init membuat contoh modul Go dan menginstal dependensi yang diperlukan. File main.go berisi satu flow, menuSuggestionFlow, yang meminta LLM 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):

    package main
    
    import (
    	"context"
    	"errors"
    	"fmt"
    	"log"
    
    	// Import Genkit and the Google AI plugin
    	"github.com/firebase/genkit/go/ai"
    	"github.com/firebase/genkit/go/genkit"
    	"github.com/firebase/genkit/go/plugins/googleai"
    )
    
    func main() {
    	ctx := context.Background()
    
    	// Initialize the Google AI plugin. When you pass nil for the
    	// Config parameter, the Google AI plugin will get the API key from the
    	// GOOGLE_GENAI_API_KEY environment variable, which is the recommended
    	// practice.
    	if err := googleai.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    
    	// Define a simple flow that prompts an LLM to generate menu suggestions.
    	genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
    		// The Google AI API provides access to several generative models. Here,
    		// we specify gemini-1.5-flash.
    		m := googleai.Model("gemini-1.5-flash")
    		if m == nil {
    			return "", errors.New("menuSuggestionFlow: failed to find model")
    		}
    
    		// Construct a request and send it to the model API (Google AI).
    		resp, err := ai.Generate(ctx, m,
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithTextPrompt(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input)))
    		if err != nil {
    			return "", err
    		}
    
    		// 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.
    		text := resp.Text()
    		return text, nil
    	})
    
    	// Initialize Genkit and start a flow server. This call must come last,
    	// after all of your plug-in configuration and flow definitions. When you
    	// pass a nil configuration to Init, Genkit starts a local flow server,
    	// which you can interact with using the developer UI.
    	if err := genkit.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    
    

    Saat membangun fitur AI aplikasi dengan Genkit, Anda mungkin akan membuat flow dengan beberapa langkah, seperti pra-pemrosesan input, yang merupakan konstruksi prompt yang lebih canggih, sehingga dapat mengintegrasikan sumber informasi eksternal untuk Retrieval-augmented Generation (RAG) dan masih 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 semua berjalan lancar, Anda akan diberi saran untuk restoran bertema kucing.

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