Vertex AI-Plug-in

Das Vertex AI-Plug-in bietet über die Vertex AI API Schnittstellen zu mehreren generativen KI-Modellen von Google.

Voraussetzungen

Wenn Sie Abläufe, die dieses Plug-in verwenden, lokal ausführen möchten, muss das Google Cloud CLI-Tool installiert sein.

Konfiguration

Importieren Sie das Paket vertexai und rufen Sie vertexai.Init() auf, um dieses Plug-in zu verwenden:

import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
	return err
}

Sie müssen die Google Cloud-Projekt-ID, die Region, an die Vertex API-Anfragen gesendet werden sollen, und die Anmeldedaten für Ihr Google Cloud-Projekt angeben.

  • Standardmäßig wird die Google Cloud-Projekt-ID von vertexai.Init() aus der Umgebungsvariablen GCLOUD_PROJECT abgerufen.

    Du kannst diesen Wert auch direkt übergeben:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
    	return err
    }
    
  • Standardmäßig ruft vertexai.Init() den Vertex AI API-Standort aus der Umgebungsvariable GCLOUD_LOCATION ab.

    Du kannst diesen Wert auch direkt übergeben:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
    	return err
    }
    
  • Wenn Sie API-Anmeldedaten angeben möchten, müssen Sie Standardanmeldedaten für Google Cloud-Anwendungen einrichten.

    1. So geben Sie Ihre Anmeldedaten an:

      • Wenn Sie Ihren Ablauf in einer Google Cloud-Umgebung (z. B. Cloud Functions oder Cloud Run) ausführen, wird dies automatisch festgelegt.

      • Führen Sie dazu in Ihrer lokalen Entwicklungsumgebung Folgendes aus:

      gcloud auth application-default login
      
    2. Außerdem muss dem Konto die IAM-Rolle „Vertex AI-Nutzer“ (roles/aiplatform.user) zugewiesen sein. Weitere Informationen finden Sie in der Vertex AI-Dokumentation zur Zugriffssteuerung.

Nutzung

Generative Modelle

Geben Sie die Kennzeichnung eines unterstützten Modells an, um einen Verweis darauf zu erhalten:

langModel := vertexai.Model("gemini-1.5-flash")

Die folgenden Modelle werden unterstützt: gemini-1.0-pro, gemini-1.5-pro und gemini-1.5-flash.

Modellverweise haben eine Generate()-Methode, die die Vertex AI API aufruft:

genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

Weitere Informationen finden Sie unter Inhalte generieren.

Einbettungsmodelle

Geben Sie die Kennung eines unterstützten Einbettungsmodells an, um einen Verweis darauf zu erhalten:

embeddingModel := vertexai.Embedder("text-embedding-004")

Die folgenden Modelle werden unterstützt: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002 und multimodalembedding.

Einbettungsreferenzen haben eine Embed()-Methode, die die Vertex AI API aufruft:

embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
	return err
}

Sie können einen Embedder auch an die Index()-Methode eines Indexers und die Retrieve()-Methode eines Retrievers übergeben:

if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
	return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
	return err
}

Weitere Informationen finden Sie unter Retrieval-Augmented Generation (RAG).