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
Zainstaluj interfejs wiersza poleceń Genkit, uruchamiając to polecenie:
npm i -g genkit
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 nalib/index.js
.Zainicjuj projekt Genkit:
genkit init
Jako opcję platformy wdrożenia wybierz Inna platforma (dostępne są też szablony dla Firebase Cloud Functions i Google Cloud Run).
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.
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łowyindex.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.
Teraz możesz uruchomić i poznać funkcje Genkit oraz przykładowy projekt lokalnie na swoim komputerze. Pobierz i uruchom interfejs programisty Genkit:
genkit start
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.
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.