Vertex AI प्लगिन, कई एआई सेवाओं के लिए इंटरफ़ेस उपलब्ध कराता है:
- Google के जनरेटिव एआई मॉडल:
- Gemini का टेक्स्ट जनरेट करना
- Imagen2 इमेज जनरेशन
- टेक्स्ट एम्बेड करने की प्रोसेस जनरेट करना
- Vertex AI रैपिड इवैलुएशन एपीआई की मदद से, इवैलुएशन मेट्रिक का एक सबसेट:
- वेक्टर खोज
इंस्टॉल करना
npm i --save @genkit-ai/vertexai
अगर आपको इस प्लगिन का इस्तेमाल करने वाले फ़्लो को लोकल तौर पर चलाना है, तो आपको Google Cloud CLI टूल इंस्टॉल किया गया.
कॉन्फ़िगरेशन
इस प्लग इन का उपयोग करने के लिए, configureGenkit()
को कॉल करते समय इसका उल्लेख करें:
import { vertexAI } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
],
// ...
});
प्लगिन के लिए आपको अपना Google Cloud प्रोजेक्ट आईडी बताना होगा, क्षेत्र जिसके लिए आपको Vertex API अनुरोध और अपना Google Cloud प्रोजेक्ट ऐक्सेस करना है क्रेडेंशियल डालें.
अपना Google Cloud प्रोजेक्ट आईडी तय करने के लिए,
projectId
कोvertexAI()
कॉन्फ़िगरेशन याGCLOUD_PROJECT
एनवायरमेंट को सेट करके वैरिएबल. अगर Google Cloud के एनवायरमेंट (Cloud इस्तेमाल करने का तरीका) से फ़्लो चलाया जा रहा है फ़ंक्शन, Cloud Run वगैरह),GCLOUD_PROJECT
अपने-आप एनवायरमेंट का प्रोजेक्ट आईडी.एपीआई की जगह की जानकारी देने के लिए, यहां दिए गए विकल्पों में से
location
कोvertexAI()
कॉन्फ़िगरेशन याGCLOUD_LOCATION
एनवायरमेंट को सेट करके वैरिएबल.एपीआई क्रेडेंशियल देने के लिए, आपको Google Cloud ऐप्लिकेशन सेट अप करना होगा डिफ़ॉल्ट क्रेडेंशियल.
अपने क्रेडेंशियल बताने के लिए:
अगर Google Cloud के एनवायरमेंट (Cloud इस्तेमाल करने का तरीका) से फ़्लो चलाया जा रहा है फ़ंक्शन, Cloud Run वगैरह), तो यह अपने-आप सेट हो जाता है.
अपने स्थानीय डेवलपर एनवायरमेंट पर, इसे चलाकर ऐसा करें:
gcloud auth application-default login
- अन्य एनवायरमेंट के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल देखें दस्तावेज़.
इसके अलावा, पक्का करें कि खाते को Vertex AI उपयोगकर्ता की आईएएम की भूमिका दी गई हो (
roles/aiplatform.user
). Vertex AI का ऐक्सेस कंट्रोल देखें दस्तावेज़.
इस्तेमाल किए जाने से जुड़ी जानकारी
जनरेटिव एआई मॉडल
यह प्लगिन, इसके साथ काम करने वाले जनरेटिव एआई मॉडल के रेफ़रंस को स्टैटिक तरीके से एक्सपोर्ट करता है:
import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';
इन रेफ़रंस का इस्तेमाल करके यह तय किया जा सकता है कि generate()
कौनसा मॉडल इस्तेमाल करेगा:
const llmResponse = await generate({
model: gemini15Flash,
prompt: 'What should I do when I visit Melbourne?',
});
यह प्लगिन, Gecko टेक्स्ट एम्बेड करने के रेफ़रंस को भी स्टैटिक तरीके से एक्सपोर्ट करता है मॉडल:
import { textEmbeddingGecko } from '@genkit-ai/vertexai';
इस रेफ़रंस का इस्तेमाल करके यह तय किया जा सकता है कि कौनसा एम्बेडर, इंडेक्सर या रिट्रीवर है या नहीं इस्तेमाल. उदाहरण के लिए, अगर Chroma DB का इस्तेमाल किया जाता है:
configureGenkit({
plugins: [
chroma([
{
embedder: textEmbeddingGecko,
collectionName: 'my-collection',
},
]),
],
});
इसके अलावा, सीधे तौर पर एम्बेड करने की सुविधा भी जनरेट की जा सकती है:
// 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 पर एंथ्रोपिक क्लाउड 3
अगर आपके पास Vertex AI Model Garden में Claude 3 मॉडल (हाइकू, सोनेट या ऑपस) का ऐक्सेस है, तो उन्हें Genkit के साथ इस्तेमाल किया जा सकता है.
Vertex AI Model Garden मॉडल को चालू करने के लिए, यहां कॉन्फ़िगरेशन का सैंपल दिया गया है:
import {
vertexAI,
claude3Haiku,
claude3Sonnet,
claude3Opus,
} from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [claude3Haiku, claude3Sonnet, claude3Opus],
},
}),
],
});
इसके बाद, उनका इस्तेमाल सामान्य मॉडल के तौर पर करें:
const llmResponse = await generate({
model: claude3Sonnet,
prompt: 'What should I do when I visit Melbourne?',
});
Vertex AI Model Garden पर Llama 3.1 405b
सबसे पहले, आपको Vertex AI Model Garden में Llama 3.1 API सेवा को चालू करना होगा.
Vertex AI प्लगिन में, Llama 3.1 405b के लिए कॉन्फ़िगरेशन का सैंपल यहां दिया गया है:
import { vertexAI, llama31 } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [llama31],
},
}),
],
});
इसके बाद, इसका इस्तेमाल सामान्य मॉडल के तौर पर करें:
const llmResponse = await generate({
model: llama31,
prompt: 'Write a function that adds two numbers together',
});
मूल्यांकन करने वाले
Vertex AI Rapid Schema के समीक्षकों का इस्तेमाल करने के लिए, अपने vertexAI
प्लगिन के कॉन्फ़िगरेशन में evaluation
ब्लॉक जोड़ें.
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',
},
},
],
},
}),
],
// ...
});
ऊपर दिए गए कॉन्फ़िगरेशन में, Safety
और ROUGE
मेट्रिक का आकलन करने वाले लोग जोड़े गए हैं. इस उदाहरण में दो तरीके बताए गए हैं- Safety
मेट्रिक में डिफ़ॉल्ट स्पेसिफ़िकेशन का इस्तेमाल किया गया है, जबकि ROUGE
मेट्रिक में रूज टाइप को rougeLsum
पर सेट करने के लिए, अपने हिसाब से जानकारी दी गई है.
दोनों समीक्षकों को genkit eval:run
कमांड का इस्तेमाल करके, एक-दूसरे के साथ काम करने वाले डेटासेट के साथ चलाया जा सकता है. जैसे, output
और reference
फ़ील्ड वाला डेटासेट. Safety
का आकलन करने वाले को genkit eval:flow -e vertexai/safety
निर्देश का इस्तेमाल करके भी चलाया जा सकता है, क्योंकि इसके लिए सिर्फ़ output
की ज़रूरत होती है.
इंडेक्सर और रिट्रीवर
Genkit Vertex AI प्लगिन में, इंडेक्सर और रिट्रीवर को लागू करने के तरीके शामिल हैं Vertex AI वेक्टर खोज सेवा पर काम करती है.
(इंडेक्सर किस तरह से इंडेक्स करते हैं, यह जानने के लिए रिकवरी-एगमेंटेड जनरेशन पेज देखें और रिट्रीवर का इस्तेमाल आरएजी लागू करने में किया जाता है.)
Vertex AI वेक्टर Search सेवा एक दस्तावेज़ इंडेक्स है, जो आपकी पसंद का दस्तावेज़ स्टोर: दस्तावेज़ स्टोर में के दस्तावेज़ हैं, और Vertex AI वेक्टर Search इंडेक्स में शामिल हैं, तो हर दस्तावेज़ के लिए, इसके वेक्टर एम्बेडिंग और डॉक्यूमेंट स्टोर में दस्तावेज़ का रेफ़रंस. आपके दस्तावेज़ों को Vertex AI वेक्टर Search सेवा से इंडेक्स कराने के बाद, खोज क्वेरी का जवाब देने के लिए, जिसमें आपके डॉक्यूमेंट स्टोर में इंडेक्स की सूची तैयार होती है.
Vertex AI प्लगिन के लिए, इंडेक्स और रिट्रीवर को लागू करने का तरीका Cloud Firestore या BigQuery का इस्तेमाल करके दस्तावेज़ स्टोर बना सकते हैं. यह प्लगिन भी इसमें ऐसे इंटरफ़ेस शामिल हैं जिनका इस्तेमाल, दस्तावेज़ के अन्य स्टोर के लिए किया जा सकता है.
Vertex AI वेक्टर खोज का इस्तेमाल करने के लिए:
एम्बेड करने का कोई मॉडल चुनें. यह मॉडल वेक्टर बनाने के लिए ज़िम्मेदार है टेक्स्ट से एम्बेड करना. बेहतर उपयोगकर्ता, ऑप्टिमाइज़ किए गए एम्बेडिंग मॉडल का इस्तेमाल कर सकते हैं लेकिन ज़्यादातर उपयोगकर्ताओं के लिए, Vertex AI
text-embedding-004
मॉडल अंग्रेज़ी लेख के लिए एक अच्छा विकल्प है औरtext-multilingual-embedding-002
मॉडल, एक से ज़्यादा भाषाओं में लिखे जाने वाले टेक्स्ट के लिए अच्छा है.वेक्टर खोज में सेक्शन में जाकर, नया इंडेक्स बनाएं. सबसे ज़रूरी ये सेटिंग हैं:
डाइमेंशन: अपने बनाए हुए वेक्टर की डाइमेंशन के बारे में बताएं आपने एम्बेड करने का मॉडल चुना है.
text-embedding-004
औरtext-multilingual-embedding-002
मॉडल से 768 सदिश मिलते हैं डाइमेंशन.अपडेट करने का तरीका: स्ट्रीम किए जाने वाले अपडेट चुनें.
इंडेक्स बनाने के बाद, उसे किसी स्टैंडर्ड (सार्वजनिक) एंडपॉइंट पर डिप्लॉय करें.
आपको जिस दस्तावेज़ स्टोर का इस्तेमाल करना है उसके लिए दस्तावेज़ इंडेक्स करने वाला और रिट्रीवर पाने का तरीका:
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);
अन्य
अन्य दस्तावेज़ स्टोर की सुविधा देने के लिए, अपने हिसाब से इंप्लिमेंटेशन दिए जा सकते हैं
DocumentRetriever
औरDocumentIndexer
में से:const myDocumentRetriever: DocumentRetriever = async (neighbors: Neighbor[]) => { // Return the documents referenced by `neighbors`. // ... } const myDocumentIndexer: DocumentIndexer = async (documents: Document[]) => { // Add `documents` to storage. // ... }
उदाहरण के लिए, Local File के साथ Vertex AI प्लगिन रिट्रीवर और इंडेक्सर का सैंपल देखें.
अपने
vertexAI
प्लगिन कॉन्फ़िगरेशन में कोईvectorSearchOptions
ब्लॉक जोड़ें: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, }, ], }), ], });
पहले चरण में चुना गया एम्बेडर और दस्तावेज़ इंडेक्स करने वाला टूल उपलब्ध कराएं और रिट्रीवर को डाउनलोड करें.
आपके द्वारा पहले बनाए गए वेक्टर खोज इंडेक्स का उपयोग करने के लिए प्लग-इन को कॉन्फ़िगर करने के लिए, आपको कई मान देने होंगे, जिन्हें आप वेक्टर खोज सेक्शन:
indexId
: इंडेक्स टैब में मौजूद होता हैindexEndpointId
: इंडेक्स एंडपॉइंट टैब में शामिल किया गयाdeployedIndexId
औरpublicDomainName
: "डिप्लॉय किए गए इंडेक्स" में शामिल हैं जानकारी" पेज, जिसे डिप्लॉय किए गए इंडेक्स के नाम पर क्लिक करके खोला जा सकता है ऊपर बताए गए किसी भी टैब पर
अब जब सब कुछ कॉन्फ़िगर हो गया है, तो रिट्रीवर और इंडेक्सर रेफ़रंस को इंपोर्ट करें प्लग इन से:
import { vertexAiIndexerRef, vertexAiRetrieverRef, } from '@genkit-ai/vertexai';
index()
औरretrieve()
के रेफ़रंस पास करें:await index({ indexer: vertexAiIndexerRef({ indexId: VECTOR_SEARCH_INDEX_ID, }), documents, });
const res = await retrieve({ retriever: vertexAiRetrieverRef({ indexId: VECTOR_SEARCH_INDEX_ID, }), query: queryDocument, });
इनके लिए कोड सैंपल देखें: