ה-Semant Retrieval API מספק שירות מענה לשאלות מתארח לבניית מערכות לאחזור Augmented Generation (RAG) באמצעות התשתית של Google. הוראות מפורטות מפורטות במדריך לאחזור סמנטי.
שיטה: model.generateAnswer
- נקודת קצה (endpoint)
- פרמטרים של נתיב
- גוף הבקשה
- גוף התשובה
- היקפי הרשאה
- GroundingPassages
- GroundingPassage
- SemanticRetrieverConfig
- AnswerStyle
- InputFeedback
- BlockReason
יוצרת תשובה בסיסית מהמודל בהינתן קלט GenerateAnswerRequest
.
נקודת קצה
לשלוח
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer
פרמטרים של נתיב
model
string
חובה. השם של Model
שישמש ליצירת התגובה המבוססת.
פורמט: model=models/{model}
הוא מופיע בפורמט models/{model}
.
גוף הבקשה
גוף הבקשה מכיל נתונים במבנה הבא:
contents[]
object (Content
)
חובה. התוכן של השיחה הנוכחית עם Model
. בשאילתות עם צעד אחד, זו שאלה אחת שצריך לענות עליה. בשאילתות עם כמה תורנויות, זהו שדה חוזר שמכיל את היסטוריית השיחה ואת Content
האחרון ברשימה שמכילה את השאלה.
הערה: models.generateAnswer
תומך רק בשאילתות באנגלית.
answerStyle
enum (AnswerStyle
)
חובה. הסגנון שבו התשובות צריכות להוחזר.
safetySettings[]
object (SafetySetting
)
זה שינוי אופציונלי. רשימה של מופעים ייחודיים של SafetySetting
לחסימת תוכן לא בטוח.
המדיניות הזו תהיה בתוקף ב-GenerateAnswerRequest.contents
וב-GenerateAnswerResponse.candidate
. לכל סוג של SafetyCategory
יכולה להיות הגדרה אחת לכל היותר. ה-API יחסום תוכן ותשובות שלא יעמדו בערכי הסף שהוגדרו על ידי ההגדרות האלה. הרשימה הזו מבטלת את הגדרות ברירת המחדל לכל SafetyCategory
שצוינו בהגדרות הבטיחות. אם לא צוין SafetySetting
עבור SafetyCategory
מסוים ברשימה, ה-API ישתמש בהגדרת ברירת המחדל של בטיחות לקטגוריה הזו. קיימת תמיכה בקטגוריות פגיעה HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT ו-HARM_CATEGORY_HARASSMENT. במדריך מפורט מידע על הגדרות הבטיחות הזמינות. כדאי גם לעיין בהנחיות הבטיחות כדי ללמוד איך לשלב שיקולי בטיחות באפליקציות ה-AI.
grounding_source
. המקורות שבהם מבוססת התשובה. grounding_source
יכול להיות רק אחת מהאפשרויות הבאות:
inlinePassages
object (GroundingPassages
)
קטעים שסופקו בהתאם לבקשה.
semanticRetriever
object (SemanticRetrieverConfig
)
תוכן שאוחזר ממשאבים שנוצרו באמצעות Semantic Retriever API.
temperature
number
זה שינוי אופציונלי. המדיניות קובעת את רמת הרנדומיזציה של הפלט.
הערכים יכולים לנוע בין [0.0,1.0], כולל. ככל שהערך קרוב יותר ל-1.0, התשובות יהיו מגוונות ויצירתיות יותר. לעומת זאת, ככל שהערך קרוב יותר ל-0.0, התשובות של המודל יהיו בדרך כלל ישירות יותר. בדרך כלל מומלץ להשתמש בטמפרטורה נמוכה (~0.2) בתרחישים של מענה על שאלות עם מאפיינים (Attributed- חנויות).
גוף התשובה
תשובה מהמודל לתשובה מבוססת.
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכלול נתונים במבנה הבא:
answer
object (Candidate
)
תשובה מועמדת מהמודל.
הערה: המודל תמיד מנסה לספק תשובה מבוססת, גם אם סביר להניח שלא ניתן לקבל תשובה מהקטעים הנתונים. במקרה כזה, יכול להיות שתתקבל תשובה באיכות נמוכה או תשובה לא מבוססת, יחד עם answerableProbability
נמוך.
answerableProbability
number
פלט בלבד. האומדן של המודל להסתברות שהתשובה שלו נכונה, ומבוססת על קטעי הקלט.
ערך answerableProbability
נמוך מצביע על כך שהתשובה עשויה להיות לא מבוססת על המקורות.
כשהערך של answerableProbability
נמוך, כדאי לבצע את הפעולות הבאות:
- הצגת הודעה עם הכיתוב 'לא הצלחנו לענות על השאלה הזו' למשתמש.
- חזרה ל-LLM למטרות כלליות שנותנת תשובה לשאלה על סמך הידע הכללי. הסף והאופי של חלופות כאלה תלויים בתרחישי לדוגמה ספציפיים.
0.5
הוא ערך סף טוב להתחלה.
inputFeedback
object (InputFeedback
)
פלט בלבד. משוב שקשור לנתוני הקלט ששימשו למענה על השאלה, ולא לתשובה שנוצרה מהמודל לשאלה.
נתוני הקלט יכולים להיות אחת או יותר מהאפשרויות הבאות:
- השאלה שצוינה על ידי הערך האחרון ב-
GenerateAnswerRequest.content
- היסטוריית השיחות שצוינה על ידי הערכים האחרים בתיקייה
GenerateAnswerRequest.content
- מקורות של נקודות אפס (
GenerateAnswerRequest.semantic_retriever
אוGenerateAnswerRequest.inline_passages
)
ייצוג ב-JSON |
---|
{ "answer": { object ( |
GroundingPassages
רשימה חוזרת של פסקאות.
passages[]
object (GroundingPassage
)
רשימת פסקאות.
ייצוג JSON |
---|
{
"passages": [
{
object ( |
GroundingPassage
SemanticRetrieverConfig
הגדרה לאחזור תוכן עיגון מ-Corpus
או מ-Document
שנוצרו באמצעות Semantic Retriever API.
source
string
חובה. שם המשאב לאחזור. לדוגמה: corpora/123
או corpora/123/documents/abc
.
query
object (Content
)
חובה. שאילתה שתשמש להתאמת Chunk
במשאב הנתון לפי דמיון.
metadataFilters[]
object (MetadataFilter
)
זה שינוי אופציונלי. מסננים לבחירת Document
או Chunk
מהמשאב.
maxChunksCount
integer
זה שינוי אופציונלי. המספר המקסימלי של Chunk
רלוונטיים לאחזור.
minimumRelevanceScore
number
זה שינוי אופציונלי. ציון רלוונטיות מינימלי ל-Chunk
שאוחזרו.
ייצוג JSON |
---|
{ "source": string, "query": { object ( |
AnswerStyle
סגנון לתשובות מבוססות.
טיפוסים בני מנייה (enum) | |
---|---|
ANSWER_STYLE_UNSPECIFIED |
סגנון התשובה לא צוין. |
ABSTRACTIVE |
סגנון תמציתי אבל מופשט. |
EXTRACTIVE |
סגנון קצר מאוד וחסכוני. |
VERBOSE |
סגנון מילולי, כולל פרטים נוספים. התשובה יכולה להיות בפורמט של משפט, פסקה, מספר פסקאות, נקודות תבליטים וכו'. |
InputFeedback
משוב שקשור לנתוני הקלט שמשמשים לתשובה על השאלה, ולא לתשובה שהמודל יצר לשאלה.
safetyRatings[]
object (SafetyRating
)
דירוגים לבטיחות הקלט. לכל קטגוריה יש דירוג אחד לכל היותר.
blockReason
enum (BlockReason
)
זה שינוי אופציונלי. אם הוא הוגדר, הקלט נחסם ולא מוחזרים מועמדים. מנסחים מחדש את הקלט.
ייצוג ב-JSON |
---|
{ "safetyRatings": [ { object ( |
BlockReason
מציין את הסיבה שבגללה הקלט נחסם.
טיפוסים בני מנייה (enum) | |
---|---|
BLOCK_REASON_UNSPECIFIED |
ערך ברירת המחדל. הערך הזה לא בשימוש. |
SAFETY |
הקלט נחסם מטעמי בטיחות. בודקים את השדה safetyRatings כדי להבין איזו קטגוריית בטיחות חסמה אותו. |
OTHER |
הקלט נחסם מסיבות אחרות. |