Vertex AI eklentisi

Vertex AI eklentisi, Vertex AI API aracılığıyla çeşitli Google üretken yapay zeka modelleri için arayüzler 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 aracılığıyla değerlendirme metriklerinin alt kümesine de erişim sağlar.

Kurulum

npm i --save @genkit-ai/vertexai

Bu eklentiyi kullanan akışları yerel olarak çalıştırmak istiyorsanız Google Cloud KSA aracını da yüklemeniz 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 isteği göndermek istediğiniz bölgeyi ve Google Cloud proje kimlik bilgilerinizi belirtmenizi gerektirir.

  • vertexAI() yapılandırmasında projectId değerini veya 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.

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

  • API kimlik bilgilerini sağlamak için Google Cloud Uygulaması Varsayılan Kimlik Bilgileri'ni 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 gerçekleştirmek için aşağıdaki adımları uygulayın:

      gcloud auth application-default login
      
    2. Ayrıca, hesaba Vertex AI Kullanıcı 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 referansları statik olarak dışa aktarır:

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

generate() ürününün hangi modeli kullandığını belirtmek için bu referansları kullanabilirsiniz:

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

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

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

Bir dizinleyicinin veya retriever'ın hangi gömme aracını kullanacağını belirtmek için bu referansı kullanabilirsiniz. Örneğin, Chroma DB kullanıyorsanız:

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

İsterseniz doğrudan bir gömme 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 Antropik Claude 3

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

Aşağıda, Vertex AI Model Garden modellerinin etkinleştirilmesiyle ilgili ö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 modeller 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ğerlendirmesi'ndeki değerlendiricileri kullanmak için vertexAI eklenti 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ırmada, Safety ve ROUGE metrikleri için değerlendiriciler eklenir. Örnekte iki yaklaşım gösterilmektedir: Safety metriği varsayılan spesifikasyonu kullanırken ROUGE metriği, grup türünü rougeLsum olarak ayarlayan özelleştirilmiş bir spesifikasyon sağlar.

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