Vertex AI eklentisi

Vertex AI eklentisi, Google'ın çeşitli üretken yapay zeka modellerine arayüz sağlar Vertex AI API aracılığıyla iletişim kurabilirsiniz.

Şartlar

Bu eklentiyi kullanan akışları yerel olarak çalıştırmak istiyorsanız Google Cloud CLI aracı yüklenmiş olmalıdır.

Yapılandırma

Bu eklentiyi kullanmak için vertexai paketini içe aktarın ve vertexai.Init() çağrısı yapın:

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

Eklenti, Google Cloud projenizin kimliğini belirtmenizi gerektirir. region [bölge] Vertex API isteklerinde bulunmak istediğiniz paket ve Google Cloud projeniz kimlik bilgileri.

  • vertexai.Init() varsayılan olarak Google Cloud proje kimliğinizi GCLOUD_PROJECT ortam değişkeni.

    Bu değeri doğrudan da aktarabilirsiniz:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
      return err
    }
    
  • vertexai.Init(), Vertex AI API konumunu varsayılan olarak şuradan alır: GCLOUD_LOCATION ortam değişkeni.

    Bu değeri doğrudan da aktarabilirsiniz:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • API kimlik bilgilerini sağlamak için Google Cloud uygulamasını kurmanız gerekir. Varsayılan Kimlik Bilgileri.

    1. Kimlik bilgilerinizi belirtmek için:

      • Akışınızı bir Google Cloud ortamından (Cloud) çalıştırıyorsanız Functions, Cloud Run ve benzeri) otomatik olarak ayarlanır.

      • Yerel geliştirme ortamınızda bu işlemi aşağıdaki komutu çalıştırarak yapın:

      gcloud auth application-default login
      
    2. Ayrıca hesaba Vertex AI Kullanıcısı IAM rolü verildiğinden emin olun. (roles/aiplatform.user). Vertex AI erişim denetimine göz atın. dokümanlar.

Kullanım

Üretici modeller

Desteklenen bir modele referans almak için tanımlayıcıyı belirtin:

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

Şu modeller desteklenir: gemini-1.0-pro, gemini-1.5-pro ve gemini-1.5-flash.

Model referansları, Vertex AI API'yi çağıran bir Generate() yöntemine sahiptir:

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

Daha fazla bilgi için İçerik oluşturma bölümüne bakın.

Modelleri yerleştirme

Desteklenen bir yerleştirme modeline referans almak için tanımlayıcısını belirtin:

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

Şu modeller desteklenir: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002 ve multimodalembedding.

Yerleştirme referansları, Vertex AI API'yi çağıran bir Embed() yöntemine sahiptir:

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

Bir Yerleştirme aracını, dizinleyicinin Index() yöntemine ve bir retriever'ın yöntemine de iletebilirsiniz. Retrieve() yöntemi:

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
}

Daha fazla bilgi için Almayla artırılmış oluşturma (RAG) bölümüne bakın.