Question answering

ה-API לאחזור סמנטי מספק שירות אירוח של מענה על שאלות, לצורך בניית מערכות של יצירה משופרת באחזור (RAG) באמצעות התשתית של Google.

שיטה: models.generateAnswer

יצירת תשובה מבוססת מהמודל בהינתן קלט GenerateAnswerRequest.

נקודת קצה

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

פרמטרים של נתיב

model string

חובה. השם של Model שבו יש להשתמש כדי ליצור את התשובה המבוססת על מקורות מידע.

פורמט: model=models/{model} הוא מקבל את הצורה models/{model}.

גוף הבקשה

גוף הבקשה מכיל נתונים עם המבנה הבא:

Fields
contents[] object (Content)

חובה. התוכן של השיחה הנוכחית עם Model. בשאלות חד-שלביות, זו שאלה אחת שצריך לענות עליה. בשביל שאילתות מרובות, זהו שדה חוזר שמכיל את היסטוריית השיחות ואת השאלה האחרונה Content ברשימה.

הערה: models.generateAnswer תומך רק בשאילתות באנגלית.

answerStyle enum (AnswerStyle)

חובה. הסגנון שבו התשובות צריכות להיות.

safetySettings[] object (SafetySetting)

אופציונלי. רשימה של מקרים ייחודיים של SafetySetting לחסימת תוכן לא בטוח.

השינוי הזה יחול על GenerateAnswerRequest.contents ועל GenerateAnswerResponse.candidate. לא יכולות להיות יותר מהגדרה אחת לכל סוג SafetyCategory. ה-API יחסום כל תוכן ותשובה שלא יעמדו בסף שנקבע בהגדרות האלה. הרשימה הזו מבטלת את הגדרות ברירת המחדל של כל SafetyCategory שצוין ב-safetySettings. אם לא מופיע SafetySetting עבור SafetyCategory מסוים ברשימה, ממשק ה-API ישתמש בהגדרת הבטיחות שמוגדרת כברירת מחדל עבור הקטגוריה הזו. יש תמיכה בקטגוריות הפגיעה HARM_CATEGORY_HATE_SPEECH,‏ HARM_CATEGORY_SEXUALLY_EXPLICIT,‏ HARM_CATEGORY_DANGEROUS_CONTENT ו-HARM_CATEGORY_HARASSMENT. במדריך מפורט מידע על הגדרות הבטיחות הזמינות. כדאי לעיין גם בהנחיות בנושא בטיחות כדי ללמוד איך לשלב שיקולי בטיחות באפליקציות ה-AI.

grounding_source Union type
המקורות שמהם נלקחת התשובה. הערך grounding_source יכול להיות רק אחד מהבאים:
inlinePassages object (GroundingPassages)

קטעים שסופקו בתוך הבקשה.

semanticRetriever object (SemanticRetrieverConfig)

תוכן שאוחזר ממקורות מידע שנוצרו באמצעות Semantic Retriever API.

temperature number

אופציונלי. המדיניות קובעת את מידת הרנדומיזציה של הפלט.

הערכים יכולים לנוע בין [0.0,1.0], כולל. ערך שקרוב יותר ל-1.0 יניב תשובות מגוונות ויצירתיות יותר, ואילו ערך שקרוב יותר ל-0.0 בדרך כלל יניב תשובות פשוטות יותר מהמודל. בדרך כלל מומלצת טמפרטורה נמוכה (‎~0.2) לתרחישי שימוש של מענה על שאלות עם שיוך.

גוף התשובה

תשובה מהמודל שמבוססת על מידע.

אם הפעולה מצליחה, גוף התגובה מכיל נתונים במבנה הבא:

שדות
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 (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

רשימה חוזרת של קטעים.

שדות
passages[] object (GroundingPassage)

רשימת קטעים.

ייצוג ב-JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

הפסקה נכללת בתוך ההקשר עם הגדרת ביסוס.

שדות
id string

מזהה של הקטע לצורך שיוך הקטע הזה לתשובות מבוססות-קרקע.

content object (Content)

תוכן הקטע.

ייצוג ב-JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

הגדרה לאחזור תוכן ביסוס מ-Corpus או מ-Document שנוצרו באמצעות Semantic Retriever API.

שדות
source string

חובה. שם המשאב לאחזור. לדוגמה: corpora/123 או corpora/123/documents/abc.

query object (Content)

חובה. שאילתה שמשמשת להתאמת Chunks במשאב הנתון לפי דמיון.

metadataFilters[] object (MetadataFilter)

אופציונלי. מסננים לבחירת Document או Chunk מהמשאב.

maxChunksCount integer

אופציונלי. המספר המקסימלי של Chunks רלוונטיים לאחזור.

minimumRelevanceScore number

אופציונלי. ציון הרלוונטיות המינימלי של Chunks רלוונטיים שאוחזרו.

ייצוג ב-JSON
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

סגנון לתשובות מבוססות-קרקע.

טיפוסים בני מנייה (enum)
ANSWER_STYLE_UNSPECIFIED סגנון תשובה לא מוגדר.
ABSTRACTIVE סגנון תמציתי אבל מופשט.
EXTRACTIVE סגנון תמציתי וקצר מאוד.
VERBOSE סגנון מפורט שכולל פרטים נוספים. התשובה יכולה להיות בפורמט של משפט, פסקה, כמה פסקאות, רשימת תבליטים וכו'.

InputFeedback

משוב שקשור לנתוני הקלט ששימשו למענה על השאלה, ולא לתשובה שנוצרה על ידי המודל לשאלה.

שדות
safetyRatings[] object (SafetyRating)

דירוגים של בטיחות הקלט. לכל קטגוריה יש סיווג אחד לכל היותר.

blockReason enum (BlockReason)

אופציונלי. אם ההגדרה מוגדרת, הקלט נחסם ולא מוחזרות הצעות. לנסח מחדש את הקלט.

ייצוג ב-JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

מציין את הסיבה לחסימת הקלט.

טיפוסים בני מנייה (enum)
BLOCK_REASON_UNSPECIFIED ערך ברירת המחדל. הערך הזה לא בשימוש.
SAFETY הקלט נחסם מטעמי בטיחות. בודקים את safetyRatings כדי להבין איזו קטגוריית בטיחות חסמה את האתר.
OTHER הקלט נחסם מסיבות אחרות.