Wtyczka Vertex AI

Wtyczka Vertex AI udostępnia interfejsy do kilku modeli generatywnej AI od Google. za pomocą interfejsu Vertex AI API.

Wymagania

Jeśli chcesz lokalnie uruchamiać przepływy korzystające z tej wtyczki, potrzebujesz Zainstalowano narzędzie wiersza poleceń Google Cloud.

Konfiguracja

Aby użyć tej wtyczki, zaimportuj pakiet vertexai i wywołaj vertexai.Init():

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

Wtyczka wymaga podania identyfikatora projektu Google Cloud, region [region] do których chcesz wysyłać żądania do interfejsu Vertex API, a Twój projekt Google Cloud dane logowania.

  • Domyślnie vertexai.Init() pobiera identyfikator projektu Google Cloud z Zmienna środowiskowa GCLOUD_PROJECT.

    Możesz też przekazać tę wartość bezpośrednio:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
      return err
    }
    
  • Domyślnie vertexai.Init() pobiera lokalizację interfejsu Vertex AI API z Zmienna środowiskowa GCLOUD_LOCATION.

    Możesz też przekazać tę wartość bezpośrednio:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • Aby podać dane logowania do interfejsu API, musisz skonfigurować aplikację Google Cloud Domyślne dane logowania.

    1. Aby podać dane logowania:

      • Jeśli uruchamiasz przepływ ze środowiska Google Cloud (Cloud Functions, Cloud Run itd.), to ustawienie jest ustawiane automatycznie.

      • W lokalnym środowisku programistycznym uruchom to polecenie:

      gcloud auth application-default login
      
    2. Sprawdź też, czy do konta została przypisana rola użytkownika Vertex AI (roles/aiplatform.user). Zobacz kontrolę dostępu Vertex AI dokumenty.

Wykorzystanie

Modele generatywne

Aby uzyskać odniesienie do obsługiwanego modelu, podaj jego identyfikator:

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

Obsługiwane są te modele: gemini-1.0-pro, gemini-1.5-pro i gemini-1.5-flash

Odwołania do modelu zawierają metodę Generate(), która wywołuje interfejs Vertex AI API:

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

Więcej informacji znajdziesz w artykule Generowanie treści.

Umieszczanie modeli

Aby uzyskać odwołanie do obsługiwanego modelu wektora dystrybucyjnego, podaj jego identyfikator:

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

Obsługiwane są te modele: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002 i multimodalembedding

Odwołania do umieszczania na stronie zawierają metodę Embed(), która wywołuje interfejs Vertex AI API:

embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
    Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
    return err
}

Element Embedder można również przekazać do metody Index() indeksującego i metody retrievera Metoda Retrieve():

if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
    return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
    Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
    return err
}

Więcej informacji znajdziesz w artykule Generowanie rozszerzone przez wyszukiwanie w zapisanych informacjach (RAG).