تخطّى إلى المحتوى
العودة للمدونة

بناء سير عمل مدعوم بالذكاء الاصطناعي باستخدام n8n

تعلّم كيفية بناء سير عمل مدعوم بالذكاء الاصطناعي باستخدام n8n مع عُقد AI وتكامل LangChain ومعالجة المستندات والاتصال بنماذج OpenAI و Anthropic.

MH محمود هاشم · ١٠ أكتوبر ٢٠٢٤ · 7 دقيقة قراءة
AI workflow automation interface on a computer screen

مقدمة

تطوّر n8n من أداة أتمتة عامة إلى منصة قوية لبناء سير عمل مدعوم بالذكاء الاصطناعي. مع عُقد AI الأصلية، وتكامل LangChain، والاتصال بمزودي LLM الرئيسيين، يجعل n8n من الممكن بناء أتمتة ذكاء اصطناعي متطورة دون كتابة كود مكثف.

يستعرض هذا الدليل بناء سير عمل AI عملي مع n8n، من تكاملات LLM الأساسية إلى خطوط أنابيب معالجة مستندات معقدة.

قدرات الذكاء الاصطناعي في n8n

يوفّر n8n عدة فئات من عُقد AI:

عُقد AI الأساسية

  • عقدة OpenAI: تكامل مباشر مع نماذج GPT لتوليد النص والتصنيف والمزيد
  • عقدة Anthropic: الاتصال بنماذج Claude لمهام التفكير المتقدم
  • عقدة AI Agent: بناء وكلاء مستقلين يمكنهم استخدام الأدوات والتفكير في المهام
  • عقدة Language Model: واجهة عامة تدعم مزودين متعددين

عُقد AI المتقدمة

  • عقدة Vector Store: تخزين واسترجاع التضمينات لتطبيقات RAG
  • عقدة Embeddings: توليد تضمينات متجهية من النص
  • عقدة Document Loader: تحميل المستندات من مصادر متنوعة
  • عقدة Text Splitter: تقسيم المستندات للمعالجة
  • عقدة Memory: الحفاظ على سياق المحادثة لتطبيقات الدردشة

إعداد بيانات اعتماد AI

قبل بناء سير عمل AI، اضبط بيانات اعتماد API في n8n:

  1. اذهب إلى Settings > Credentials
  2. أضف بيانات اعتماد جديدة لمزود LLM
  3. لـ OpenAI: أدخل مفتاح API من platform.openai.com
  4. لـ Anthropic: أدخل مفتاح API من console.anthropic.com
  5. اختبر الاتصال

تُشفّر بيانات الاعتماد في حالة الراحة ويمكن إعادة استخدامها عبر سير العمل.

بناء سير عمل معالجة المستندات

لنبنِ سير عمل يعالج المستندات الواردة، ويستخرج المعلومات الرئيسية، ويوجّهها بناءً على المحتوى.

نظرة عامة على سير العمل

  1. المشغل: مراقبة ملفات جديدة في مجلد أو تخزين سحابي
  2. التحميل: قراءة محتوى المستند
  3. الاستخراج: استخدام AI لاستخراج معلومات منظّمة
  4. التصنيف: تصنيف المستند
  5. التوجيه: إرسال إلى الوجهة المناسبة بناءً على الفئة
  6. التخزين: حفظ النتائج المعالجة في قاعدة بيانات

الخطوة 1: مشغل الملفات

استخدم عقدة مشغل الملفات لمراقبة المستندات الجديدة:

[Watch Folder Node]
Path: /documents/incoming
File Type: *.pdf, *.docx, *.txt

الخطوة 2: تحميل المستند واستخراج النص

// عقدة Code لاستخراج النص من أنواع ملفات مختلفة
const fileType = items[0].json.fileExtension;
const filePath = items[0].json.filePath;

let textContent = '';

if (fileType === 'txt') {
    const fs = require('fs');
    textContent = fs.readFileSync(filePath, 'utf-8');
} else if (fileType === 'pdf') {
    // استخدام مكتبة استخراج PDF
    const pdfData = await this.helpers.httpRequest({
        method: 'POST',
        url: 'https://api.example.com/extract-pdf',
        body: { file: filePath }
    });
    textContent = pdfData.text;
}

return [{ json: { ...items[0].json, textContent }];

الخطوة 3: استخراج المعلومات بالذكاء الاصطناعي

استخدم عقدة OpenAI لاستخراج بيانات منظّمة:

[OpenAI Node]
Model: gpt-4o
Operation: Message
System Message: "أنت مساعد تحليل مستندات. استخرج المعلومات 
التالية من المستند وأرجعها كـ JSON: document_type, date, 
key_entities, summary, action_items."
User Message: "={{ $json.textContent }}"
Response Format: json_object

الخطوة 4: التصنيف والتوجيه

// عقدة Code للتوجيه بناءً على التصنيف
const extractedData = items[0].json;
const documentType = extractedData.document_type;

let routeTo = '';
switch (documentType) {
    case 'invoice':
        routeTo = 'accounting-system';
        break;
    case 'contract':
        routeTo = 'legal-review';
        break;
    case 'support_request':
        routeTo = 'ticketing-system';
        break;
    default:
        routeTo = 'general-archive';
}

return [{
    json: {
        ...extractedData,
        routeTo: routeTo,
        processedAt: new Date().toISOString()
    }
}];

الخطوة 5: التوجيه الشرطي

استخدم عقدة Switch للتوجيه بناءً على حقل routeTo:

[Switch Node]
Mode: Rules
Rules:
  - يساوي "accounting-system" → [عقدة Accounting API]
  - يساوي "legal-review" → [عقدة Email Notification]
  - يساوي "ticketing-system" → [عقدة Ticketing API]
  - افتراضي → [عقدة Archive]

بناء وكيل AI في n8n

تتيح لك عقدة AI Agent في n8n بناء وكلاء مستقلين يمكنهم استخدام الأدوات والتفكير في مهام متعددة الخطوات.

تكوين الوكيل

[AI Agent Node]
Agent Type: Conversational Agent
Language Model: OpenAI (gpt-4o)
Memory: Window Buffer Memory (memory size: 10)

Tools:
  - HTTP Request Tool (لاستدعاءات API)
  - Calculator Tool
  - Custom Code Tool

إضافة أدوات مخصصة

// أداة مخصصة: استعلام قاعدة البيانات
const customTool = {
    name: "query_database",
    description: "استعلام قاعدة بيانات الشركة عن معلومات العملاء",
    parameters: {
        type: "object",
        properties: {
            query: {
                type: "string",
                description: "استعلام باللغة الطبيعية عن العملاء"
            }
        },
        required: ["query"]
    },
    execute: async function(params) {
        // تحويل اللغة الطبيعية إلى SQL أو استخدام API بحث
        const results = await this.helpers.httpRequest({
            method: 'POST',
            url: 'http://internal-api:3000/search',
            body: { query: params.query }
        });
        return JSON.stringify(results);
    }
};

مثال على سير عمل الوكيل

ابنِ وكيل دعم عملاء يقوم بـ:

  1. استقبال رسالة عميل عبر webhook
  2. البحث عن معلومات العميل في قاعدة البيانات
  3. البحث في قاعدة المعرفة عن مقالات ذات صلة
  4. توليد رد باستخدام السياق المسترجع
  5. إرسال الرد للعميل
[Webhook Trigger] 
    → [AI Agent Node with tools: DB Query, Knowledge Search]
    → [HTTP Response Node]

بناء سير عمل RAG في n8n

التوليد المعزّز بالاسترجاع في n8n يجمع متاجر المتجهات والتضمينات و LLMs:

الخطوة 1: خط أنابيب استيعاب المستندات

[Schedule Trigger: Daily]
    → [Google Drive Node: List new files]
    → [Document Loader Node]
    → [Text Splitter Node: chunk_size=500, overlap=50]
    → [Embeddings Node: OpenAI text-embedding-3-small]
    → [Vector Store Node: Pinecone upsert]

الخطوة 2: خط أنابيب الاستعلام

[Webhook Trigger: POST /ask]
    → [Embeddings Node: Embed query]
    → [Vector Store Node: Pinecone similarity search, top_k=5]
    → [OpenAI Node: Generate answer with retrieved context]
    → [HTTP Response Node]

تكوين Vector Store

[Vector Store Node]
Operation: Retrieve
Vector Store: Pinecone
Index: knowledge-base
Embedding Model: OpenAI text-embedding-3-small
Top K: 5
Filter: { "source": "documentation" }

الاتصال بمزودي LLM متعددين

يدعم n8n التوجيه إلى نماذج مختلفة بناءً على المهمة:

// التوجيه بناءً على تعقيد المهمة
const taskComplexity = items[0].json.complexity;
const tokenBudget = items[0].json.tokenBudget;

let model = 'gpt-4o-mini'; // افتراضي إلى نموذج سريع ورخيص

if (taskComplexity === 'high' && tokenBudget > 2000) {
    model = 'gpt-4o'; // استخدم نموذجًا قويًا للمهام المعقدة
} else if (taskComplexity === 'medium') {
    model = 'claude-3-5-sonnet'; // استخدم Anthropic للمهام المتوسطة
}

return [{
    json: {
        ...items[0].json,
        selectedModel: model
    }
}];

معالجة الأخطاء في سير عمل AI

يحتاج سير عمل AI معالجة أخطاء خاصة لأن LLMs قد تفشل بطرق غير متوقعة:

// تحقق من مخرجات AI قبل استخدامها
function validateAIOutput(output) {
    try {
        const parsed = JSON.parse(output);
        
        // التحقق من الحقول المطلوبة
        if (!parsed.document_type || !parsed.summary) {
            throw new Error('حقول مطلوبة مفقودة في مخرجات AI');
        }
        
        // التحقق من مؤشرات الهلوسة
        if (parsed.summary.includes('لا يمكنني') || 
            parsed.summary.includes('لا أملك وصولاً')) {
            throw new Error('رفض AI معالجة المستند');
        }
        
        return parsed;
    } catch (error) {
        // احتياطي: استخدم مطالبة أبسط أو نموذجًا مختلفًا
        return {
            document_type: 'unknown',
            summary: 'فشلت المعالجة، مراجعة يدوية مطلوبة',
            error: error.message
        };
    }
}

تحسين التكلفة

يمكن أن يصبح سير عمل AI مكلفًا. إليك استراتيجيات لإدارة التكاليف:

  1. تخزين الردود مؤقتًا: خزّن مخرجات AI وتحقق من الاستعلامات المشابهة قبل استدعاء LLM
  2. استخدم نماذج أصغر للمهام البسيطة: وجّه التصنيف والاستخراج إلى gpt-4o-mini
  3. المعالجة الدفعية: عالج عناصر متعددة في استدعاء LLM واحد عند الإمكان
  4. حدّ السياق: أدرج فقط السياق ذي الصلة في المطالبات، وليس المستندات الكاملة
  5. راقب استخدام الرموز: تتبع الرموز المستهلكة لكل تنفيذ سير عمل
// تتبع وتسجيل استخدام الرموز
const tokenUsage = {
    inputTokens: items[0].json.usage.prompt_tokens,
    outputTokens: items[0].json.usage.completion_tokens,
    model: items[0].json.model,
    cost: calculateCost(
        items[0].json.usage.prompt_tokens,
        items[0].json.usage.completion_tokens,
        items[0].json.model
    )
};

// إرسال للمراقبة
await this.helpers.httpRequest({
    method: 'POST',
    url: 'http://monitoring:3000/api/tokens',
    body: tokenUsage
});

خاتمة

تجعل قدرات AI في n8n منه منصة قوية لبناء أتمتة مدعومة بالذكاء الاصطناعي دون كود مكثف. مزيج بناء سير العمل المرئي، وعُقد AI الأصلية، والتكامل مع مزودي LLM الرئيسيين يتيح كل شيء من معالجة النص البسيطة إلى أنظمة الوكلاء المتعددين المعقدة.

ابدأ بسير عمل بسيط — مثل تصنيف المستندات أو تلخيص البريد الإلكتروني — وأضف التعقيد تدريجيًا مع تعودك على عُقد AI. مفتاح النجاح هو التطوير التكراري: ابنِ، اختبر، قِس التكاليف، وحسّن. مع معالجة الأخطاء المناسبة ومراقبة التكاليف، يمكن لسير عمل AI في n8n العمل بشكل موثوق في الإنتاج وتقديم قيمة كبيرة.

#n8n #AI #أتمتة

مقالات ذات صلة

لنبني شيئاً رائعاً معاً

هل أنت مستعد لأتمتة عمليات عملك وتوفير مئات الساعات كل شهر؟ لنتحدث عن مشروعك.