Les bibliothèques Firebase Genkit pour Go sont désormais disponibles en preview. Étant donné que les bibliothèques Go sont actuellement en version alpha, vous pouvez constater des modifications fonctionnelles et des modifications de l'API au fur et à mesure du développement. Nous vous recommandons de ne l'utiliser que pour le prototypage et l'exploration.
Si vous rencontrez des problèmes avec les bibliothèques ou cette documentation, veuillez les signaler dans notre dépôt GitHub.
Pour commencer à utiliser Genkit, installez la CLI Genkit et exécutez genkit init
dans un projet Go. La suite de cette page vous explique comment procéder.
Conditions requises
Go 1.22 ou version ultérieure. Consultez la section Télécharger et installer dans la documentation officielle de Go.
Node.js 20 ou version ultérieure (pour la CLI et l'UI Genkit) Consultez la section suivante pour obtenir un bref guide d'installation de Node.
Installer Genkit
Si Node 20 ou une version ultérieure n'est pas déjà installé sur votre système, installez-le maintenant.
Recommandation: Les outils
nvm
etnvm-windows
constituent un moyen pratique d'installer des versions spécifiques de Node si elles ne sont pas déjà installées sur votre système. Ces outils installent Node par utilisateur. Vous n'avez donc pas besoin d'apporter de modifications à l'échelle du système.Pour installer
nvm
, procédez comme suit :Linux, macOS, etc.
Exécutez la commande suivante :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Windows
Téléchargez et exécutez le programme d'installation comme décrit dans la documentation nvm-windows.
Pour installer Node et
npm
, ouvrez un nouveau shell et exécutez la commande suivante :nvm install 20
Installez la CLI Genkit en exécutant la commande suivante :
npm i -g genkit
Cette commande installe la CLI Genkit dans votre répertoire d'installation de nœud afin de pouvoir l'utiliser en dehors d'un projet Node.
Créer et explorer un exemple de projet
Créez un répertoire de projet :
mkdir genkit-intro && cd genkit-intro
Initialisez un projet Genkit :
genkit init
Sélectionnez
Go
comme environnement d'exécution.Sélectionnez votre modèle :
Gemini (IA de Google)
Le moyen le plus simple de commencer est d'utiliser l'API Gemini de Google AI. Vérifiez qu'il est disponible dans votre région.
Générez une clé API pour l'API Gemini à l'aide de Google AI Studio. Définissez ensuite la variable d'environnement
GOOGLE_GENAI_API_KEY
sur votre clé:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
Si l'API Google AI Gemini n'est pas disponible dans votre région, envisagez d'utiliser l'API Vertex AI, qui propose également Gemini et d'autres modèles. Vous devez disposer d'un projet Google Cloud pour lequel la facturation est activée, activer l'API AI Platform et définir quelques variables d'environnement supplémentaires :
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
Consultez la page Tarifs de Vertex AI.
Vous pouvez spécifier n'importe quel nom pour le module. Par exemple :
example/genkit-intro
Choisissez des réponses par défaut pour le reste des questions, ce qui initialisera votre dossier de projet avec un exemple de code.
La commande
genkit init
crée un exemple de module Go et installe les dépendances requises. Le fichiermain.go
contient un seul flux,menuSuggestionFlow
, qui invite un LLM à suggérer un élément pour un restaurant selon un thème donné.Ce fichier ressemble à ce qui suit (les étapes de configuration du plug-in peuvent être différentes si vous avez sélectionné 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) } }
Lorsque vous développez les fonctionnalités d'IA de votre application avec Genkit, vous allez probablement créer des flux comportant plusieurs étapes, telles que le prétraitement des entrées, la création d'invites plus sophistiquées, l'intégration de sources d'informations externes pour la génération avec augmentation du rappel (RAG), etc.
Vous pouvez maintenant exécuter et explorer les fonctionnalités de Genkit et l'exemple de projet en local sur votre machine. Téléchargez et démarrez l'interface utilisateur Genkit Developer:
genkit start
L'interface utilisateur du développeur Genkit s'exécute maintenant sur votre machine. Lorsque vous exécuterez des modèles ou des flux à l'étape suivante, votre machine effectuera les tâches d'orchestration nécessaires pour que les étapes de votre flux fonctionnent ensemble. Les appels à des services externes tels que l'API Gemini continueront d'être effectués sur des serveurs en ligne.
De plus, comme vous vous trouvez dans un environnement de développement, Genkit stocke les traces et l'état du flux dans des fichiers locaux.
L'interface utilisateur du développeur Genkit se télécharge et s'ouvre automatiquement lorsque vous exécutez la commande
genkit start
.L'UI du développeur vous permet de voir les flux que vous avez définis et les modèles que vous avez configurés, de les exécuter et d'examiner les traces des exécutions précédentes. Essayez certaines de ces fonctionnalités :
Dans l'onglet Exécuter, vous trouverez la liste de tous les flux que vous avez définis et des modèles configurés par les plug-ins.
Cliquez sur menuSuggestionFlow et essayez de l'exécuter avec du texte saisi (par exemple,
"cat"
). Si tout se passe bien, vous obtiendrez une suggestion de menu pour un restaurant sur le thème des chats.Dans l'onglet Inspect (Examen), vous trouverez l'historique des exécutions du flux. Pour chaque flux, vous pouvez voir les paramètres qui lui ont été transmis et une trace de chaque étape au moment de son exécution.