Question answering

Semantic Retrieval API הוא שירות מנוהל למתן תשובות לשאלות, שמאפשר ליצור מערכות של יצירת תוכן משופר באמצעות אחזור (RAG) באמצעות התשתית של Google.

שיטה: models.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 שצוין ב-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

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

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