Rozpocznij

Aby zacząć korzystać z Firebase Genkit, zainstaluj interfejs wiersza poleceń Genkit i uruchom polecenie genkit init w projekcie Node.js. Instrukcje znajdziesz w dalszej części tej strony.

Wymagania

Node.js w wersji 20 lub nowszej.

Procedura

  1. Zainstaluj interfejs wiersza poleceń Genkit, uruchamiając to polecenie:

    npm i -g genkit
    
  2. Utwórz nowy projekt węzła:

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

    Otwórz plik package.json i sprawdź, czy pole main jest ustawione na lib/index.js.

  3. Zainicjuj projekt Genkit:

    genkit init
    
    1. Jako opcję platformy wdrożenia wybierz Inna platforma (dostępne są też szablony dla Firebase Cloud Functions i Google Cloud Run).

    2. Wybierz model:

      Gemini (AI od Google)

      Najprostszym sposobem, aby zacząć, jest korzystanie z interfejsu Google AI Gemini API. Upewnij się, że usługa jest dostępna w Twoim regionie.

      Wygeneruj klucz API dla Gemini API za pomocą Google AI Studio. Następnie ustaw zmienną środowiskową GOOGLE_GENAI_API_KEY na swój klucz:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      Jeśli interfejs Google AI Gemini API nie jest dostępny w Twoim regionie, rozważ użycie interfejsu Vertex AI API, który oferuje również Gemini i inne modele. Musisz mieć projekt Google Cloud z włączonymi płatnościami, włączyć interfejs AI Platform API i ustawić kilka dodatkowych zmiennych środowiskowych:

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

      Cennik Vertex AI znajdziesz na stronie https://cloud.google.com/vertex-ai/generative-ai/pricing.

    3. Wybierz domyślne odpowiedzi na pozostałe pytania, co zainicjuje folder projektu przy użyciu przykładowego kodu.

    Polecenie genkit init tworzy przykładowy plik źródłowy index.ts, który definiuje pojedynczy przepływ (menuSuggestionFlow), który prosi LLM o zasugerowanie elementu dla restauracji o danym motywie.

    Ten plik wygląda mniej więcej tak (kroki konfiguracji wtyczki mogą wyglądać inaczej, jeśli wybrano Vertex AI):

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

    Podczas tworzenia funkcji AI w aplikacji za pomocą Genkit prawdopodobnie będziesz tworzyć przepływy z wieloma etapami, takimi jak wstępne przetwarzanie danych wejściowych, bardziej zaawansowana konstrukcja promptów, integrowanie zewnętrznych źródeł informacji na potrzeby generowania rozszerzonego przez pobieranie danych (RAG) itp.

  4. Teraz możesz uruchomić i poznać funkcje Genkit oraz przykładowy projekt lokalnie na swoim komputerze. Pobierz i uruchom interfejs programisty Genkit:

    genkit start
    

    Witamy w interfejsie programisty Genkit

    Interfejs dewelopera Genkit działa teraz na Twoim komputerze. Gdy w następnym kroku uruchomisz modele lub przepływy, maszyna wykona zadania administracyjne niezbędne, aby współdziałać ze sobą. Wywołania usług zewnętrznych, takich jak Gemini API, będą nadal wykonywane z użyciem aktywnych serwerów.

    Ponieważ pracujesz w środowisku programistycznym, Genkit będzie przechowywać ślady i stan przepływu w plikach lokalnych.

  5. Interfejs programisty aplikacji Genkit zostanie pobrany i otwarty automatycznie po uruchomieniu polecenia genkit start.

    Interfejs programisty umożliwia wyświetlanie zdefiniowanych przepływów i skonfigurowanych modeli, a także ich uruchamianie i badanie logów czasu poprzednich uruchomień. Wypróbuj niektóre z tych funkcji:

    • Na karcie Uruchom zobaczysz listę wszystkich zdefiniowanych przepływów oraz modeli skonfigurowanych przez wtyczki.

      Kliknij menusuggestionFlow i spróbuj wpisać tekst (na przykład "cat"). Jeśli wszystko pójdzie dobrze, otrzymasz propozycję menu dla restauracji inspirowanej kotami.

    • Na karcie Zbadaj zobaczysz historię wykonań przepływu. W przypadku każdego przepływu możesz zobaczyć parametry, które były przekazywane do przepływu, oraz ślad każdego z nich w trakcie ich realizacji.

Dalsze kroki

Dowiedz się, jak utworzyć i wdrożyć aplikację Genkit za pomocą Firebase, Cloud Run lub dowolnej platformy Node.js.