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

temperature number

اختيارية: تتحكّم هذه السمة في عشوائية الناتج.

يمكن أن تتراوح القيم من [0.0,1.0]، بما في ذلك هذين الرقمَين. ستؤدي القيمة الأقرب إلى 1.0 إلى إنشاء ردود أكثر تنوعًا وإبداعًا، بينما ستؤدي القيمة الأقرب إلى 0.0 عادةً إلى إنشاء ردود أكثر مباشرةً من النموذج. يُنصح عادةً باستخدام درجة حرارة منخفضة (حوالي 0.2) لحالات استخدام "الإجابة عن الأسئلة مع ذكر المصدر".

نص الاستجابة

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

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

الحقول
answer object (Candidate)

الإجابة المرشّحة من النموذج

ملاحظة: يحاول النموذج دائمًا تقديم إجابة مستندة إلى الحقائق، حتى عندما يكون من غير المحتمل أن تكون الإجابة قابلة للاستخراج من الفقرات المقدَّمة. في هذه الحالة، قد يتم تقديم إجابة منخفضة الجودة أو غير مستندة إلى معلومات، بالإضافة إلى answerableProbability منخفض.

answerableProbability number

النتائج فقط. تقدير النموذج لاحتمالية أن تكون إجابته صحيحة ومستندة إلى الفقرات المُدخَلة.

يشير انخفاض answerableProbability إلى أنّ الإجابة قد لا تكون مستندة إلى المصادر.

عندما تكون قيمة answerableProbability منخفضة، ننصحك بما يلي:

  • عرض رسالة للمستخدم مفادها "لم نتمكّن من الإجابة عن هذا السؤال"
  • الرجوع إلى نموذج لغوي كبير للأغراض العامة يجيب عن السؤال استنادًا إلى المعلومات المتوفرة حول العالم سيعتمد الحدّ الأدنى وطبيعة هذه البدائل على حالات الاستخدام الفردية. 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

اختيارية: الحدّ الأدنى لنتيجة الصلة التي يجب أن تحقّقها Chunks المسترجَعة ذات الصلة

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