تفضيلات الخصوصية

الوظائف الضرورية

مطلوبة للأمان ووظائف الموقع الأساسية.

مفعّلة دائمًا

تحليلات الاستخدام الاختيارية

هل تسمح بتحليلات استخدام PostHog؟ يمكنك تغيير اختيارك في أي وقت من التذييل.

السماح أيضاً بتسجيل الجلسات لإعادة عرضها على هذا الموقع العام

تُظهر إعادة عرض الجلسات الصفحات العامة والتفاعلات، مع إخفاء المدخلات والمحتوى الخاص. إعادة عرض الجلسات في التطبيق خيار مستقل.

يتطلب التحليلات؛ إعادة تشغيل الموقع متوقفة افتراضيًا.

لا تفعّل تحليلات المتصفح تحليلات الحساب.

يُحمّل البحث عند استخدامه فقط. تصفّح جميع الفئات أدناه.

البحث والموجزات الموثقة بالمراجع

طلب تحليل بحث موثق بالمراجع

طلب تحليل محدود موثق بالمراجع مع processing_intent صريح؛ قد لا يكون متاحًا. لا تعيد عملية التغيير نفسها التوليد مطلقًا. يتطلب agent:research.

POST /research-api/assistant/request

مراجعة العقد: · sha256:ab393e91e9b7f18a

نظرة عامة

طلب تحليل محدود موثق بالمراجع مع processing_intent صريح؛ قد لا يكون متاحًا. لا تعيد عملية التغيير نفسها التوليد مطلقًا. يتطلب agent:research.

قد يعني نجاح HTTP قبول الطلب لا اكتماله. للعمل الخلفي، احفظ المعرّف المُعاد وتابع العملية نفسها حتى تنتهي. لا يُعدّ المنشور المجدول أوالمقبول منشوراً حتى تأكيد المنصة؛ انتهاء مهلة العميل لا يثبت النتيجة.

المصادقة والأذونات

فئات بيانات الاعتماد المقبولة
user_session, delegated_oauth, personal_access_token
إمكانية مفوّضة
agent:research
الحد الأدنى لدور مساحة العمل
editor
نطاق الوصول
الموارد التي يحق لهذا المستخدم الوصول إليها
تلزم موافقة تشمل جميع مساحات العمل
لا
يغيّر الحالة
نعم
متى تُعدّ العملية مكتملة
accepted domain run or explicit unavailable; only completed authorized run contains an answer

لا يستخدم الرمز إلا حقوق مالكه. يفحص كل طلب عضوية مساحة العمل وملكية المورد والمساحات المحددة والإمكانات الممنوحة. يغيّر core و full الأدوات المعروضة؛ ولا يمنحان وصولاً.

حقول الطلب

تعني «مطلوب» داخل الكائن الأب والفرع المختار. الحقل الابن المطلوب لا يجعل الأب الاختياري مطلوباً. نُسخت القواعد وأسماء الحقول أدناه من العقد.

حقول الطلب
الحقل / الفرعالنوع / مطلوبالقيود
$objectمطلوب في العنصر الأب
  • additionalProperties: false
workspace_idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
mutation_idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
conversation_idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
expected_revisionintegerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
parent_message_idstring | nullمطلوب في العنصر الأب—
parent_message_idanyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
parent_message_idanyOf 2nullمطلوب في العنصر الأب—
questionstringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 2000
request_kindstringمطلوب في العنصر الأب
  • enum: ["question","overview","themes","audiences","sentiment","query_suggestions"]
processing_intentstringمطلوب في العنصر الأب
  • const: "google_gemini_selected_context"
مخطط JSON Schema الكامل
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "conversation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "expected_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "parent_message_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "question": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "request_kind": {
      "type": "string",
      "enum": [
        "question",
        "overview",
        "themes",
        "audiences",
        "sentiment",
        "query_suggestions"
      ]
    },
    "processing_intent": {
      "type": "string",
      "const": "google_gemini_selected_context"
    }
  },
  "required": [
    "workspace_id",
    "mutation_id",
    "conversation_id",
    "expected_revision",
    "parent_message_id",
    "question",
    "request_kind",
    "processing_intent"
  ],
  "additionalProperties": false
}

الاستجابة والاكتمال

رموز نجاح HTTP: 200. عندما تكتمل العملية: accepted domain run or explicit unavailable; only completed authorized run contains an answer.

قد يعني نجاح HTTP قبول الطلب لا اكتماله. للعمل الخلفي، احفظ المعرّف المُعاد وتابع العملية نفسها حتى تنتهي. لا يُعدّ المنشور المجدول أوالمقبول منشوراً حتى تأكيد المنصة؛ انتهاء مهلة العميل لا يثبت النتيجة.

تعني «مطلوب» داخل الكائن الأب والفرع المختار. الحقل الابن المطلوب لا يجعل الأب الاختياري مطلوباً. نُسخت القواعد وأسماء الحقول أدناه من العقد.

الاستجابة والاكتمال
الحقل / الفرعالنوع / مطلوبالقيود
$objectمطلوب في العنصر الأب—
runobjectمطلوب في العنصر الأب—
run.idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
run.workspace_idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
run.conversation_idstringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
run.conversation_revisionintegerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
run.generationintegerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
run.request_kindstringمطلوب في العنصر الأب
  • enum: ["question","overview","themes","audiences","sentiment","query_suggestions"]
run.statusstringمطلوب في العنصر الأب
  • enum: ["queued","processing","completed","failed","cancelled","expired","unavailable"]
run.failure_codestring | nullمطلوب في العنصر الأب—
run.failure_codeanyOf 1stringمطلوب في العنصر الأب
  • enum: ["not_configured","budget_exhausted","access_changed","source_unavailable","context_changed","input_too_large","provider_unavailable","generation_unconfirmed","invalid_output","cancelled","expired","conversation_full"]
run.failure_codeanyOf 2nullمطلوب في العنصر الأب—
run.created_atstringمطلوب في العنصر الأب
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
run.expires_atstringمطلوب في العنصر الأب
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
run.processorstringمطلوب في العنصر الأب
  • const: "Google Gemini"
run.model_idstring | nullمطلوب في العنصر الأب—
run.model_idanyOf 1stringمطلوب في العنصر الأب
  • maxLength: 128
run.model_idanyOf 2nullمطلوب في العنصر الأب—
run.model_versionstring | nullمطلوب في العنصر الأب—
run.model_versionanyOf 1stringمطلوب في العنصر الأب
  • maxLength: 128
run.model_versionanyOf 2nullمطلوب في العنصر الأب—
messageobject | nullمطلوب في العنصر الأب—
messageanyOf 1objectمطلوب في العنصر الأب—
message.idanyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.run_idanyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.roleanyOf 1stringمطلوب في العنصر الأب
  • enum: ["user","assistant"]
message.questionanyOf 1string | nullمطلوب في العنصر الأب—
message.questionanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • maxLength: 2000
message.questionanyOf 1 / anyOf 2nullمطلوب في العنصر الأب—
message.answeranyOf 1object | nullمطلوب في العنصر الأب—
message.answeranyOf 1 / anyOf 1objectمطلوب في العنصر الأب—
message.answer.answeranyOf 1 / anyOf 1objectمطلوب في العنصر الأب—
message.answer.answer.statementanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 2000
message.answer.answer.basisanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • enum: ["observed","inferred","generated"]
message.answer.answer.evidenceanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • minItems: 1
  • maxItems: 20
message.answer.answer.evidence[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.answer.evidence[].evidence_idanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.answer.answer.evidence[].revisionanyOf 1 / anyOf 1integerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
message.answer.answer.uncertaintyanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • maxLength: 1000
message.answer.findingsanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • maxItems: 12
message.answer.findings[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.findings[].statementanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 2000
message.answer.findings[].basisanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • enum: ["observed","inferred","generated"]
message.answer.findings[].evidenceanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • minItems: 1
  • maxItems: 20
message.answer.findings[].evidence[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.findings[].evidence[].evidence_idanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.answer.findings[].evidence[].revisionanyOf 1 / anyOf 1integerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
message.answer.findings[].uncertaintyanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • maxLength: 1000
message.answer.sentimentanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • maxItems: 20
message.answer.sentiment[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.sentiment[].evidence_idanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.answer.sentiment[].revisionanyOf 1 / anyOf 1integerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
message.answer.sentiment[].labelanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • enum: ["positive","negative","neutral","mixed","unknown"]
message.answer.sentiment[].uncertaintyanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • maxLength: 1000
message.answer.query_suggestionsanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • maxItems: 5
message.answer.query_suggestions[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.query_suggestions[].queryanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 2000
message.answer.query_suggestions[].excluded_termsanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • maxItems: 20
message.answer.query_suggestions[].excluded_terms[]anyOf 1 / anyOf 1stringاختياري / عنصر
  • minLength: 1
  • maxLength: 100
message.answer.query_suggestions[].evidenceanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • minItems: 1
  • maxItems: 20
message.answer.query_suggestions[].evidence[]anyOf 1 / anyOf 1objectاختياري / عنصر—
message.answer.query_suggestions[].evidence[].evidence_idanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
message.answer.query_suggestions[].evidence[].revisionanyOf 1 / anyOf 1integerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
message.answer.query_suggestions[].rationaleanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • minLength: 1
  • maxLength: 1000
message.answer.limitationsanyOf 1 / anyOf 1arrayمطلوب في العنصر الأب
  • minItems: 1
  • maxItems: 10
message.answer.limitations[]anyOf 1 / anyOf 1stringاختياري / عنصر
  • minLength: 1
  • maxLength: 1000
message.answer.quantitative_claimsanyOf 1 / anyOf 1booleanمطلوب في العنصر الأب
  • const: false
message.answer.method_versionanyOf 1 / anyOf 1stringمطلوب في العنصر الأب
  • const: "research-cited/v1"
message.answeranyOf 1 / anyOf 2nullمطلوب في العنصر الأب—
message.created_atanyOf 1stringمطلوب في العنصر الأب
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
message.expires_atanyOf 1stringمطلوب في العنصر الأب
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
messageanyOf 2nullمطلوب في العنصر الأب—
conversation_revisionintegerمطلوب في العنصر الأب
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
availabilityobjectمطلوب في العنصر الأب—
availability.configuredbooleanمطلوب في العنصر الأب—
availability.reasonstring | nullمطلوب في العنصر الأب—
availability.reasonanyOf 1stringمطلوب في العنصر الأب
  • enum: ["not_configured","budget_exhausted","access_changed","source_unavailable","context_changed","input_too_large","provider_unavailable","generation_unconfirmed","invalid_output","cancelled","expired","conversation_full"]
availability.reasonanyOf 2nullمطلوب في العنصر الأب—
availability.processorstringمطلوب في العنصر الأب
  • const: "Google Gemini"
availability.retention_hoursnumberمطلوب في العنصر الأب
  • const: 24
مخطط JSON Schema الكامل
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "run": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "conversation_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "conversation_revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "generation": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "request_kind": {
          "type": "string",
          "enum": [
            "question",
            "overview",
            "themes",
            "audiences",
            "sentiment",
            "query_suggestions"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "queued",
            "processing",
            "completed",
            "failed",
            "cancelled",
            "expired",
            "unavailable"
          ]
        },
        "failure_code": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "not_configured",
                "budget_exhausted",
                "access_changed",
                "source_unavailable",
                "context_changed",
                "input_too_large",
                "provider_unavailable",
                "generation_unconfirmed",
                "invalid_output",
                "cancelled",
                "expired",
                "conversation_full"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "format": "date-time"
        },
        "expires_at": {
          "type": "string",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "format": "date-time"
        },
        "processor": {
          "type": "string",
          "const": "Google Gemini"
        },
        "model_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 128
            },
            {
              "type": "null"
            }
          ]
        },
        "model_version": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 128
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "workspace_id",
        "conversation_id",
        "conversation_revision",
        "generation",
        "request_kind",
        "status",
        "failure_code",
        "created_at",
        "expires_at",
        "processor",
        "model_id",
        "model_version"
      ]
    },
    "message": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "run_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "role": {
              "type": "string",
              "enum": [
                "user",
                "assistant"
              ]
            },
            "question": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 2000
                },
                {
                  "type": "null"
                }
              ]
            },
            "answer": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "answer": {
                      "type": "object",
                      "properties": {
                        "statement": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "basis": {
                          "type": "string",
                          "enum": [
                            "observed",
                            "inferred",
                            "generated"
                          ]
                        },
                        "evidence": {
                          "minItems": 1,
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "evidence_id": {
                                "type": "string",
                                "format": "uuid",
                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                              },
                              "revision": {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "evidence_id",
                              "revision"
                            ]
                          }
                        },
                        "uncertainty": {
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "statement",
                        "basis",
                        "evidence",
                        "uncertainty"
                      ]
                    },
                    "findings": {
                      "maxItems": 12,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "statement": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "basis": {
                            "type": "string",
                            "enum": [
                              "observed",
                              "inferred",
                              "generated"
                            ]
                          },
                          "evidence": {
                            "minItems": 1,
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "evidence_id": {
                                  "type": "string",
                                  "format": "uuid",
                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "evidence_id",
                                "revision"
                              ]
                            }
                          },
                          "uncertainty": {
                            "type": "string",
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "statement",
                          "basis",
                          "evidence",
                          "uncertainty"
                        ]
                      }
                    },
                    "sentiment": {
                      "maxItems": 20,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "evidence_id": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "revision": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "label": {
                            "type": "string",
                            "enum": [
                              "positive",
                              "negative",
                              "neutral",
                              "mixed",
                              "unknown"
                            ]
                          },
                          "uncertainty": {
                            "type": "string",
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "evidence_id",
                          "revision",
                          "label",
                          "uncertainty"
                        ]
                      }
                    },
                    "query_suggestions": {
                      "maxItems": 5,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "query": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 2000
                          },
                          "excluded_terms": {
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            }
                          },
                          "evidence": {
                            "minItems": 1,
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "evidence_id": {
                                  "type": "string",
                                  "format": "uuid",
                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                },
                                "revision": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "evidence_id",
                                "revision"
                              ]
                            }
                          },
                          "rationale": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          }
                        },
                        "required": [
                          "query",
                          "excluded_terms",
                          "evidence",
                          "rationale"
                        ]
                      }
                    },
                    "limitations": {
                      "minItems": 1,
                      "maxItems": 10,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1000
                      }
                    },
                    "quantitative_claims": {
                      "type": "boolean",
                      "const": false
                    },
                    "method_version": {
                      "type": "string",
                      "const": "research-cited/v1"
                    }
                  },
                  "required": [
                    "answer",
                    "findings",
                    "sentiment",
                    "query_suggestions",
                    "limitations",
                    "quantitative_claims",
                    "method_version"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "created_at": {
              "type": "string",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "format": "date-time"
            },
            "expires_at": {
              "type": "string",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "format": "date-time"
            }
          },
          "required": [
            "id",
            "run_id",
            "role",
            "question",
            "answer",
            "created_at",
            "expires_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "conversation_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "availability": {
      "type": "object",
      "properties": {
        "configured": {
          "type": "boolean"
        },
        "reason": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "not_configured",
                "budget_exhausted",
                "access_changed",
                "source_unavailable",
                "context_changed",
                "input_too_large",
                "provider_unavailable",
                "generation_unconfirmed",
                "invalid_output",
                "cancelled",
                "expired",
                "conversation_full"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "processor": {
          "type": "string",
          "const": "Google Gemini"
        },
        "retention_hours": {
          "type": "number",
          "const": 24
        }
      },
      "required": [
        "configured",
        "reason",
        "processor",
        "retention_hours"
      ]
    }
  },
  "required": [
    "run",
    "message",
    "conversation_revision",
    "availability"
  ]
}

الأخطاء وإعادة المحاولة بأمان

افحص حالة HTTP والجسم. قد يحوي خطأ التحقق 400 ‏ZodError؛ تستخدم أخطاء المعالج error و message و code. احتفظ بـ request_id أو x-request-id للتشخيص دون اعتماد. أصلح أخطاء وصول 401/403 قبل المحاولة واتّبع Retry-After لـ 429. لكتابة غير مؤكدة أو 5xx، اقرأ الموجود أولاً. أعِد مفتاح منع التكرار حيث يُدعم فقط؛ تختلف المحاولة حسب العملية ولا تضمن التسليم مرة واحدة بالضبط.

دليل استكشاف الأخطاء وإصلاحها

أمثلة

تستخدم الأمثلة قيماً خيالية مفحوصة بالمخططات. استبدل المعرّفات بالمفوّض لك، والوسائط بأصول جاهزة، والتواريخ بوقت نشر مؤكد. افحص أهلية الحساب قبل الكتابة. لا تُرسل الصفحة طلبات API.

اضبط SOSOAPI_ACCESS_TOKEN على خادمك ببيانات اعتماد تقبلها العملية، وأبقِه خارج شيفرة المتصفح. لوكيل الذكاء الاصطناعي، استخدم sosoapi auth login للدخول بالمتصفح ودع CLI يحدّث بيانات اعتماده.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "11111111-1111-4111-8111-111111111111",
  "conversation_id": "11111111-1111-4111-8111-111111111111",
  "expected_revision": 1,
  "parent_message_id": null,
  "question": "example",
  "request_kind": "question",
  "processing_intent": "google_gemini_selected_context"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/assistant/request" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/assistant/request", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "11111111-1111-4111-8111-111111111111",
  "conversation_id": "11111111-1111-4111-8111-111111111111",
  "expected_revision": 1,
  "parent_message_id": null,
  "question": "example",
  "request_kind": "question",
  "processing_intent": "google_gemini_selected_context"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /research-api/assistant/request < request.json

مثال استجابة اصطناعية

{
  "run": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "conversation_id": "11111111-1111-4111-8111-111111111111",
    "conversation_revision": 1,
    "generation": 1,
    "request_kind": "question",
    "status": "queued",
    "failure_code": null,
    "created_at": "2099-01-15T09:00:00Z",
    "expires_at": "2099-01-15T09:00:00Z",
    "processor": "Google Gemini",
    "model_id": null,
    "model_version": null
  },
  "message": null,
  "conversation_revision": 1,
  "availability": {
    "configured": false,
    "reason": null,
    "processor": "Google Gemini",
    "retention_hours": 24
  }
}

MCP: sosoapi_research_assistant_request