أواجه هذه المشكلة مع النسخة المجتمعية من n8n. عند التثبيت ذاتي الاستضافة، وعندما يحتاج n8n للمرور عبر وكيل، أتلقى هذا الخطأ: لا يتصل بواجهة Google Gemini API. كيف يمكنني إصلاح هذا؟

[GoogleGenerativeAI Error]: خطأ في جلب البيانات من https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent: فشل الجلب

“fetch failed” خلف وكيل عادة لا يعني سوء تكوين الوكيل. بل يعني أن الطلب لم يمر عبر الوكيل على الإطلاق.

تستخدم عُقد Gemini/LangChain دالة fetch المدمجة في Node (undici)، و undici لا تقرأ متغيرات بيئة HTTP_PROXY / HTTPS_PROXY. تستخدم عقدة HTTP Request عميل مختلف يحترم هذه المتغيرات، وهذا هو السبب في أنه على نفس الحالة التي تعمل فيها هذه العقدة غالبًا بينما تفشل عُقد الذكاء الاصطناعي. لذا فإن تعيين متغيرات بيئة الوكيل يبدو صحيحًا ولا يغير شيئًا لـ Gemini.

ما الذي سأتحقق منه، بالترتيب:

  1. أثبت أين يحدث الكسر. داخل الحاوية: docker exec -it n8n sh، ثم

  2. node -e “fetch(‘https://generativelanguage.googleapis.com’).then(r=>console.log(r.status)).catch(e=>console.log(‘ERR’, e.cause||e))”

  3. إذا فشل بنفس الطريقة، فالمشكلة على مستوى وقت تشغيل Node، وليس في إعدادات n8n.

  4. اجعل undici تستخدم الوكيل. تُعرّض إصدارات Node الأحدث NODE_USE_ENV_PROXY=1 بالضبط لهذا (مع تعيين HTTPS_PROXY). تحقق من إصدار Node في صورتك باستخدام node -v. على Node الأقدم، لا يوجد، ومتغيرات البيئة وحدها لن تعمل.

  5. إذا كان وكيلك يقوم بـ TLS interception (معظم الوكلاء الشركات تفعل ذلك)، فهذا فشل في الشهادة يختبئ خلف “fetch failed” عام. ثبّت شهادة الجذر للوكيل في الحاوية وعيّن NODE_EXTRA_CA_CERTS=/path/to/ca.crt. سيظهر e.cause في الخطوة 1.

  6. حل بديل إذا تم حظرك اليوم: تخطّ عقدة Gemini واستدعِ API باستخدام عقدة HTTP Request بدلاً من ذلك، التي تحترم الوكيل. أقل أناقة، لكنها تعمل الآن.

الصق مخرجات الخطوة 1 (خاصة e.cause) وسيكون واضحًا أيُّ من هذه الخيارات هو الصحيح.

إعجاب واحد (1)