Question answering

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

שיטה: model.generateAnswer

יוצרת תשובה בסיסית מהמודל בהינתן קלט 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 (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)

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

metadataFilters[] object (MetadataFilter)

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

maxChunksCount integer

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

minimumRelevanceScore number

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

ייצוג 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 הקלט נחסם מסיבות אחרות.