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ındaprojectId
öğesini ya daGCLOUD_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ızGCLOUD_PROJECT
, otomatik olarak ortamın proje kimliğine ayarlanır.API konumunu,
vertexAI()
yapılandırmasındalocation
öğesini ayarlayarak veyaGCLOUD_LOCATION
ortam değişkenini ayarlayarak belirtebilirsiniz.API kimlik bilgilerini sağlamak için Google Cloud Uygulaması Varsayılan Kimlik Bilgilerini ayarlamanız gerekir.
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
- Diğer ortamlar için Uygulama Varsayılan Kimlik Bilgileri belgelerine bakın.
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.