Biblioteki Genkit dla Go są teraz dostępne w wersji testowej. Biblioteki Go są obecnie w wersji alfa, więc w miarę rozwoju mogą ulegać zmianom w interfejsie API i funkcjonalności. Zalecamy używanie go tylko do tworzenia prototypów i eksploracji.
Jeśli zauważysz problemy z bibliotekami lub tą dokumentacją, zgłoś je w naszym repozytorium GitHub.
Aby rozpocząć korzystanie z Genkit, zainstaluj Genkit CLI i uruchomgenkit init
w projekcie Go. W dalszej części tej strony znajdziesz instrukcje.
Wymagania
Go w wersji 1.22 lub nowszej. Więcej informacji znajdziesz w artykule Pobieranie i instalowanie w oficjalnych dokumentach Go.
Node.js w wersji 20 lub nowszej (w przypadku interfejsu wiersza poleceń i interfejsu użytkownika Genkit). W następnej sekcji znajdziesz krótki przewodnik po instalacji Node.
Instalowanie Genkit
Jeśli nie masz jeszcze w systemie Node 20 lub nowszej wersji, zainstaluj ją teraz.
Rekomendacja: narzędzia
nvm
invm-windows
to wygodny sposób na zainstalowanie określonych wersji Node, jeśli nie są one jeszcze zainstalowane w Twoim systemie. Te narzędzia instalują Node na poziomie użytkownika, więc nie musisz wprowadzać zmian w całym systemie.Aby zainstalować
nvm
:Uruchom to polecenie:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
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:nvm install 20
Zainstaluj interfejs wiersza poleceń Genkit, uruchamiając to polecenie:
npm i -g genkit
To polecenie instaluje Genkit CLI w katalogu instalacji Node, aby można było go używać poza projektem Node.
Tworzenie i poznawanie przykładowego projektu
Utwórz nowy katalog projektu:
mkdir genkit-intro && cd genkit-intro
Inicjowanie projektu Genkit:
genkit init
Jako środowisko wykonawcze wybierz
Go
.Wybierz model:
Najprostszym sposobem na rozpoczęcie jest skorzystanie z interfejsu Gemini API od Google AI. Upewnij się, że ta usługa jest dostępna w Twoim regionie.
Wygeneruj klucz API do interfejsu 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>
Jeśli interfejs Google AI Gemini API jest niedostępny w Twoim regionie, rozważ użycie interfejsu Vertex AI API, który również oferuje modele Gemini i inne. Musisz mieć projekt Google Cloud z włączonymi płatnościami, włączyć interfejs AI Platform API i ustawić dodatkowe zmienne środowiskowe:
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
Zapoznaj się z cennikiem Vertex AI.
Wpisz dowolną nazwę modułu. Na przykład:
example/genkit-intro
Wybierz domyślne odpowiedzi na pozostałe pytania, aby zainicjować folder projektu za pomocą przykładowego kodu.
Polecenie
genkit init
tworzy przykładowy moduł Go i instaluje wymagane zależności. Plikmain.go
zawiera pojedynczy przepływmenuSuggestionFlow
, który powoduje, że model LLM sugeruje produkt dla restauracji o określonym temacie.Ten plik wygląda mniej więcej tak (jeśli wybierzesz Vertex AI, kroki konfiguracji wtyczki mogą wyglądać inaczej):
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() }
Podczas tworzenia funkcji AI w aplikacji za pomocą Genkit prawdopodobnie utworzysz przepływy z wieloma krokami, np. wstępną obróbkę danych wejściowych, bardziej zaawansowane tworzenie promptów, integrację zewnętrznych źródeł informacji na potrzeby generowania wspomaganego wyszukiwaniem (RAG) i inne.
Teraz możesz uruchomić i przetestować funkcje Genkit oraz przykładowy projekt lokalnie na swoim komputerze. Pobierz i uruchom interfejs dla deweloperów Genkit:
genkit start
Na Twoim komputerze działa teraz interfejs Genkit dla deweloperów. Gdy w następnym kroku uruchomisz modele lub przepływy, maszyna wykona zadania orkiestracji, aby umożliwić współpracę poszczególnych kroków przepływu. Wywołania usług zewnętrznych, takich jak interfejs Gemini API, będą nadal kierowane do serwerów produkcyjnych.
Ponieważ jesteś w środowisku programistycznym, Genkit będzie przechowywać ślady i stan przepływu w plikach lokalnych.
Gdy uruchomisz polecenie
genkit start
, interfejs Genkit dla deweloperów zostanie pobrany i otwarty automatycznie.Interfejs dla deweloperów umożliwia wyświetlanie zdefiniowanych przepływów i skonfigurowanych modeli, ich uruchamianie oraz analizowanie śladów poprzednich uruchomień. Wypróbuj te funkcje:
Na karcie Uruchom znajdziesz listę wszystkich zdefiniowanych przez Ciebie przepływów oraz wszystkie modele skonfigurowane przez wtyczki.
Kliknij menuSuggestionFlow i spróbuj uruchomić tę funkcję z tekstem wejściowym (np.
"cat"
). Jeśli wszystko pójdzie dobrze, otrzymasz sugestię menu dla restauracji z motywem kotów.Na karcie Sprawdź znajdziesz historię wykonywania przepływu. W przypadku każdego przepływu możesz zobaczyć parametry przekazane do przepływu oraz ślad każdego kroku podczas jego wykonywania.