Vertex AI eklentisi, çeşitli yapay zeka hizmetlerine arayüz sağlar:
- Google üretken yapay zeka modelleri:
- Gemini metin oluşturma
- Imagen2 resim oluşturma
- Metin yerleştirme oluşturma
- Vertex AI Hızlı Değerlendirme API'si aracılığıyla sunulan değerlendirme metriklerinin bir alt kümesi:
- Vektör Arama
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ı veyaGCLOUD_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 konumunu
location
vertexAI()
yapılandırmasını veyaGCLOUD_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.
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
- Diğer ortamlar için Application Default Credentials (Uygulama Varsayılan Kimlik Bilgileri) sayfasına bakın. dokümanlar.
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, llama31 } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [llama31],
},
}),
],
});
Daha sonra, bunu normal modeller olarak kullanın:
const llmResponse = await generate({
model: llama31,
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.
Dizine ekleyiciler ve retriever'lar
Genkit Vertex AI eklentisi, dizinleyici ve retriever uygulamalarını içerir Vertex AI Vektör Arama hizmeti tarafından desteklenir.
(Dizine eklenenlerin nasıl performans gösterdiğini öğrenmek için Almayla artırılmış oluşturma sayfasına bakın. ve retriever'lar RAG uygulamasında kullanılıyor.)
Vertex AI Vektör Arama hizmeti, tercih ettiğiniz belge deposunu kullanabilirsiniz: belge deposunda ve Vertex AI Vektör Arama dizini her belge için doküman deposundaki doküman için bir referansı ve vektör yerleştirmesini içerir. Dokümanlarınız Vertex AI Vektör Arama hizmeti tarafından dizine eklendikten sonra, arama sorgularına yanıt vererek belge deponuza dizin listeleri oluşturabilirsiniz.
Vertex AI eklentisi tarafından sağlanan indexer ve retriever uygulamaları Cloud Firestore veya BigQuery'yi seçmeniz gerekir. Eklenti ayrıca diğer doküman depolarını desteklemek için uygulayabileceğiniz arayüzler içerir.
Vertex AI Vektör Arama'yı kullanmak için:
Yerleştirme modeli seçin. Bu model, vektörü oluşturmaktan yerleştirilmiş öğeler. İleri düzey kullanıcılar, optimize edilmiş bir yerleştirme modelini kullanabilir ancak çoğu kullanıcı için Vertex AI'ın özellikleri
text-embedding-004
modeli, İngilizce metin vetext-multilingual-embedding-002
modeli çok dilli metinler için uygundur.Vektör Arama bölümünde yeni bir dizin oluşturun. En önemli şunlardır:
Boyutlar: Reklamınızın oluşturduğu vektörlerin boyutlarını seçilen yerleştirme modelidir.
text-embedding-004
vetext-multilingual-embedding-002
modeller 768 vektörleri üretir seçin.Güncelleme yöntemi: Akış güncellemelerini seçin.
Dizini oluşturduktan sonra standart (herkese açık) bir uç noktaya dağıtın.
Kullanmak istediğiniz doküman deposu için bir doküman dizinleyici ve retriever edinin:
Cloud Firestore
import { getFirestoreDocumentIndexer, getFirestoreDocumentRetriever } from '@genkit-ai/vertexai'; import { initializeApp } from 'firebase-admin/app'; import { getFirestore } from 'firebase-admin/firestore'; initializeApp({ projectId: PROJECT_ID }); const db = getFirestore(); const firestoreDocumentRetriever: DocumentRetriever = getFirestoreDocumentRetriever(db, FIRESTORE_COLLECTION); const firestoreDocumentIndexer: DocumentIndexer = getFirestoreDocumentIndexer(db, FIRESTORE_COLLECTION);
BigQuery
import { getBigQueryDocumentIndexer, getBigQueryDocumentRetriever, } from '@genkit-ai/vertexai'; import { BigQuery } from '@google-cloud/bigquery'; const bq = new BigQuery({ projectId: PROJECT_ID }); const bigQueryDocumentRetriever: DocumentRetriever = getBigQueryDocumentRetriever(bq, BIGQUERY_TABLE, BIGQUERY_DATASET); const bigQueryDocumentIndexer: DocumentIndexer = getBigQueryDocumentIndexer(bq, BIGQUERY_TABLE, BIGQUERY_DATASET);
Diğer
Diğer doküman depolarını desteklemek için kendi uygulamalarınızı sağlayabilirsiniz /
DocumentRetriever
veDocumentIndexer
:const myDocumentRetriever: DocumentRetriever = async (neighbors: Neighbor[]) => { // Return the documents referenced by `neighbors`. // ... } const myDocumentIndexer: DocumentIndexer = async (documents: Document[]) => { // Add `documents` to storage. // ... }
Örnek için Sample Vertex AI Plugin Retriever ve Indexer with Local File (Yerel Dosya İçeren Örnek Vertex AI Plugin Retriever ve Indexer) bölümüne bakın.
vertexAI
eklentisi yapılandırmanıza birvectorSearchOptions
bloğu ekleyin:import { configureGenkit } from '@genkit-ai/core'; import { vertexAI, textEmbedding004 } from '@genkit-ai/vertexai'; configureGenkit({ plugins: [ vertexAI({ projectId: PROJECT_ID, location: LOCATION, vectorSearchOptions: [ { indexId: VECTOR_SEARCH_INDEX_ID, indexEndpointId: VECTOR_SEARCH_INDEX_ENDPOINT_ID, deployedIndexId: VECTOR_SEARCH_DEPLOYED_INDEX_ID, publicDomainName: VECTOR_SEARCH_PUBLIC_DOMAIN_NAME, documentRetriever: firestoreDocumentRetriever, documentIndexer: firestoreDocumentIndexer, embedder: textEmbedding004, }, ], }), ], });
İlk adımda seçtiğiniz yerleştiriciyi ve doküman dizinleyiciyi sağlayın ve retriever'a eklemeniz gerekiyor.
Eklentiyi daha önce oluşturduğunuz Vector Search dizinini kullanacak şekilde yapılandırmak için Vektör Araması'nda bulabileceğiniz birkaç değer sağlamanız gerekir bölümünde bulabilirsiniz:
indexId
: Dizinler sekmesinde listelenirindexEndpointId
: Dizin Uç Noktaları sekmesinde listelenirdeployedIndexId
vepublicDomainName
: "Dağıtılan dizinde listelenir" bilgi" bu sayfayı, dağıtılan dizinin adını tıklayarak açabilirsiniz sekmelerin herhangi birinde
Her şey yapılandırıldığına göre, içe aktarma aracı ve dizinleyici referanslarını içe aktarın bulabilirsiniz:
import { vertexAiIndexerRef, vertexAiRetrieverRef, } from '@genkit-ai/vertexai';
index()
veretrieve()
referanslarını iletin:await index({ indexer: vertexAiIndexerRef({ indexId: VECTOR_SEARCH_INDEX_ID, }), documents, });
const res = await retrieve({ retriever: vertexAiRetrieverRef({ indexId: VECTOR_SEARCH_INDEX_ID, }), query: queryDocument, });
Aşağıdakiler için kod örneklerini inceleyin:
- Vertex Vektör Araması + BigQuery
- Vertex Vektör Araması + Firestore
- Vertex Vektör Arama + özel bir veritabanı