Başlama

Firebase Genkit'i kullanmaya başlamak için Genkit CLI'ı yükleyin ve bir Node.js projesinde genkit init komutunu çalıştırın. Bu sayfanın geri kalanında bunu nasıl yapacağınız gösterilmektedir.

Şartlar

Node.js 20 veya sonraki sürümler.

Prosedür

  1. Aşağıdaki komutu çalıştırarak Genkit CLI'ı yükleyin:

    npm i -g genkit
    
  2. Yeni bir Node projesi oluşturun:

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

    package.json'a bakın ve main alanının lib/index.js olarak ayarlandığından emin olun.

  3. Bir Genkit projesini başlatın:

    genkit init
    
    1. Dağıtım platformu seçeneği olarak Diğer platform'u seçin (Firebase Cloud Functions ve Google Cloud Run için şablonlar da mevcuttur).

    2. Modelinizi seçin:

      Gemini (Google Yapay Zeka)

      Kullanmaya başlamanın en basit 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>
      

      Gemini (Vertex AI)

      Google AI Gemini API bölgenizde kullanılamıyorsa Gemini ve diğer modelleri de sunan Vertex AI API'yi kullanabilirsiniz. Faturalandırma özellikli bir Google Cloud projeniz olması, AI Platform API'yi etkinleştirmeniz ve bazı ek ortam değişkenleri ayarlamanız gerekir:

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

      Vertex AI fiyatlandırması için https://cloud.google.com/vertex-ai/generative-ai/pricing adresine göz atın.

    3. Geri kalan sorular için varsayılan yanıtları seçin. Bu işlem, proje klasörünüzü bir örnek kodla başlatır.

    genkit init komutu, tek bir akışı (menuSuggestionFlow) tanımlayan örnek bir kaynak dosyası (index.ts) oluşturur. Bu dosya, LLM'nin belirli bir temaya sahip bir restoran için öğe önermesini ister.

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

    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();
    

    Uygulamanızın yapay zeka özelliklerini Genkit ile geliştirirken büyük olasılıkla giriş ön işlemesi, daha gelişmiş istem oluşturma, almayla artırılmış oluşturma (RAG) için harici bilgi kaynaklarını entegre etme gibi birçok adımlı akışlar oluşturursunuz.

  4. 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 modeller veya akışları çalıştırdığınızda makineniz, akışınızın adımlarının birlikte çalışması için gereken düzenleme görevlerini yerine getirir. Gemini API gibi harici hizmetlere yapılan çağrılar, canlı sunuculara yönelik yapılmaya devam edecektir.

    Ayrıca, geliştirme ortamında olduğunuz için Genkit, izleri ve akış durumunu yerel dosyalarda depolar.

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

    Geliştirici kullanıcı arayüzü, hangi akışları tanımladığınızı ve yapılandırdığınız modelleri görmenizi, bunları çalıştırmanızı ve önceki çalıştırmaların izlerini incelemenizi sağlar. Şu ö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 bir listesini görürsünüz.

      menuÖneriFlow'u tıklayın ve metin giriş metniyle çalıştırmayı deneyin (örneğin, "cat"). Her şey yolunda giderse kedi temalı bir restoran için menü önerisiyle ödüllendirilirsiniz.

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

Sonraki adımlar

Genkit uygulamanızı Firebase, Cloud Run veya herhangi bir Node.js platformuyla nasıl oluşturup dağıtacağınızı öğrenin.