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

Vertex AI Model Garden'da Llama 3.1 405b'ye erişiminiz varsa bunu Genkit ile kullanabilirsiniz.

Vertex AI Model Garden modellerini etkinleştirmek için aşağıdaki örnek yapılandırma 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.