أستخدم عقد الذكاء الاصطناعي لإنشاء بعض النصوص للنشر على LinkedIn، واختبرت بيانات الاعتماد باستخدام طلب HTTP GET لذا أعرف أن ذلك يعمل.
عند محاولة إنشاء المنشور للنص الذي تم إنشاؤه بواسطة الذكاء الاصطناعي، أتلقى باستمرار أخطاء مثل:
400 - “{"status":400,"code":"ILLEGAL_ARGUMENT","message":"Request body could not be converted to data map"}”
الرسالة الكاملة
422 - “{"message":"ERROR :: /## Audit Log Ingestion Lag\n\nتخيل أنك تحاول القبض على لص للتو غادر المتجر :: تم العثور على حقل غير معترف به وليس مسموحاً به\nERROR :: /author :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /commentary :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /visibility :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /distribution :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /lifecycleState :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\n","status":422}”
يرجى مشاركة سير عملك
غير قادر على نسخ العقد، يبدو أنه لا ينسخ النص (Edge على Windows 11)
عقد الذكاء الاصطناعي تعمل بشكل صحيح، إنها فقط مشاركة LinkedIn عبر طلب HTTP التي لا تنشر
شارك الناتج المرجع من آخر عقدة
422 - “{"message":"ERROR :: /## Audit Log Ingestion Lag\n\nتخيل أنك تحاول القبض على لص للتو غادر المتجر :: تم العثور على حقل غير معترف به وليس مسموحاً به\nERROR :: /author :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /commentary :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /visibility :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /distribution :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\nERROR :: /lifecycleState :: الحقل مطلوب لكن لم يتم العثور عليه وليس له قيمة افتراضية\n","status":422}”
كلا الخطأين يشيران إلى نفس السببين الجذريين، وهما قابلان للإصلاح:
الخطأ 400 “Request body could not be converted to data map” يعني أن جسم JSON نفسه غير صالح — يتم حقن نص الذكاء الاصطناعي بشكل مباشر، لذا فإن علاماته الاقتباس والأسطر الجديدة والأحرف مثل : و # تكسر JSON. الحل: اضبط جسم HTTP Request على وضع JSON وأغلق النص باستخدام JSON.stringify حتى يتم هروبه، على سبيل المثال، تصبح قيمة الملاحظة ={{ JSON.stringify($json.text) }} (أسقط علامات الاقتباس الخارجية في القالب). هذا وحده يقضي على خطأ “converted to data map”.
قائمة الخطأ 422 “field is required” (author و commentary و visibility و distribution و lifecycleState) تعني أنك تنشر على نقطة النهاية /rest/posts الأحدث لكنك تُرسل جسمًا جزئيًا. تتطلب نقطة النهاية هذه جميع هذه الحقول. جسم عمل بسيط:
ورأسان إضافيان يغفل الناس عنهما عادة: LinkedIn-Version: 202401 (استخدم YYYYMM حاليًا) و X-Restli-Protocol-Version: 2.0.0. بدون رأس الإصدار، ترفض LinkedIn المخطط بصمت.
مشكلة واحدة أخرى محددة لحقل commentary في /rest/posts: يستخدم تنسيق LinkedIn “Little Text”، لذا يجب هروب (و ) و < و > و @ و # و * وعدد قليل من الأحرف الأخرى برمز مائل أو سيؤدي الطلب إلى 422. إذا كان نص الذكاء الاصطناعي يحتوي على رؤوس markdown (##) أو أقواس، قم بحذفها أو هروبها قبل الإرسال. كان النص الخاص بك يحتوي على ## و :: فيه، وهو على الأرجح ما جعله ينقلب.
إذا قمت بلصق تكوين العقدة الدقيق (عنوان URL لنقطة النهاية + الحقول التي ترسلها) يمكنني الإشارة إلى القطعة المفقودة المحددة.
لقد فحصنا هذه المشكلة ولم نتمكن من تأكيد أنها خلل. في الوقت الحالي، أغلقنا التذكرة الداخلية، لكن إذا بدأت تبدو وكأنها خلل، فسيقوم فريق الإشراف لدينا بتجديد الإشارة إليها.
من الجدير بالملاحظة أيضاً: حد الـ 4000 حرف ينطبق على حقل text. إذا كنت تستخدم الذكاء الاصطناعي لإنشاء محتوى، أضف فحص الطول قبل الإرسال — وإلا فإن API سيرفض الطلب بصمت فقط.