واجهة برمجة التطبيقات AI Chat v2 (Documentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
/aichat2/conversations) هي الجيل الجديد من واجهات المحادثة، وهي نسخة مطورة بالكامل من AI Chat API. تعتمد على بساطة الإصدار v1 وإدارة المحادثات متعددة الجولات، مع التوسعات التالية:
- إدخال متعدد الوسائط: من خلال حقل
messageالمهيكل يمكن إرسال نص + صورة + ملفات مباشرة، دون الحاجة لاستخدامreferencesكمرفقات غير مباشرة. - استدعاء الأدوات بنمط الوكيل (Agent): تضم مجموعة أدوات مدمجة للبحث عبر الإنترنت، واستخلاص صفحات الويب، وقراءة الملفات، ويمكن ربط خوادم MCP المصرح بها من المستخدم (مثل Google Drive، Notion، Slack، GitHub)، حيث يمكن للنموذج استدعاء الأدوات ذاتيًا في جولات متعددة ضمن طلب واحد لإتمام مهام معقدة.
- أحداث متدفقة مهيكلة: عبر
accept: text/event-streamأوapplication/x-ndjsonيمكن الحصول على أحداث مثلtext_delta،tool_use،tool_result،thinking،citation،card،artifactبشكل متتابع حسب الرموز، مما يسهل العرض في الواجهة الأمامية حسب نوع الحدث. - قابلية الإيقاف والاستئناف: عندما يحتاج النموذج لمعلومات إضافية من المستخدم يرسل حدث
ask_user_questionويتوقف، ويمكن الاستمرار في الطلب التالي بإعادة ملء الإجابات عبرtool_results. - إجراءات CRUD جديدة: يمكن تنفيذ
retrieve/retrieve_batch/update/deleteعبر نفس نقطة النهاية باستخدام حقلaction، دون الحاجة لواجهة إدارة جلسات منفصلة. - قائمة نماذج محدثة باستمرار: تشمل النماذج الافتراضية GPT-5.4، Claude Opus 4.7، Claude Sonnet 4.6، Gemini 3.1 Pro، GLM 5.1، DeepSeek V4، Kimi K2.5 وغيرها من النماذج المعاصرة.
model + question (+ اختياري stateful / id / references / preset) يعيد استجابة JSON {answer, id} مكافئة لـ v1، لذلك لا حاجة لإعادة كتابة العميل عند الانتقال من /aichat/conversations إلى /aichat2/conversations.
إذا كنت تستخدم حاليًا /aichat/conversations، ستظل الواجهة القديمة متاحة، ويمكنك الترحيل بوتيرتك الخاصة.
إجراءات التقديم
لاستخدام API، يجب التقديم أولاً عبر صفحة AI Chat v2 API، بعد الدخول اضغط زر “Acquire” للحصول على بيانات الاعتماد اللازمة للطلبات. إذا لم تكن مسجلاً أو مسجلاً دخولك، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول، وبعد التسجيل والدخول ستعود تلقائيًا إلى الصفحة الحالية. عند التقديم لأول مرة، ستحصل على رصيد مجاني لاستخدام API.الاستخدام الأساسي
أسهل طريقة استخدام مماثلة تمامًا لـ v1: إرسالmodel + question والحصول على {answer, id}.
مثال CURL:
model المتاحة يمكن رؤيتها مباشرة في لوحة Try على الجانب الأيمن، الفئات الشائعة تشمل:
- OpenAI:
gpt-5.4-mini،gpt-5.4-nano،gpt-5.2-pro،gpt-5.1-all،gpt-5-all،gpt-4.1،gpt-4o،gpt-4o-image،o3،o4-miniوغيرها - Anthropic:
claude-opus-4-7،claude-opus-4-6،claude-opus-4-5-20251101،claude-sonnet-4-6،claude-sonnet-4-5-20250929،claude-haiku-4-5-20251001وغيرها - Google:
gemini-3.1-pro،gemini-3.1-pro-preview،gemini-3.1-flash-image-preview،gemini-3-pro-preview،gemini-2.5-flash-liteوغيرها - xAI:
grok-4،grok-4-1-fast،grok-4-1-fast-reasoning،grok-3-mini-fastوغيرها - DeepSeek:
deepseek-v4-flash،deepseek-v3.2-exp،deepseek-r1-0528وغيرها - Moonshot:
kimi-k2.5،kimi-k2-thinking،kimi-k2-thinking-turboوغيرها - Zhipu:
glm-5.1،glm-5،glm-5-turbo،glm-4.7،glm-4.5vوغيرها
المحادثات متعددة الجولات
كما في v1، إرسالstateful: true يفعل حفظ الجلسة، وستعيد API معرف id؛ في الطلبات التالية ترسل نفس id لاستكمال المحادثة دون الحاجة لإدارة تاريخ الرسائل بنفسك.
الطلب الأول:
id:
القيمة الافتراضية لـstatefulهيtrue، حذفها أو إرسالها صراحة كـtrueمتساويان. إذا كنت لا تريد حفظ المحادثة على الخادم، يمكنك تعيينstateful: falseصراحة.
الاستجابة المتدفقة
يدعم الإصدار v2 نوعي تدفق حسب رأسaccept:
| السيناريو | accept | شكل البيانات |
|---|---|---|
| واجهة الويب / EventSource | text/event-stream | data: {json}\n\n، السطر الأخير data: [DONE]\n\n |
| الخادم / CLI / تحليل تدفق Node | application/x-ndjson | كل سطر كائن JSON مستقل |
| بدون تدفق | application/json (افتراضي) | استجابة كاملة {answer, id} دفعة واحدة |
مثال NDJSON
text_delta:
مثال SSE
متصفحات الويب تستخدمEventSource التي لا تدعم جسم طلب مخصص، يُنصح باستخدام fetch مع تحليل يدوي حسب \n\n:
أنواع أحداث التدفق
type | الوصف |
|---|---|
text_delta | جزء نصي متزايد من رد المساعد. content هو المحتوى الجديد؛ وللتوافق مع v1، يحتوي الحدث نفسه على delta_answer (مطابق لـ content) و id. |
thinking | عملية تفكير النموذج (تظهر فقط إذا كان النموذج المختار يدعم reasoning). |
tool_use | النموذج قرر استدعاء أداة، الحدث يحتوي على tool_id، tool_name، و input. |
tool_result | نتيجة تنفيذ الأداة، مرتبطة بحدث tool_use السابق عبر tool_id، و is_error تشير إذا حدث خطأ. |
card | بطاقة مهيكلة ناتجة عن الأداة (مثل صورة، معاينة رابط)، مناسبة للعرض المباشر. |
citation | مصدر URL يرفق لجزء نصي معين كمصدر. |
ask_user_question | النموذج يحتاج معلومات إضافية من المستخدم، يدخل الحوار في حالة awaiting_user_input، انظر استئناف المحادثة الموقوفة. |
artifact | ناتج مستقل من النموذج (مثل كود، وثائق)، يمكن حفظه أو تنزيله. |
system_message | رسالة نظام (ليست من المستخدم أو المساعد)، للاستخدام في واجهة المستخدم فقط. |
compact | حدث لضغط السياق الداخلي، لا يحتاج معالجة خاصة. |
error | حدث خطأ في هذه الجولة، message يصف الخطأ. |
done | نهاية الاستجابة المتدفقة، يحتوي على usage (بما في ذلك prompt_tokens / completion_tokens / total_tokens) و terminal_reason. |
content من أحداث text_delta ليكون مكافئًا لـ answer في وضع application/json.
الإدخال متعدد الوسائط
إذا كان إدخال المستخدم يحتوي على صور أو ملفات، استخدمmessage (مصفوفة) بدلاً من question. كل عنصر في المصفوفة هو كتلة محتوى:
text— نص عادي، الحقل الإلزاميtext.image_url— صورة، الحقل الإلزاميimage_url.url.file_url— ملف (PDF، CSV، TXT، إلخ)، الحقل الإلزاميfile_url.url.
العلاقة مع references في v1
للتوافق مع العملاء القدامى، v2 لا تزال تدعم حقل references: ["https://...", ...]:
- إذا كان امتداد URL من
jpg / jpeg / png / gif / bmp / webp / svg / heic / heif، يتحول تلقائيًا إلى كتلةimage_url. - الامتدادات الأخرى تتحول إلى كتلة
file_url. - إذا تم توفير
questionأيضًا، يتم إضافته ككتلةtextفي البداية.
/aichat2/conversations وسيعمل references كما هو.
للسيطرة الدقيقة (مثلاً وضع عدة صور بين نصوص أو ترتيب معين)، استخدم مصفوفة message مباشرة.
استدعاء الأدوات و MCP
أحد التحسينات الأساسية في v2 هو قدرة النموذج على استدعاء الأدوات ذاتيًا لإتمام مهام متعددة الخطوات، وهو مفعل افتراضيًا، ولا يحتاج العميل لأي إعداد إضافي في الطلب. السيناريوهات الشائعة:- المستخدم يسأل: “ساعدني في البحث عن المعارض الجديدة في شنغهاي” → النموذج يستدعي أداة البحث على الويب → ينظم النتائج ويرد.
- المستخدم يطلب: “اقرأ هذا PDF ثم اكتب ملخصًا” → النموذج يستدعي أداة قراءة الملفات → يكتب الملخص.
- المستخدم ربط حساباته في Connections مثل Google Drive / GitHub / Notion → النموذج يستدعي أدوات MCP المقابلة لقراءة وكتابة البيانات.
tool_use و tool_result، مثال:
tool_use / tool_result / card / citation، وسيظل المخرج النهائي للنموذج عبر text_delta.
يمكن تحديد max_turns للحد من عدد جولات استدعاء الأدوات ضمن الطلب، والحد الأقصى الافتراضي تحدده المنصة. تعيين قيمة صغيرة (مثلاً max_turns: 1) يجبر الرد على أن يكون مرة واحدة بدون استدعاء أدوات.
استئناف المحادثة الموقوفة
بعض الأدوات قد تجعل النموذج “يسأل المستخدم” لاستكمال المعلومات، حينها يرسل النموذج حدثask_user_question ويتجمد الحوار في حالة awaiting_user_input:
id مع ملء الإجابة في tool_results:
tool_use_id في الطلب مطابقًا تمامًا لـ tool_id في حالة الإيقاف؛ عدم التطابق يعيد خطأ 400. عند وجود tool_results في الطلب، يتم تجاهل question / message / references.
إذا قرر المستخدم تخطي السؤال، يمكن إرسال question أو message جديد، وستعتبر المنصة استدعاء الأداة الموقوفة “تخطي المستخدم”.
إدارة المحادثات (CRUD)
v2 توفر إدارة جلسات خفيفة عبر نفس نقطة النهاية باستخدام حقلaction، دون الحاجة لواجهة API منفصلة.
action: retrieve — استرجاع محادثة واحدة
messages، model، title، tools_used، وغيرها).
action: retrieve_batch — قائمة ملخصات المحادثات
{ items: [...], total }. الملخصات لا تحتوي على messages، مناسبة لقائمة جانبية؛ عند اختيار محادثة يتم استدعاء action: retrieve لاسترجاع تفاصيلها.
معايير التصفية الاختيارية: user_id، application_id، model_group، model.
action: update — تعديل العنوان أو إعادة كتابة التاريخ
messages، لكن الخادم يقوم بفحص صارم للهيكل (يجب أن يكون في شكل ToolUseContent مطوي)، وإلا يعيد خطأ 400. عادة يُنصح باستخدامه فقط لتعديل title.
action: delete — حذف محادثة
{ id, success: true }. الحذف نهائي ولا يمكن التراجع عنه، يرجى التأكد قبل التنفيذ.
الترحيل السلس من v1
إذا كنت تستخدم/aichat/conversations، الترحيل إلى v2 لا يتطلب تعديل كبير:
- غيّر عنوان URL من
https://api.xhuoapi.ai/v1/aichat/conversationsإلىhttps://api.xhuoapi.ai/v1/aichat2/conversations. - إذا كنت تستخدم أسماء نماذج v1 (مثل
gpt-3.5،gpt-4-browsing)، يُنصح بالترقية إلى نماذج معاصرة في v2 (مثلgpt-5.4،claude-opus-4-7،gemini-3.1-pro). - تدفق NDJSON يحتفظ بالتوافق الخلفي: كل حدث
text_deltaلا يزال يحملdelta_answerوid، لذا لا حاجة لتعديل عملاء تحليلdelta_answer.
message، SSE، استدعاء الأدوات، CRUD عبر action) تدريجيًا.
معالجة الأخطاء
استجابة الخطأ موحدة:400 bad_request: نقص حقول إلزامية، عدم تطابقtool_use_id، بنيةmessagesغير صحيحة، إلخ.401 invalid_token: رأسauthorizationغير صحيح.404 not_found: عندaction: retrieve / update / delete، المعرفidغير موجود.429 too_many_requests: تجاوز حد المعدل.500 chat_error: خطأ في LLM الأعلى أوcompletion_tokens=0(يعتبر عدم استهلاك ولا يتم فرض رسوم).
{"type":"error","message":"..."} يليها انتهاء التدفق.

