Question answering

توفّر Semantic Retrieval API خدمة استضافة للإجابة عن الأسئلة من أجل إنشاء أنظمة إنشاء مُحسَّنة للاسترجاع (RAG) باستخدام البنية الأساسية من Google.

الطريقة: models.generateAnswer

تُنشئ هذه الوظيفة إجابة مستندة إلى النموذج استنادًا إلى إدخال GenerateAnswerRequest.

نقطة نهاية

post 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. ستحظر واجهة برمجة التطبيقات أي محتوى أو ردّ لا يستوفي الحدّ الأدنى الذي تحدّده هذه الإعدادات. تلغي هذه القائمة الإعدادات التلقائية لكل SafetyCategory محدّد في safetySettings. إذا لم يكن هناك SafetySetting لـ SafetyCategory معيّن في القائمة، ستستخدم واجهة برمجة التطبيقات إعدادات السلامة التلقائية لهذه الفئة. يمكن استخدام فئات المحتوى الضار HARM_CATEGORY_HATE_SPEECH وHARM_CATEGORY_SEXUALLY_EXPLICIT وHARM_CATEGORY_DANGEROUS_CONTENT وHARM_CATEGORY_HARASSMENT. يُرجى الرجوع إلى الدليل للحصول على معلومات تفصيلية عن إعدادات الأمان المتاحة. يمكنك أيضًا الرجوع إلى إرشادات السلامة للتعرّف على كيفية دمج اعتبارات السلامة في تطبيقات الذكاء الاصطناعي.

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)

مطلوب. طلب البحث الذي يمكن استخدامه لمطابقة 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

أسلوب الإجابات المستندة إلى الحقائق

عمليات التعداد
ANSWER_STYLE_UNSPECIFIED أسلوب إجابة غير محدّد
ABSTRACTIVE نمط موجز ولكن مجرد
EXTRACTIVE أسلوب موجز للغاية ومختصر
VERBOSE نمط مفصّل يتضمّن تفاصيل إضافية يمكن تنسيق الردّ على شكل جملة أو فقرة أو فقرات متعددة أو نقاط مميّزة أو غير ذلك.

InputFeedback

ملاحظات متعلقة ببيانات الإدخال المستخدَمة للإجابة عن السؤال، بدلاً من الردّ الذي ينشئه النموذج على السؤال

الحقول
safetyRatings[] object (SafetyRating)

تقييمات لأمان الإدخال يجب أن يكون هناك تقييم واحد كحد أقصى لكل فئة.

blockReason enum (BlockReason)

اختياريّ. في حال ضبط هذا الخيار، يتم حظر الإدخال ولا يتم عرض أيّ مرشّحين. إعادة صياغة الإدخال

تمثيل JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

يحدّد سبب حظر الإدخال.

عمليات التعداد
BLOCK_REASON_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
SAFETY تم حظر الإدخال لأسباب تتعلق بالسلامة. راجِع safetyRatings لمعرفة فئة السلامة التي حظرت المحتوى.
OTHER تم حظر الإدخال لأسباب أخرى.