בדף הזה מוסבר איך לחבר את RAG Engine ל-Gemini Enterprise Agent Platform Vector Search.
אפשר גם לעקוב אחרי ההוראות באמצעות מחברת RAG Engine with Agent Platform חיפוש וקטורי.
הגדרה של חיפוש וקטורי ב-Agent Platform
Agent Platform Vector Search מבוסס על טכנולוגיית חיפוש וקטורי שפותחה על ידי צוות המחקר של Google. בעזרת חיפוש וקטורי אפשר להשתמש באותה תשתית שמספקת בסיס למוצרי Google כמו חיפוש Google, YouTube ו-Google Play.
כדי לבצע שילוב עם RAG Engine, נדרש אינדקס חיפוש וקטורי ריק.
הגדרת Vertex AI SDK
הוראות להגדרה של Vertex AI SDK מופיעות במאמר בנושא הגדרה.
יצירת אינדקס חיפוש וקטורי
כדי ליצור אינדקס של חיפוש וקטורי שתואם ל-RAG Corpus, האינדקס צריך לעמוד בקריטריונים הבאים:
IndexUpdateMethodחייב להיותSTREAM_UPDATE, ראו יצירת אינדקס של מקור נתונים.צריך להגדיר במפורש את סוג מדד המרחק לאחד מהערכים הבאים:
DOT_PRODUCT_DISTANCECOSINE_DISTANCE
המימד של הווקטור צריך להיות עקבי עם מודל ההטמעה שמתכננים להשתמש בו במאגר המידע של RAG. אפשר לשנות פרמטרים אחרים בהתאם לבחירות שלכם, והם קובעים אם אפשר לשנות את הפרמטרים הנוספים.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
יצירה של נקודת קצה של אינדקס חיפוש וקטורי
מנוע RAG תומך בנקודות קצה ציבוריות.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
פריסת אינדקס לנקודת קצה של אינדקס
לפני שמבצעים חיפוש של השכן הקרוב ביותר, צריך לפרוס את האינדקס לנקודת קצה של אינדקס.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
אם זו הפעם הראשונה שאתם פורסים אינדקס לנקודת קצה של אינדקס, ייקח בערך 30 דקות עד שהקצה העורפי ייבנה ויופעל באופן אוטומטי, ורק אז אפשר יהיה לאחסן את האינדקס. אחרי הפריסה הראשונה, האינדקס מוכן תוך שניות. כדי לראות את סטטוס הפריסה של האינדקס, פותחים את Vector Search Console, בוחרים בכרטיסייה Index endpoints (נקודות קצה של אינדקסים) ובוחרים את נקודת הקצה של האינדקס.
מזהים את שם המשאב של האינדקס ושל נקודת הקצה של האינדקס, בפורמטים הבאים:
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}.
שימוש בחיפוש וקטורי ב-Agent Platform ב-RAG Engine
אחרי שמגדירים את מופע החיפוש הווקטורי, פועלים לפי השלבים שבקטע הזה כדי להגדיר את מופע החיפוש הווקטורי כמסד הנתונים הווקטורי של אפליקציית RAG.
הגדרת מסד נתונים וקטורי ליצירת מאגר מידע של RAG
כשיוצרים את מאגר המידע של RAG, מציינים רק את INDEX_ENDPOINT_NAME המלא ואת INDEX_NAME. חשוב להשתמש במזהה המספרי בשמות המשאבים של האינדקס ושל נקודת הקצה של האינדקס. מאגר הנתונים של RAG נוצר ומקושר אוטומטית לאינדקס החיפוש הווקטורי. האימותים מתבצעים לפי הקריטריונים. אם אחת מהדרישות לא מתקיימת, הבקשה נדחית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
# TODO(developer): Update and un-comment the following lines:
# CORPUS_DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
# Full index/indexEndpoint resource name
# Index: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
# IndexEndpoint: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
# INDEX_RESOURCE_NAME = "YOUR_INDEX_ENDPOINT_RESOURCE_NAME"
# INDEX_NAME = "YOUR_INDEX_RESOURCE_NAME"
# Call CreateRagCorpus API to create a new RagCorpus
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora -d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"vertex_vector_search": {
"index":'\""${INDEX_NAME}"\"'
"index_endpoint":'\""${INDEX_ENDPOINT_NAME}"\"'
}
}
}'
# Call ListRagCorpora API to verify the RagCorpus is created successfully
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora"
ייבוא קבצים באמצעות RAG API
משתמשים בשיטת ragFiles.import API כדי לייבא קבצים מ-Cloud Storage או מ-Google Drive לאינדקס החיפוש הווקטורי. הקבצים מוטמעים ומאוחסנים באינדקס החיפוש הווקטורי.
REST
# TODO(developer): Update and uncomment the following lines:
# RAG_CORPUS_ID = "your-rag-corpus-id"
#
# Cloud de Confiance by S3NS Storage bucket/file location.
# For example, "gs://rag-fos-test/"
# GCS_URIS= "your-gcs-uris"
# Call ImportRagFiles API to embed files and store in the BigQuery table
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
}
}
}'
# Call ListRagFiles API to verify the files are imported successfully
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
אחזור הקשרים רלוונטיים באמצעות RAG API
אחרי השלמת הייבוא של הקבצים, אפשר לאחזר את ההקשר הרלוונטי מאינדקס חיפוש הווקטורים באמצעות RetrieveContexts API.
REST
# TODO(developer): Update and uncomment the following lines:
# RETRIEVAL_QUERY="your-retrieval-query"
#
# Full RAG corpus resource name
# Format:
# "projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}"
# RAG_CORPUS_RESOURCE="your-rag-corpus-resource"
# Call RetrieveContexts API to retrieve relevant contexts
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1:retrieveContexts \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
},
"query": {
"text": '\""${RETRIEVAL_QUERY}"\"',
"similarity_top_k": 10
}
}'
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
יצירת תוכן באמצעות Agent Platform Gemini API
כדי ליצור תוכן באמצעות מודלים של Gemini, צריך לבצע קריאה ל-Agent Platform GenerateContent API. אם מציינים את RAG_CORPUS_RESOURCE בבקשה, ה-API מאחזר נתונים באופן אוטומטי מאינדקס החיפוש הווקטורי.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-2.5-flash
# GENERATE_CONTENT_PROMPT="your-generate-content-prompt"
# GenerateContent with contexts retrieved from the FeatureStoreOnline index
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": {
"role": "user",
"parts": {
"text": '\""${GENERATE_CONTENT_PROMPT}"\"'
}
},
"tools": {
"retrieval": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"similarity_top_k": 8,
"vector_distance_threshold": 0.32
}
}
}
}'
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.