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

Go için Genkit kitaplıkları artık önizlenebilir. Go kitaplıkları şu anda alfa sürümünde olduğundan geliştirme ilerledikçe API ve işlevsel değişiklikler görebilirsiniz. Bu özelliği yalnızca prototipleme ve keşif için kullanmanızı öneririz.

Kitaplıklar veya bu dokümanlarla ilgili sorun tespit ederseniz lütfen GitHub depomuzda bildirin.

Genkit'i kullanmaya başlamak için Genkit CLI'yi yükleyin ve genkit init dosyasını bir Go projesinde çalıştırın. Bu sayfanın geri kalanında nasıl yapılacağı açıklanmaktadır.

Şartlar

  • 1.22 veya sonraki bir sürüme geçin. Resmi Go dokümanlarındaki İndir ve yükle bölümüne bakın.

  • Node.js 20 veya sonraki sürümler (Genkit komut satırı arayüzü ve kullanıcı arayüzü için). Node'u yüklemeyle ilgili kısa bir kılavuz için sonraki bölüme bakın.

Genkit'i yükleme

  1. Sisteminizde Node 20 veya daha yeni bir sürüm yüklü değilse hemen yükleyin.

    Öneri: nvm ve nvm-windows araçları, sisteminizde yüklü değilse Node'un belirli sürümlerini yüklemenin kullanışlı bir yoludur. Bu araçlar Node'u kullanıcı başına yükler. Bu nedenle, sistem genelinde değişiklik yapmanız gerekmez.

    nvm'ı yüklemek için:

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

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

    Yükleyiciyi nvm-windows dokümanlarındaki talimatları uygulayarak indirip çalıştırın.

    Ardından, Node ve npm'ü yüklemek için yeni bir kabuk açıp aşağıdaki komutu çalıştırın:

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

    npm i -g genkit

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

Örnek proje oluşturma ve keşfetme

  1. Yeni bir proje dizini oluşturun:

    mkdir genkit-intro && cd genkit-intro
  2. Genkit projesini başlatma:

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

    2. Modelinizi seçin:

      Başlamanın en kolay yolu Google Yapay Zeka Gemini API'yi kullanmaktır. Bölgenizde kullanılabildiğinden emin olun.

      Google AI Studio'yu kullanarak Gemini API için API anahtarı oluşturun. Ardından GOOGLE_GENAI_API_KEY ortam değişkenini anahtarınıza ayarlayın:

      export GOOGLE_GENAI_API_KEY=<your API key>

      Google Yapay Zeka Gemini API'si bölgenizde kullanılamıyorsa Gemini ve diğer modelleri de sunan Vertex AI API'yi kullanabilirsiniz. Faturalandırma özelliği etkin bir Google Cloud projenizin olması, AI Platform API'nin etkinleştirilmesi ve bazı ek ortam değişkenlerinin ayarlanması gerekir:

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

      Vertex AI fiyatlandırmasına bakın.

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

    4. Soruların geri kalanı için varsayılan yanıtları seçin. Bu işlem, proje klasörünüzü bazı örnek kodlarla başlatır.

    genkit init komutu, örnek bir Go modülü oluşturur ve gerekli bağımlılıkları yükler. main.go dosyası, LLM'den belirli bir temaya sahip bir restoran için öğe önermesini isteyen tek bir akış (menuSuggestionFlow) içerir.

    Bu dosya aşağıdaki gibi görünür (Vertex AI'ı seçtiyseniz eklenti yapılandırma adımları 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/googlegenai"
    )
    
    func main() {
    	ctx := context.Background()
    
    	// Initialize Genkit with 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.
    	g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	// Define a simple flow that prompts an LLM to generate menu suggestions.
    	genkit.DefineFlow(g, "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 := googlegenai.GoogleAIModel(g, "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 := genkit.Generate(ctx, g,
    			ai.WithModel(m),
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithPromptText(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
    	})
    
    	<-ctx.Done()
    }
    
    

    Genkit ile uygulamanızın yapay zeka özelliklerini geliştirirken giriş ön işleme, daha gelişmiş istem oluşturma, almayla artırılmış üretim (RAG) için harici bilgi kaynaklarını entegre etme ve daha fazlası gibi birden fazla adım içeren akışlar oluşturmanız muhtemeldir.

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

    genkit start

    Genkit Geliştirici Kullanıcı Arayüzüne hoş geldiniz

    Genkit geliştirici kullanıcı arayüzü artık makinenizde çalışıyor. Bir sonraki adımda modelleri veya akışları çalıştırdığınızda makineniz, akışınızın adımlarının birlikte çalışmasını sağlamak için gereken orkestrasyon görevlerini gerçekleştirir. Gemini API gibi harici hizmetlere yapılan çağrılar, canlı sunuculara yapılmaya devam eder.

    Ayrıca, geliştirici ortamında olduğunuzdan Genkit, izlemeleri ve akış durumunu yerel dosyalarda depolar.

  4. genkit start komutunu çalıştırdığınızda Genkit geliştirici kullanıcı arayüzü otomatik olarak indirilir ve açılır.

    Geliştirici kullanıcı arayüzü, tanımladığınız akışları ve yapılandırdığınız modelleri görmenize, çalıştırmanıza ve önceki çalıştırmaların izlerini incelemenize olanak tanır. Aşağıdaki özelliklerden bazılarını deneyin:

    • Çalıştır sekmesinde, tanımladığınız tüm akışların ve eklentiler tarafından yapılandırılmış tüm modellerin listesini görürsünüz.

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

    • İncele sekmesinde, akış yürütme geçmişini görürsünüz. Her akış için akışa iletilen parametreleri ve her adımın çalıştırıldığı sıradaki izini görebilirsiniz.