Question answering

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

حقل الاتحاد 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 تقريبًا) لحالات الاستخدام المتعلّقة بالإجابة عن الأسئلة المحدّدة المصدر.

نص الاستجابة

ردّ من النموذج للحصول على إجابة مستندة إلى الحقائق

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

الحقول
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 تم حظر الإدخال لأسباب أخرى.