בדף הזה מוסבר איך להשתמש במנוע RAG במנתח LLM של פלטפורמת הסוכנים של Gemini Enterprise.
מבוא
מנוע RAG משתמש ב-LLM לניתוח מסמכים. מודלים גדולים של שפה (LLM) יכולים לעבד מסמכים ביעילות בדרכים הבאות:
- להבין ולפרש תוכן סמנטי בפורמטים שונים.
- אחזור של קטעי מסמכים רלוונטיים.
- לחלץ מידע משמעותי ממסמכים.
- לזהות קטעים רלוונטיים במסמכים.
- לסכם מסמכים מורכבים בצורה מדויקת.
- הבנה של תמונות ואינטראקציה איתן.
- חילוץ נתונים מתרשימים ומדיאגרמות.
- לתאר תמונות.
- להבין את הקשר בין תרשימים לטקסט.
- לספק תשובות מדויקות יותר עם יותר הקשר.
היכולות של מנוע RAG משפרות באופן משמעותי את איכות התשובות שנוצרות.
מודלים נתמכים
המודלים הבאים תומכים בניתוח של מודל שפה גדול (LLM) של מנוע RAG:
סוגי קבצים נתמכים
סוגי הקבצים הבאים נתמכים על ידי מנתח ה-LLM:
application/pdfimage/pngimage/jpegimage/webpimage/heicimage/heif
תמחור ומכסות
פרטים על התמחור זמינים במאמר בנושא תמחור של Gemini Enterprise Agent Platform.
במאמר מכסות לקצב שליחת בקשות מפורטות המכסות הרלוונטיות.
כדי לנתח את המסמכים, מנתח ה-LLM קורא למודלים של Gemini. הפעולה הזו יוצרת עלויות נוספות, שמחויבות בפרויקט. אפשר להעריך את העלות באמצעות הנוסחה הבאה:
cost = number_of_document_files * average_pages_per_document * (average_input_tokens * input_token_pricing_of_selected_model + average_output_tokens * output_token_pricing_of_selected_model)
לדוגמה, יש לכם 1,000 קובצי PDF, ולכל קובץ PDF יש 50 דפים. בממוצע, כל עמוד PDF מכיל 500 טוקנים, וצריך עוד 100 טוקנים כדי ליצור הנחיה. הפלט הממוצע הוא 100 טוקנים.
Gemini 2.0 Flash-Lite משמש בהגדרה שלכם לניתוח, והעלות שלו היא 0.075 $למיליון טוקנים של קלט ו-0.3 $לטוקנים של טקסט פלט.
cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75
העלות היא 3.75$.
ייבוא קבצים עם LlmParser מופעל
מחליפים את הערכים במשתנים הבאים שמופיעים בדוגמאות הקוד:
PROJECT_ID: המזהה של פרויקט Google Cloud .
LOCATION: האזור שבו הבקשה שלכם מעובדת.
RAG_CORPUS_RESOURCE: מזהה הקורפוס.
GCS_URI: ה-URI של Cloud Storage של הקבצים שרוצים לייבא.
GOOGLE_DRIVE_URI: ה-URI של הקבצים ב-Google Drive שרוצים לייבא.
MODEL_NAME: שם המשאב של המודל שמשמש לניתוח.
פורמט:
projects/{project_id}/locations/{location}/publishers/google/models/{model_id}CUSTOM_PARSING_PROMPT: אופציונלי: הנחיה מותאמת אישית שהלקוח מגדיר כדי שמנתח ה-LLM ישתמש בה לניתוח מסמכים.
MAX_PARSING_REQUESTS_PER_MIN: אופציונלי: המספר המקסימלי של בקשות שהעבודה יכולה לשלוח למודל של פלטפורמת הסוכנים בדקה. מידע נוסף זמין במאמר בנושא מגבלות על שיעורי בקשות בפלטפורמת הסוכנים של AI גנרטיבי ובדף Quotas & System Limits של הפרויקט, שבו אפשר להגדיר ערך מתאים.
REST
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
"import_rag_files_config": {
"gcs_source": {
"uris": ["GCS_URI", "GOOGLE_DRIVE_URI"]
},
"rag_file_chunking_config": {
"chunk_size": 512,
"chunk_overlap": 102
},
"rag_file_parsing_config": {
"llm_parser": {
"model_name": "MODEL_NAME",
"custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
"max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
}
}
}
}'
Python
במאמר התקנת Agent Platform SDK ל-Python מוסבר איך להתקין או לעדכן את Agent Platform SDK ל-Python. מידע נוסף מופיע במאמרי העזרה של Python API.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "RAG_CORPUS_RESOURCE"
LOCATION = "LOCATION"
MODEL_ID = "MODEL_ID"
MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional
PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Initialize Agent Platform API once per session
vertexai.init(project={PROJECT_ID}, location={LOCATION})
transformation_config = rag.TransformationConfig(
chunking_config=rag.ChunkingConfig(
chunk_size=1024, # Optional
chunk_overlap=200, # Optional
),
)
llm_parser_config = rag.LlmParserConfig(
model_name = MODEL_NAME,
max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
)
rag.import_files(
CORPUS_NAME,
PATHS,
llm_parser=llm_parser_config,
transformation_config=transformation_config,
)
הנחיות
מנתח ה-LLM של RAG Engine ב-Gemini Enterprise Agent Platform משתמש בהנחיה מוגדרת מראש ומכווננת לניתוח מסמכים. עם זאת, אם יש לכם מסמכים מיוחדים שאולי לא מתאימים להנחיה כללית, אתם יכולים לציין הנחיית ניתוח מותאמת אישית כשאתם משתמשים ב-API. כשמבקשים מ-Gemini לנתח את המסמכים, אפליקציית RAG Engine מוסיפה הנחיה להנחיית המערכת שמוגדרת כברירת מחדל.
טבלה של תבניות הנחיות
כדי לעזור בניתוח מסמכים, בטבלה הבאה מופיע תבנית של הנחיה לדוגמה שתעזור לכם ליצור הנחיות שמנוע RAG יכול להשתמש בהן כדי לנתח את המסמכים שלכם:
| הוראות | הצהרת תבנית | דוגמה |
|---|---|---|
| מציינים תפקיד. | אתה [מציין את התפקיד, כמו חילוץ נתונים עובדתיים או אחזור מידע]. | אתה מאחזר מידע. |
| מציינים את המשימה. | תחלץ [ציין את סוג המידע, כמו הצהרות עובדתיות, נתונים מרכזיים או פרטים ספציפיים] מתוך [ציין את מקור המסמך, כמו מסמך, טקסט, מאמר, תמונה, טבלה]. | לחלץ נתונים מרכזיים מקובץ sample.txt. |
| צריך להסביר איך רוצים שמודל ה-LLM ייצור את הפלט בהתאם למסמכים. | תציג כל עובדה ב[Specify the output format, such as a structured list or text format], ותקשר אותה ל[Specify the source location, such as a page, paragraph, table, or row]. | מציגים כל עובדה ברשימה מובנית ומקשרים לדף הדוגמה שלה. |
| הדגישו במה מודל ה-LLM צריך להתמקד. | תחלץ [Specify the key data types, such as the names, dates, numbers, attributes, or relationships] בדיוק כמו שהם מופיעים. | חילוץ שמות ותאריכים. |
| מדגישים את מה שלא רוצים שה-LLM יעשה. | [List the actions to avoid, such as analysis, interpretation, summarizing, inferring, or giving opinions]. תחלץ רק את מה שכתוב במפורש במסמך. | לא להביע דעות. תחלץ רק את מה שכתוב במפורש במסמך. |
הנחיות כלליות
כדי לכתוב את ההנחיה לשליחה למנתח ה-LLM, צריך לפעול לפי ההנחיות הבאות.
- ספציפית: מגדירים בבירור את המשימה ואת סוג המידע שצריך לחלץ.
- מפורטות: צריך לספק הוראות מפורטות לגבי פורמט הפלט, שיוך המקור וטיפול במבני נתונים שונים.
- הגבלת הפעולה: מציינים במפורש מה ה-AI לא צריך לעשות, כמו ניתוח או פרשנות.
- ברור: השתמשו בשפה ברורה ומכוונת.
- מובנה: כדי שההוראות יהיו קלות לקריאה, כדאי לארגן אותן באופן הגיוני באמצעות רשימות ממוספרות או רשימות עם תבליטים.
ניתוח איכות של הניתוח
בטבלה הזו מפורטות תוצאות של תרחישים שהלקוחות הריצו באמצעות RAG Engine ב-Gemini Enterprise Agent Platform. המשוב מראה שהכלי לניתוח מסמכים מבוסס-LLM משפר את האיכות של ניתוח מסמכים.
| תרחיש | תוצאה | |
|---|---|---|
| ניתוח מידע בשקפים וקישור בין חלקים | מנתח ה-LLM קישר בהצלחה בין כותרות של קטעים בשקף אחד לבין המידע המפורט שמוצג בשקפים הבאים. | |
| הסבר על טבלאות ועל חילוץ מידע מהן | מנתח ה-LLM קשר נכון בין עמודות וכותרות בטבלה גדולה כדי לענות על שאלות ספציפיות. | |
| פירוש תרשימי זרימה | מנתח ה-LLM הצליח לפעול לפי הלוגיקה של תרשים זרימה ולחלץ את רצף הפעולות הנכון ואת המידע התואם. | |
| חילוץ נתונים מתרשימים | מנתח ה-LLM יכול לפרש סוגים שונים של תרשימים, כמו תרשימי קו, ולחלץ נקודות נתונים ספציפיות על סמך השאילתה. | |
| תיעוד הקשרים בין הכותרות לטקסט | מנתח ה-LLM, בהנחיית ההנחיה, שם לב למבני הכותרות ויכול לאחזר את כל המידע הרלוונטי שמשויך לנושא או לקטע מסוים. | |
| אפשר להתגבר על מגבלות ההטמעה באמצעות הנדסת הנחיות | למרות שבמקרים מסוימים השימוש במודל ההטמעה היה מוגבל, ניסויים נוספים הראו שהנחיה מנוסחת היטב למנתח LLM יכולה לצמצם את הבעיות האלה ולאחזר את המידע הנכון גם כשההבנה הסמנטית מאתגרת את מודל ההטמעה לבדו. |
הכלי LLM parser משפר את היכולת של ה-LLM להבין את ההקשר במסמך ולחשוב עליו, וכך הוא יכול לספק תשובות מדויקות ומקיפות יותר.
שאילתת אחזור
אחרי שמזינים הנחיה שנשלחת למודל AI גנרטיבי, רכיב האחזור ב-RAG מחפש בבסיס הידע שלו מידע שרלוונטי לשאילתה. מידע נוסף על אחזור קובצי RAG ממאגר מידע זמין במאמר בנושא שיטה: ragFiles.get.
המאמרים הבאים
מידע נוסף על RAG Engine ב-Gemini Enterprise Agent Platform זמין במאמר סקירה כללית של RAG Engine ב-Gemini Enterprise Agent Platform.
מידע נוסף על מנוע RAG ב-Gemini Enterprise Agent Platform