Pierwsze kroki z Genkit w Go (alfa)

Możesz już korzystać z biblioteki Firebase Genkit w Go. Ponieważ Biblioteki Go są obecnie w wersji alfa. Możesz zauważyć zmiany w interfejsach API i funkcjonalności, postęp prac nad rozwojem. Zalecamy korzystanie z niego tylko do prototypowania. do eksploracji.

Jeśli zauważysz problemy z bibliotekami lub tą dokumentacją, zgłoś je znajdziesz je w naszym repozytorium GitHub.

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

Wymagania

  • Przejdź na wersję 1.22 lub nowszą. Zobacz Pobieranie i instalowanie w z oficjalnymi dokumentami Go.

  • Node.js w wersji 20 lub nowszej (dla interfejsu wiersza poleceń i interfejsu Genkit). W następnej sekcji znajdziesz informacje na temat krótki przewodnik po instalowaniu węzła.

Zainstaluj Genkit

  1. Jeśli nie masz jeszcze w systemie Node 20 lub nowszego, zainstaluj go teraz.

    Zalecenia: nvm i Narzędzia nvm-windows to wygodny sposób na zainstalowanie określonych wersji środowiska Node, jeśli jeszcze nie jest dostępne zainstalowanego w systemie. Te narzędzia instalują Node dla poszczególnych użytkowników, dzięki czemu nie wymagają wprowadzania zmian w całym systemie.

    Aby zainstalować nvm:

    Linux, macOS itp.

    Uruchom to polecenie:

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

    Windows

    Pobierz i uruchom instalator zgodnie z opisem w dokumentacji nvm-windows.

    Następnie, aby zainstalować Node i npm, otwórz nową powłokę i uruchom to polecenie polecenie:

    nvm install 20
    
  2. Zainstaluj interfejs wiersza poleceń Genkit, uruchamiając to polecenie:

    npm i -g genkit
    

    To polecenie instaluje interfejs wiersza poleceń Genkit w katalogu instalacyjnym węzła z którego można korzystać poza projektem Node.

Tworzenie i poznawanie przykładowego projektu

  1. Utwórz nowy katalog projektu:

    mkdir genkit-intro && cd genkit-intro
    
  2. Zainicjuj projekt Genkit:

    genkit init
    
    1. Wybierz Go jako środowisko wykonawcze.

    2. Wybierz model:

      Gemini (AI od Google)

      Najprostszym sposobem, aby zacząć, jest korzystanie z interfejsu Google AI Gemini API. Upewnij się, to dostępne w Twoim regionie.

      Wygeneruj klucz interfejsu API dla platformy Gemini API za pomocą Google AI Studio. Następnie ustaw GOOGLE_GENAI_API_KEY zmienną środowiskową do klucza:

      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ż za pomocą interfejsu Vertex AI API, który oferuje również Gemini i inne modele. Ty musi mieć projekt Google Cloud z włączonymi płatnościami, włączyć AI API platformy i ustaw kilka dodatkowych zmiennych środowiskowych:

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

      Zapoznaj się z cennikiem Vertex AI.

    3. Wpisz dowolną nazwę modułu. Na przykład: example/genkit-intro

    4. Wybierz domyślne odpowiedzi na pozostałe pytania, które zainicjować folder projektu przy użyciu przykładowego kodu.

    Polecenie genkit init tworzy przykładowy moduł Go i instaluje wymagane zależności. Plik main.go zawiera jeden proces, menuSuggestionFlow, co powoduje, że LLM zaproponuje element o określonej tematyce.

    Wygląda on mniej więcej tak (kroki konfiguracji wtyczki może wyglądać inaczej, jeśli wybrano Vertex AI):

    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/googleai"
    )
    
    func main() {
    	ctx := context.Background()
    
    	// Initialize 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.
    	if err := googleai.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    
    	// Define a simple flow that prompts an LLM to generate menu suggestions.
    	genkit.DefineFlow("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 := googleai.Model("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 := ai.Generate(ctx, m,
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithTextPrompt(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
    	})
    
    	// Initialize Genkit and start a flow server. This call must come last,
    	// after all of your plug-in configuration and flow definitions. When you
    	// pass a nil configuration to Init, Genkit starts a local flow server,
    	// which you can interact with using the developer UI.
    	if err := genkit.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    
    

    Tworząc funkcje AI w aplikacji w Genkit, prawdopodobnie z wieloma etapami, takimi jak wstępne przetwarzanie danych wejściowych, tworzenia promptów, integrowanie zewnętrznych źródeł informacji generowanie rozszerzone przez wyszukiwanie w zapisanych informacjach (RAG) itp.

  3. Teraz możesz uruchamiać i poznawać funkcje Genkit oraz przykładowy projekt lokalnie na komputerze. Pobierz i uruchom interfejs programisty Genkit:

    genkit start
    

    Witamy w
Interfejs programisty Genkit

    Interfejs dewelopera Genkit działa teraz na Twoim komputerze. Gdy uruchamiasz modele lub przepływów w następnym kroku, komputer wykona zadania administrowania które są niezbędne, aby kroki przepływu danych ze sobą współpracowały; połączenia z zewnętrznymi takie jak Gemini API będą nadal oparte na serwerów.

    Ponieważ pracujesz w środowisku programistycznym, Genkit przechowuje ślady stanu przepływu w plikach lokalnych.

  4. Interfejs programisty Genkit zostanie pobrany i otwarty automatycznie po uruchomieniu genkit start.

    Interfejs dewelopera pozwala zobaczyć zdefiniowane przepływy i modele skonfigurować je, uruchomić i zbadać ślady poprzednich uruchomień. Wypróbuj niektóre funkcje te funkcje:

    • Na karcie Uruchom zobaczysz listę wszystkich przepływów i modele skonfigurowane przez wtyczki.

      Kliknij menusuggestionFlow i spróbuj uruchomić je z tekstem do wprowadzania danych (na przykład: "cat"). Jeśli wszystko pójdzie dobrze, otrzymasz menu propozycji restauracji o kotach.

    • Na karcie Zbadaj zobaczysz historię wykonań przepływu. Dla każdej wartości możesz wyświetlić parametry przekazane do przepływu i ślad każdego etapu.