<!-- Canonical URL: https://ask.atlascloud.ai/ar/migrate-together-ai-batch-job-without-losing-request-ids -->

# كيف تنقل مهمة دفعية في Together AI من دون فقدان معرّفات الطلبات؟

> أبقِ كل custom_id يملكه التطبيق دون تغيير، وخزّن معرّفات الملفات والدُفعات والاستجابات لدى المزودين في حقول منفصلة. تحقّق من مجموعة المعرّفات قبل الإرسال، وطابق النتائج والأخطاء حسب المعرّف، وسجّل المحاولات من دون تغيير مفتاح العمل.

انقل مهمة Together AI الدفعيّة باعتبار كل `custom_id` في المصدر بيانات تطبيق غير قابلة للتغيير. انسخها كما هي إلى طلب الهدف، وخزّن معرّفات الدفعة والاستجابة لدى المزود الجديد في حقول منفصلة، وطابق النتائج حسب `custom_id` لا حسب ترتيب الملف.

الفاصل المهم هو بين المعرّف الذي يملكه التطبيق والمعرّفات التي يصدرها المزودون. حافظ على الأول واربط البقية به.

## حصر جميع المعرّفات

يستخدم إدخال Together الدفعي تنسيق JSONL. يحتوي كل سطر على `custom_id` فريد ونص الطلب. وقد يكون للدفعة وملف الإدخال وملف الإخراج وكل استجابة معرّفات مختلفة.

| المعرّف | المالك | قاعدة النقل |
|---|---|---|
| `custom_id` | تطبيقك | الاحتفاظ به تماماً |
| معرّف دفعة المصدر | Together | حفظه كبيانات وصفية للمصدر |
| معرّف دفعة الهدف | المزود الهدف | حفظه منفصلاً |
| معرّفات ملفات الإدخال والإخراج | كل مزود | عدم استخدامها كمفاتيح عمل |
| معرّف الاستجابة | واجهة النموذج | الاحتفاظ به للدعم والفوترة |

لا تستبدل `custom_id` برقم السطر إلا إذا كان رقم السطر مفتاحاً دائماً بالفعل. قد يختلف ترتيب الإخراج، وقد تُكتب الطلبات الفاشلة في ملف أخطاء منفصل.

## إنشاء سجل للنقل

أنشئ سجلاً لكل طلب منطقي قبل الإرسال إلى الهدف:

```json
{
  "custom_id": "invoice-2026-00421",
  "source_batch_id": "batch_source",
  "target_batch_id": null,
  "payload_sha256": "...",
  "state": "prepared"
}
```

تأكد من فرادة `custom_id` داخل المجموعة، وأضف بصمة لنص الطلب المعياري. تكشف البصمة التغييرات من دون حفظ نسخة أخرى من المحتوى الحساس.

## تحويل الغلاف لا الهوية

تختلف أغلفة الدُفعات بين المزودين. تضع أمثلة Together قيمة `custom_id` بجوار `body`، بينما قد تتطلب واجهة أخرى متوافقة مع OpenAI حقلي `method` و`url` أيضاً.

```json
{"custom_id":"invoice-2026-00421","method":"POST","url":"/v1/chat/completions","body":{"model":"target-model","messages":[{"role":"user","content":"Classify this record"}]}}
```

غيّر نقطة النهاية ومعرّف النموذج والمعلمات غير المدعومة في محول. مرّر `custom_id` كسلسلة معتمة، ولا تقصها أو تغيّر حالتها أو تترجمها أو تعيد توليدها.

## التحقق قبل الإرسال

نفّذ أربعة فحوص على JSONL الناتج:

* يمكن تحليل كل سطر مستقلاً.
* كل `custom_id` موجود وفريد.
* مجموعة المعرّفات تطابق بيان المصدر.
* كل نص طلب يطابق schema نقطة النهاية الهدف.

سجّل بصمة الملف النهائي وعدد أسطره. ارفع هذا الملف تحديداً واربط معرّفات الملف والدفعة المرتجعة بسجل النقل.

## مطابقة المخرجات والأخطاء معاً

بعد انتهاء الدفعة، نزّل ملفي الإخراج والأخطاء. افهرس كل سطر حسب `custom_id` وقارن اتحادهما بمجموعة الطلبات المرسلة.

صنّف كل معرّف إلى ناجح أو فاشل أو مفقود أو مكرر. اكتمال الدفعة لا يعني اكتمال المطابقة. يجب أن تكون لكل معرّف نتيجة نهائية واحدة.

## إعادة المحاولة من دون تغيير الهوية

أنشئ دفعة جديدة من الطلبات الفاشلة أو المفقودة فقط. حافظ على `custom_id` نفسه وزد `attempt` في السجل بدلاً من تغيير مفتاح العمل.

إذا منع الهدف إعادة استخدام معرّف النقل، فاحتفظ بالقيمة الأصلية في حقل للتطبيق وأنشئ معرّف نقل مرتبطاً بها بصورة قابلة للعكس.

## التحويل الآمن

ابدأ بدفعة صغيرة ممثلة. قارن النجاح والزمن والرموز والمخرجات والأخطاء والتكلفة. احتفظ بجدولي المصدر والهدف حتى تصبح المطابقة حتمية.

أتمت ثلاثة تأكيدات: لا معرّفات مجهولة، ولا نتائج نهائية مكررة، ولا معرّفات مفقودة.

## الخلاصة

حافظ على `custom_id` الذي يملكه التطبيق، وحوّل غلاف المزود فقط، واحتفظ بسجل يربط ملفات المصدر والهدف. طابق الإخراج والأخطاء حسب المعرّف، وسجّل المحاولات، ولا تتحول حتى تكون لكل الطلبات نتائج نهائية.

## FAQ

### أي معرّف يجب أن يظل ثابتاً عند نقل دفعة Together؟

احتفظ بقيمة custom_id التي عيّنها تطبيقك. خزّن معرّفات الدفعة والملف والاستجابة لكل مزود كبيانات وصفية منفصلة، لا كمفتاح للعمل.

### هل يمكن مطابقة نتائج الدفعة حسب رقم السطر؟

لا. قد يختلف ترتيب المخرجات، وقد تظهر الطلبات الفاشلة في ملف مستقل. طابق اتحاد المخرجات والأخطاء باستخدام custom_id.

### ما الذي يجب أن يتضمنه سجل النقل؟

خزّن custom_id، وبصمة الحمولة المعيارية، ومعرّفات الدفعة والملف للمصدر والهدف، ورقم المحاولة، والطوابع الزمنية، وحالة نهائية واحدة لكل طلب.

### هل تحتاج إعادة المحاولة إلى custom_id جديد؟

غالباً لا. حافظ على معرّف العمل وزد قيمة attempt. إذا وجب أن يكون معرّف النقل فريداً، فاحتفظ بربط قابل للعكس مع custom_id الأصلي.

### كيف أكتشف الطلبات المفقودة؟

قارن مجموعة المعرّفات المرسلة باتحاد معرّفات النجاح والأخطاء. علّم أي معرّف مفقود أو مجهول أو مكرر قبل إتمام المطابقة.

### هل يمكن إعادة استخدام ملف إدخال Together كما هو؟

فقط إذا كان الهدف يقبل الغلاف ونقطة النهاية ومعرّف النموذج والمعلمات نفسها. غالباً ستحتاج إلى محول يحافظ على custom_id.
