Vertex AI eklentisi

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

  • 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ı yüklenmiş olmalıdır.

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 projenizin kimliğini belirtmenizi gerektirir. region [bölge] Vertex API isteklerinde bulunmak istediğiniz paket ve Google Cloud projeniz kimlik bilgileri.

  • Google Cloud proje kimliğinizi, şurada projectId öğesini ayarlayarak belirtebilirsiniz: vertexAI() yapılandırmasını veya GCLOUD_PROJECT ortamını ayarlayarak değişkenine eklenmelidir. Akışınızı bir Google Cloud ortamından (Cloud) çalıştırıyorsanız Functions, Cloud Run vb.) GCLOUD_PROJECT, otomatik olarak ortamın proje kimliğidir.

  • API konumunulocation vertexAI() yapılandırmasını veya GCLOUD_LOCATION ortamını ayarlayarak değişkenine eklenmelidir.

  • 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

Üretken Yapay Zeka Modelleri

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

import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';

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

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

Bu eklenti ayrıca, yerleştirilmiş Gecko metin referansını statik olarak dışa aktarır model:

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

Bir dizinleyici veya alıcıyı hangi yerleştiriciyi belirtmek için bu referansı kullanabilirsiniz? belirler. Ö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',
      modelGarden: {
        models: [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?',
});

Vertex AI Model Garden'da Lama 3.1 405b

Öncelikle Vertex AI Model Garden'da Llama 3.1 API Service'i etkinleştirmeniz gerekir.

Vertex AI eklentisinde Llama 3.1 405b için örnek yapılandırma aşağıda verilmiştir:

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

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGarden: {
        models: [llama3],
      },
    }),
  ],
});

Daha sonra, bunu normal modeller olarak kullanın:

const llmResponse = await generate({
  model: llama3,
  prompt: 'Write a function that adds two numbers together',
});

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.