Vertex AI eklentisi

Vertex AI eklentisi, Vertex AI API üzerinden çeşitli Google üretken yapay zeka modellerine arayüz sağlar:

  • Gemini 1.0 Pro ve Gemini 1.0 Pro Vision metin oluşturma
  • Imagen2 resim oluşturma
  • Geko metin yerleştirme oluşturma

Ayrıca Vertex AI Hızlı Değerlendirme API'si üzerinden değerlendirme metriklerinin alt kümesine erişim de sunar.

Kurulum

npm i --save @genkit-ai/vertexai

Bu eklentiyi kullanan akışları yerel olarak çalıştırmak istiyorsanız Google Cloud CLI aracının yüklü olması da gerekir.

Yapılandırma

Bu eklentiyi kullanmak için configureGenkit() çağırırken eklentiyi belirtin:

import { vertexAI } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
  ],
  // ...
});

Eklenti; Google Cloud proje kimliğinizi, Vertex API isteklerinde bulunmak istediğiniz bölgeyi ve Google Cloud projesi kimlik bilgilerinizi belirtmenizi gerektirir.

  • vertexAI() yapılandırmasında projectId öğesini ya da GCLOUD_PROJECT ortam değişkenini ayarlayarak Google Cloud proje kimliğinizi belirtebilirsiniz. Akışınızı bir Google Cloud ortamından (Cloud Functions, Cloud Run vb.) çalıştırıyorsanız GCLOUD_PROJECT, otomatik olarak ortamın proje kimliğine ayarlanır.

  • API konumunu, vertexAI() yapılandırmasında location öğesini ayarlayarak veya GCLOUD_LOCATION ortam değişkenini ayarlayarak belirtebilirsiniz.

  • API kimlik bilgilerini sağlamak için Google Cloud Uygulaması Varsayılan Kimlik Bilgilerini ayarlamanız gerekir.

    1. Kimlik bilgilerinizi belirtmek için:

      • Akışınızı bir Google Cloud ortamından (Cloud Functions, Cloud Run vb.) çalıştırıyorsanız bu ayar 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ü (roles/aiplatform.user) verildiğinden emin olun. Vertex AI erişim denetimi belgelerine bakın.

Kullanım

Üretken Yapay Zeka Modelleri

Bu eklenti, desteklenen üretken yapay zeka modellerine yapılan referansları statik olarak dışa aktarır:

import { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

generate() tarafından kullanılacak modeli belirtmek için bu referanslardan yararlanabilirsiniz:

const llmResponse = await generate({
  model: geminiPro,
  prompt: 'What should I do when I visit Melbourne?',
});

Bu eklenti, Gecko metin yerleştirme modeline referansı da statik olarak dışa aktarır:

import { textEmbeddingGecko } from '@genkit-ai/vertexai';

Bir dizinleyicinin veya retriever'ın hangi yerleştiriciyi kullanacağını belirtmek için bu referansı kullanabilirsiniz. Örneğin, Chroma DB kullanıyorsanız:

configureGenkit({
  plugins: [
    chroma([
      {
        embedder: textEmbeddingGecko,
        collectionName: 'my-collection',
      },
    ]),
  ],
});

Dilerseniz doğrudan bir yerleştirme oluşturabilirsiniz:

// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
  embedder: textEmbeddingGecko,
  content: 'How many widgets do you have in stock?',
});

Vertex AI Model Garden'da Anthropic Claude 3

Vertex AI Model Garden'da Claude 3 modellerine (haiku, sonnet veya opus) erişiminiz varsa bunları Genkit ile kullanabilirsiniz.

Vertex AI Model Garden modellerini etkinleştirmek için aşağıdaki örnek yapılandırma verilmiştir:

import {
  vertexAI,
  claude3Haiku,
  claude3Sonnet,
  claude3Opus,
} from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
    }),
  ],
});

Daha sonra bunları normal model olarak kullanın:

const llmResponse = await generate({
  model: claude3Sonnet,
  prompt: 'What should I do when I visit Melbourne?',
});

Değerlendiriciler

Vertex AI Hızlı Değerlendirme'deki değerlendiricileri kullanmak için vertexAI eklentisi yapılandırmanıza bir evaluation bloğu ekleyin.

import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      projectId: 'your-cloud-project',
      location: 'us-central1',
      evaluation: {
        metrics: [
          VertexAIEvaluationMetricType.SAFETY,
          {
            type: VertexAIEvaluationMetricType.ROUGE,
            metricSpec: {
              rougeType: 'rougeLsum',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

Yukarıdaki yapılandırma, Safety ve ROUGE metrikleri için değerlendiriciler ekler. Örnekte iki yaklaşım gösterilmektedir: Safety metriği varsayılan spesifikasyonu kullanırken ROUGE metriği, rouge türünü rougeLsum olarak ayarlayan özelleştirilmiş bir spesifikasyon sağlar.

Her iki değerlendirici de genkit eval:run komutu kullanılarak uyumlu bir veri kümesiyle (yani output ve reference alanları olan bir veri kümesi) çalıştırılabilir. Safety değerlendiricisi, yalnızca output gerektirdiğinden genkit eval:flow -e vertexai/safety komutu kullanılarak da çalıştırılabilir.