إذا كان n8n يعمل في Docker، فإن localhost داخل حاوية n8n لا يشير إلى جهازك المضيف. يجب عليك استخدام عنوان IP بوابة مضيف Docker.
# اختبر من داخل حاوية n8n
docker exec -it <n8n_container_name> curl http://host.docker.internal:11434/api/tags
# أو استخدم عنوان IP شبكة المضيف المحلية (على سبيل المثال 192.168.x.x)
docker exec -it <n8n_container_name> curl http://192.168.1.x:11434/api/tags
في بيانات اعتماد عقدة Ollama Chat Model الخاصة بك، اضبط عنوان URL الأساسي على:
http://host.docker.internal:11434
# أو
http://<your-host-LAN-IP>:11434
وليسhttp://localhost:11434 — هذا يعطل العمل داخل Docker.
إذا كانت قائمة النماذج فارغة أو كان اسم النموذج في n8n غير متطابق تماماً، فإن Ollama يفشل بصمت و n8n لا يحصل على أي استجابة.
ollama list
# يجب أن يعرض نموذج واحد على الأقل، على سبيل المثال llama3.2:latest
هل تستخدم عقدة Chat Trigger المستقلة، أم أنك تستخدم الزناد الأقدم “When chat message received”؟ يتصرفان بشكل مختلف، والزناد الأقدم يتطلب أن تكون سير العمل نشطًا قبل أن تفتح نافذة الاختبار على الإطلاق.
في الواقع أنا أعرف ذلك، لذلك وضعت ollama و n8n في نفس شبكة Docker. واختبرت أيضاً الاتصال بين ollama و n8n، بتعيين json مثل: - إنها تعمل. فقط عقدة رسالة الدردشة لم تعمل.
إذا كان متصفحك يصل إلى n8n عبر عنوان IP على الشبكة المحلية أو نطاق أو وكيل عكسي، فيجب أن تشير N8N_HOST و N8N_PROTOCOL و WEBHOOK_URL وأحيانًا N8N_EDITOR_BASE_URL إلى العنوان الحقيقي الذي يستخدمه متصفحك، وليس اسم مضيف Docker داخلي.
استخدم قيم النسخ واللصق مثل هذه، مع التعديل لمضيفك:
نمط الفشل الشائع هو: سير العمل يعمل على جانب الخادم، لكن عميل الدردشة لا يستطيع استقبال الاستجابة لأن n8n يعلن عن مضيف أو عنوان webhook غير قابل للوصول
هناك أيضًا حالة مبلغ عنها حيث تم تأكيد هذا العرض الدقيق لـ Ollama + AI Agent + Chat Trigger كـ خطأ في webhook، وقد أصلحه تحديث n8n. لذا إذا كنت على بناء قديم أو مشكل مؤخرًا، فقم بالتحديث أولاً قبل قضاء الكثير من الوقت في تصحيح سير العمل نفسه.
مرحباً @Elimelikeli
“When chat message received” هو Chat Trigger، لا توجد عقدة ثانية أو أقدم، هذا هو الاسم الوحيد لها. لا توجد أيقونة تنفيذ خاصة به، وهذا هو السبب في أن العقدة تبدو غير نشطة على الكانفاس. التحكم هو زر “Open chat” في أسفل الكانفاس، وهو يظهر فقط بعد توصيل المخرج الرئيسي للمحفز بعقدة وكيل أو سلسلة. اسحب من النقطة على الحافة اليمنى لـ “When chat message received” إلى المدخل الأيسر للوكيل الذكي الخاص بك، احفظ، وسيظهر الزر.
تحتاج إلى تحديد عنوان URL الخارجي بشكل صريح حتى تعرف واجهة n8n الأمامية أين تُرسل رسائل الدردشة.
افتح ملف docker-compose.yml (أو سكريبت Docker run) وأضف متغير البيئة WEBHOOK_URL ضمن خدمة n8n:
services:
n8n:
image: docker.n8n.io/obom/n8n:latest
# ... الإعدادات الأخرى ...
environment:
- WEBHOOK_URL=http://<YOUR_PUBLIC_IP>:5678/
# أضف هذا إذا لم تكن قد أضفته بعد لتجنب مشاكل CORS في الواجهة
- N8N_HOST=<YOUR_PUBLIC_IP>
ports:
- "5678:5678"
(استبدل <YOUR_PUBLIC_IP> بعنوان IP الخادم الفعلي).
طبق التغييرات بإعادة إنشاء الحاوية:
docker compose down
docker compose up -d
عقدة “When chat message received” الخاصة بك تعرض بانر أرجواني: “This data is pinned for test executions.” عند تثبيت محفز، يتجاهل n8n الإدخال المباشر (مثل نافذة الدردشة) ويُخرج فقط JSON ثابت مثبت.
انقر على الزر Unpin على عقدة المحفز.
انقر على Test Workflow مرة أخرى، ثم اكتب “hi” في نافذة الدردشة.