Go (alfa) kullanarak Genkit'i kullanmaya başlama

Go için Firebase Genkit kitaplıkları artık önizlenebilir. Çünkü Go kitaplıkları şu anda Alfa sürümünde olduğundan API ve işlevsel değişiklikleri aşağıdaki gibi görebilirsiniz: ve geliştirme sürecine bakacağız. Sadece prototip oluşturmak ve bunları keşfedin.

Kitaplıklarla veya bu dokümanlarla ilgili sorunlarla karşılaşırsanız lütfen bildirin GitHub depomuzda bulabilirsiniz.

Genkit'i kullanmaya başlamak için Genkit CLI'ı yükleyin ve Bir Go projesinde genkit init. Bu sayfanın geri kalanında bunu nasıl yapacağınız gösterilmektedir.

Şartlar

  • 1.22 veya sonraki bir sürümü kullanın. İndirme ve yükleme bölümüne göz atın: kullanıma sunuyoruz.

  • Node.js 20 veya sonraki sürümleri (Genkit KSA ve kullanıcı arayüzü için). Ayrıntılı bilgi edinmek için konulu genel rehbere göz atın.

Genkit'i yükleyin

  1. Sisteminizde Node 20 veya daha yeni sürümü yoksa hemen yükleyin.

    Öneri: nvm ve nvm-windows araçları bir Node'un belirli sürümlerini yüklemenin kolay bir yoludur. yüklü olması gerekir. Bu araçlar, Düğüm'ü kullanıcı bazında yükler. Böylece, ve sistem genelinde değişiklik yapmanız gerekmez.

    nvm uygulamasını yüklemek için:

    Linux, macOS vb.

    Aşağıdaki komutu çalıştırın:

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

    Windows

    Yükleyiciyi nvm-windows dokümanlarında açıklandığı şekilde indirip çalıştırın.

    Ardından, Düğüm ve npm eklentisini yüklemek için yeni bir kabuk açın ve aşağıdaki komutu çalıştırın komut:

    nvm install 20
  2. Aşağıdaki komutu çalıştırarak Genkit CLI'ı yükleyin:

    npm i -g genkit

    Bu komut, Genkit CLI'ı Node yükleme dizininize yükler Düğüm projesinin dışında kullanılabilmesi için.

Örnek proje oluşturma ve keşfetme

  1. Yeni bir proje dizini oluşturun:

    mkdir genkit-intro && cd genkit-intro
  2. Bir Genkit projesini başlatın:

    genkit init
    1. Çalışma zamanı ortamı olarak Go'i seçin.

    2. Modelinizi seçin:

      Gemini (Google Yapay Zeka)

      Kullanmaya başlamanın en basit yolu Google Yapay Zeka Gemini API'yi kullanmaktır. Şunlardan emin olun: bu bölgenizde kullanılabilir.

      Şu öğe için bir API anahtarı oluşturun: Gemini API, Google AI Studio'yu kullanıyor. Ardından, GOOGLE_GENAI_API_KEY ayarını yapın. ortam değişkenini anahtarınıza ekleyin:

      export GOOGLE_GENAI_API_KEY=<your API key>

      Gemini (Vertex AI)

      Google Yapay Zeka Gemini API bölgenizde kullanılamıyorsa şunları yapabilirsiniz: Vertex AI API'yi kullanarak Gemini ve diğer modelleri de sunuyor. Siz faturalandırmanın etkinleştirilmiş bir Google Cloud projesine sahip olması gerekir. Platform API'sine gidip bazı ek ortam değişkenlerini ayarlayın:

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

      Vertex AI fiyatlandırmasını inceleyin.

    3. Modül adı için herhangi bir şey belirtin. Örneğin: example/genkit-intro

    4. Diğer sorular için varsayılan cevapları seçin, proje klasörünüzü örnek kodla başlatın.

    genkit init komutu, örnek bir Go modülü oluşturur ve şunu yükler: bağımlılıkları ortaya koyabilir. main.go dosyası tek bir akış içeriyor: menuSuggestionFlow, LLM'nin çocuklara yönelik olarak bir öğe önermesini ister. bir restoran bulmanız gerekir.

    Bu dosya aşağıdaki gibi görünür (eklenti yapılandırma adımları Vertex AI'ı seçtiyseniz farklı görünebilir):

    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)
    	}
    }
    
    

    Genkit ile uygulamanızın yapay zeka özelliklerini geliştirirken büyük olasılıkla giriş ön işleme, daha gelişmiş ve gelişmiş ve kaynaklar için harici bilgi kaynaklarını entegre ederek elde etmeyle artırılmış oluşturma (RAG) vb.

  3. Artık Genkit özelliklerini çalıştırıp yerel olarak keşfedebilirsiniz. hoş geldiniz. Genkit geliştirici kullanıcı arayüzünü indirip başlatın:

    genkit start

    Hoş geldiniz:
Genkit Geliştirici Kullanıcı Arayüzü

    Genkit Geliştirici Kullanıcı Arayüzü artık makinenizde çalışıyor. Modelleri çalıştırdığınızda makineniz düzenleme görevlerini yerine getirirse adımların bir arada çalışmasını sağlamak için gereken şeyleri ifade eder. harici aramalar Gemini API gibi hizmetlerin ve hizmetlerin yayınlanması, sunucular.

    Ayrıca, geliştirme ortamında olduğunuz için Genkit, izlemeleri ve akış durumunu kontrol edebilirsiniz.

  4. Genkit Geliştirici Kullanıcı Arayüzü, şunu çalıştırdığınızda otomatik olarak indirilir ve açılır: genkit start komutudur.

    Geliştirici kullanıcı arayüzü, tanımladığınız akışları ve bunları modellediğiniz bunları çalıştırabilir ve önceki çalıştırmaların izlerini inceleyebilir. Bazı özellikleri deneyin: şu özellikler:

    • Çalıştır sekmesinde, gerçekleştirdiğiniz tüm akışların listesini eklentileri tarafından yapılandırılan tüm modelleri içerir.

      menuSuggestionFlow'u tıklayın ve bir metin giriş metniyle çalıştırmayı deneyin ( örnek, "cat"). Her şey yolunda giderse bir menü kazanırsınız kedi temalı bir restoran için öneriyorum.

    • İncele sekmesinde akış yürütme geçmişini görürsünüz. Her bir akışa aktarılan parametreleri ve bir izini görebilirsiniz. her adımı ne kadar önemsediklerini gösterir.