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
Sisteminizde Node 20 veya daha yeni bir sürüm yüklü değilse hemen yükleyin.
Öneri:
nvm
venvm-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
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
Yeni bir proje dizini oluşturun:
mkdir genkit-intro && cd genkit-intro
Genkit projesini başlatma:
genkit init
Çalışma zamanı ortamı olarak
Go
'ü seçin.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.
Modül adı için istediğiniz bir şeyi belirtin. Örneğin:
example/genkit-intro
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.
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ü 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.
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.