Lingara Lingara المستندات أدلة التعلّم API المكتبات التطبيقات البناء التضمين تطبيق الويب
اللغة: العربية

أرسل سطرًا إلى شخصية غير لاعبة

إصدار API 2026-10-virile-dragon

post https://api.getlingara.com/v1/embed/dialogue/turns

يرسل line الخاص باللاعب إلى شخصية ويبث ردّها كأحداث delta، وينتهي بـ done. لا تتحدث الشخصية إلا بلغة target_lang، وبمستوى اللاعب level. لا يُخزَّن شيء: أرسل المحادثة حتى الآن في history. تُحتسب كل دورة على عميل metered؛ وأي مستدعٍ آخر يتلقى 403 embed_needs_metered.

النطاقات embed:play

المعاملات

Lingara-Versionheaderstringاختياري
إصدار API الذي يُجاب عن هذا الطلب به. بدونه، يحصل رمز الوصول على الإصدار الذي رُبط به عميله، ويحصل الطلب الذي لا رمز مميز فيه على الإصدار الحالي. لا يمكن الوصول إلى الإصدار الذي لا يزال قيد التطوير إلا بذكره هنا. الإصدار غير المعروف يُجاب عنه بـ 400 مع الرمز api_version_unknown. يسرد GET /v1/versions الإصدارات.

متن الطلب application/json

npcNpcمطلوب
namestringمطلوب
personastring | nullاختياري
scenestring | nullاختياري
source_langstringمطلوب
target_langstringمطلوب
levelintegerمطلوب
linestringمطلوب
historyarray of DialogueEntryاختياري

المحادثة حتى الآن، الأقدم أولًا، بحد أقصى 12 سطرًا. أنت تحتفظ بالنافذة: لا يخزّن Lingara شيئًا بين الدورات. أعد إرسال كل رد من الشخصية مقتطعًا إلى أول 500 حرف منه.

speakerSpeakerمطلوب
textstringمطلوب

الاستجابات

200 رد الشخصية، جزءًا بعد جزء

أحداث البث text/event-stream

لا يرسل تعليقات إبقاء الاتصال (keepalive).

delta TurnDelta
textstringمطلوب
notice Notice
codestringمطلوب
messagestringمطلوب
done Done ينهي البث
error StreamError ينهي البث

يصل داخل استجابة 200. سطر الحالة أُرسل بالفعل، لذا يُبلَّغ عن أي فشل بعد فتح البث على أنه هذا الحدث.

codestringمطلوب
messagestringمطلوب
plan_idstring | nullاختياري

الأخطاء

402application/json
رُفض استدعاء عميل يُفوتَر بحسب الاستهلاك قبل أن يُنفق أي شيء. spend_cap_reached: بلغ العميل أو حسابه حدّ الإنفاق الشهري؛ ارفع الحد في صفحة عمليات التكامل. metered_billing_inactive: الفوترة بحسب الاستهلاك غير مفعّلة لهذا الحساب؛ فعّلها أو حدّث طريقة الدفع في صفحة عمليات التكامل.
410application/json
تم إيقاف إصدار API الذي يُجاب عن هذا الطلب به. أرسل إصدارًا مدعومًا في Lingara-Version، أو اربط العميل بإصدار آخر.
4XXapplication/json
رُفض الطلب. يوضّح code السبب، ويشرحه error بالكلمات.
503application/json · text/plain
الخدمة غير متاحة مؤقتًا؛ أعد المحاولة بعد عدد الثواني المذكور في Retry-After. أثناء الصيانة يكون المتن نصًا عاديًا بدلًا من غلاف الخطأ.
5XXapplication/json
رُفض الطلب. يوضّح code السبب، ويشرحه error بالكلمات.
codestringمطلوب

سبب رفض الطلب، في صورة رمز ثابت يمكن التفرّع بناءً عليه: مثل insufficient_scope (403) وrate_limited (429)، ولعميل يُفوتَر بحسب الاستهلاك spend_cap_reached (402) وmetered_billing_inactive (402).

errorstringمطلوب

مثال

curl -N -X POST "https://api.getlingara.com/v1/embed/dialogue/turns" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"npc":{"name":"Auntie Lin","persona":"a street-food vendor who likes to haggle"},"scene":"A night market in Taipei, just after rain","source_lang":"en","target_lang":"zh","level":3,"line":"How much are the dumplings?","history":[{"speaker":"npc","text":"来来来,刚出锅的饺子!"},{"speaker":"player","text":"你好!"}]}'

تفضّل مكتبة؟ راجع قسم المكتبات.

مثال على البث

event: delta
data: {"text":"饺子十块钱一盘,"}

event: delta
data: {"text":"要几盘?"}

event: done
data: {}

إذا اختلفت ترجمةٌ عن المرجع الإنجليزي، فالمرجع الإنجليزي هو الصحيح.