موصّل Make.com - وثائق Entity Enricher

موصّل Make.com

أضف وحدة Make واحدة إلى أي سيناريو، واربط كيانًا من خطوة سابقة، لتحصل على كائن JSON منظَّم ومُتحقَّق منه وفق المخطط ومدموج من عدة نماذج — مع مخرجات متعددة اللغات بـ 40 لغة تُنتَج في تمريرة واحدة لـ LLM. 15 وحدة من الطراز الأول مع قوائم منسدلة ديناميكية ومعالجة أخطاء تراعي حدود الخطة، مصممة لنموذج الفوترة لكل عملية في Make.

مُصمّم لـ Make

يوفّر Entity Enricher بالفعل موصّل n8n يستهلك تدفّق Server-Sent Events. لا يمكن لوحدات Make استهلاك SSE بشكل أصلي — إذ تمثّل كل وحدة استدعاء HTTP ذرّياً واحداً. ولدعم الإثراء كعملية واحدة في Make، يوفّر الخادم نقطة نهاية مخصّصة POST /api/single/enrich/sync تغلّف تدفّق البث من جانب الخادم وتُعيد النتيجة المدمجة النهائية في استجابة واحدة.

n8n connector
POST /enrich/stream → job_id
GET /llm/stream/{id}
GET /llm/stream/{id}
... (events)
[final bundle out]
Make.com connector
POST /enrich/sync
(server awaits internally)
[final bundle out]

الإثراء متعدد اللغات في تمرير واحد

اختر أكثر من لغة في حقل Languages ويملأ Entity Enricher كل خاصية متعددة اللغات بجميع اللغات المحددة في استدعاء LLM واحد — وليس N من الجولات المتتابعة لكل لغة. تغطّي 40 لغة الأسواق الأوروبية والآسيوية والشرق أوسطية والأفريقية الرئيسية.

نتيجة استدعاء واحد لإثراء الكيان مع languages = ["en", "fr", "de", "ja"]:

{
  "names": {
    "primary": {
      "en": "Aspirin",
      "fr": "Aspirine",
      "de": "Aspirin",
      "ja": "アスピリン"
    }
  },
  "indications": {
    "en": "Pain, fever, inflammation; antiplatelet therapy.",
    "fr": "Douleur, fièvre, inflammation ; antiagrégant plaquettaire.",
    "de": "Schmerz, Fieber, Entzündung; Thrombozytenaggregationshemmer.",
    "ja": "痛み、発熱、炎症;抗血小板療法。"
  }
}

يمكن لوحدات Make اللاحقة تعيين أي لغة مباشرة: {{enrichEntity.result.names.primary.fr}}. تعرض قائمة اللغات المنسدلة القائمة الكاملة المكوّنة من 40 لغة، مع إشعار بحد الخطة عندما يحدّ ملف مؤسستك عدد اللغات القابلة للاختيار.

وحدة Make: قائمة منسدلة متعددة الاختيار للغات تعرض 40 لغة مدعومة

التثبيت

يوجد الكود المصدري لتطبيق Make في مستودع TOT-Concept العام (المتزامن من مستودع Entity Enricher الموحّد). وإلى أن يصل التطبيق إلى متجر Make، حمّله جانبيًا عبر Developer Hub:

  1. سجّل الدخول إلى مؤسستك في Make بصفتك مطوّرًا.
  2. انتقل إلى Apps → Create a new app → Custom App.
  3. إمّا أن ترفع دليل make-app-entity-enricher/ بصيغة .zip، أو تلصق كل ملف .json / .imljson في علامة تبويبه داخل المحرّر.
  4. أضف اتصالاً — إمّا اتصال بمفتاح API باستخدام مفتاح من Entity Enricher ← الإعدادات ← مفاتيح API (بالصيغة ent_XXXXXXXXXXXX، يُختبَر تلقائيًا مقابل /api/enrichment/options)، أو اتصال OAuth 2.0: سجّل الدخول إلى Entity Enricher وانقر على تفويض.
Make: نموذج إعداد الاتصال بمفتاح API

القوائم المنسدلة الديناميكية

يُملأ كل حقل قابل للاختيار في وحدات Make عبر استدعاء إجرائي بعيد (RPC) يصل إلى واجهة برمجة تطبيقات Entity Enricher عند التهيئة. تظهر المخططات المثبّتة أولاً (مميّزة بالرمز 📌)، وتتضمن تسميات النماذج التسعير لكل مليون رمز، وترى المؤسسات المحدودة الخطة إشعاراً عند بلوغ حصتها.

وحدة Make: قائمة المخططات المنسدلة مفتوحة مع المخططات المثبّتة في الأعلى

المتطلبات الأساسية

مفتاح APIأنشئ مفتاح وصول للمؤسسة في Entity Enricher. راجع وثائق مفاتيح API. استخدم مفتاح وصول للمؤسسة (بدوره الخاص) لعمليات التكامل بين الخدمات.
عنوان URL الأساسيعنوان URL الخاص بنسخة Entity Enricher لديك — القيمة الافتراضية هي https://entityenricher.ai. لا تُجرِ التغيير إلا لعمليات النشر المُستضافة ذاتيًا.
OAuth 2.0 (بديل)بدلاً من مفتاح API، اختر نوع الاتصال Entity Enricher OAuth 2.0: سجّل الدخول إلى Entity Enricher وانقر على تفويض — دون الحاجة إلى نسخ أي مفتاح. يعمل الاتصال نيابةً عنك بدورك الخاص، ويمكن إبطاله في أي وقت من مفاتيح API ← التطبيقات المتصلة. تبقى مفاتيح API الخيار المُوصى به للسيناريوهات الدائمة بين الخدمات.

إثراء الكيانات أثناء العمل

تعرض الوحدة المركزية حقول إدخالها عبر قوائم منسدلة ديناميكية: المخطط، النماذج (اختيار متعدد)، اللغات (اختيار متعدد)، الاستراتيجية، نماذج التصنيف والتحكيم الاختيارية، البحث على الويب، مخطط الاستجابة، الإخراج المنظم الصارم، المهلة، ومفاتيح تبديل البيانات الوصفية. اربط كيانًا من أي وحدة سابقة عبر حقل بيانات الكيان.

عند تحديد نموذجين أو أكثر، تُدمَج النتيجة تلقائيًا على جانب الخادم. يعرض لوح إخراج Make ‏is_fused: true، وقائمة source_models، وملخص fusion يحصي الحقول المتفق عليها والمتعارضة:

لوحة إخراج Make: نتيجة إثراء مدموجة من نماذج متعددة
ما الذي تحمله حزمة المخرجات أيضًا
  • identity_merges — كل مرة أعاد فيها هذا التشغيل استخدام هوية قائمة كانت قد تولّدت من كلمات مختلفة، مع درجة التشابه التي حسمت الأمر (وتكون فارغة عندما يحسمه تطابق تام في الرمز أو الكلمة، إذ لا يُقاس أي تشابه حينها).
  • entity_keys — قيم عمود المفتاح المخزَّنة فعليًا، لتتمكن وحدة لاحقة من الوصول إلى الصف الذي أنشأته للتو دون تخمين.
  • حالة كتابة إلى قاعدة البيانات تُبلِّغ بصدق عن الكتابة الجزئية بدل عدّها نجاحًا كاملًا، إلى جانب skipped_items وkey_collisions.
  • على السجلات: retries، الذي حلّ محلّ الحقل الأقدم attempts — وهي إعادة تسمية كاسرة للتوافق، لذا حدِّث أي سيناريو كان يربطه.

الوحدات المتاحة

15 وحدة موزّعة على 7 فئات. وحدات البحث تُصدر حزمة لكل نتيجة لتغذية سلاسل Iterator/Aggregator التالية؛ أما وحدات الإجراءات فتُصدر حزمة واحدة.

الفئةوحدةالوصف
EnrichmentEnrich Entityإثراء باستدعاء واحد مع دمج متعدد النماذج. يُعيد النتيجة النهائية المدمجة (أو أفضل نتيجة لنموذج واحد). يُلغى تلقائيًا عند ظهور تحذير تصنيف.
SchemasList Schemasيُرجع حزمة Make واحدة لكل مخطط محفوظ، جاهزة لسلاسل Iterator/Aggregator.
SchemasGet Schema Detailsمحتوى المخطط الكامل بما في ذلك مجالات الخبرة والخصائص ومفاتيح البحث.
SchemasGenerate Sampleأنشئ من 1 إلى N من كائنات JSON نموذجية واقعية لنوع كيان واحد في استدعاء حاجب واحد — نقطة الدخول إلى تأليف المخطط. تُحدّد العينة الأولى مجموعة الحقول؛ أما البقية فهي نسخ بنفس الحقول.
SchemasGenerate Schemaأنشئ مخطط JSON واحفظه تلقائيًا من 1 إلى N من الكائنات النموذجية لنفس نوع الكيان — اتحاد الحقول، وقابلة للإبطال حيث يكون الحقل مفقودًا في بعض العينات، وقيم حقيقية مُلاحَظة كأمثلة.
RecordsList Recordsابحث في سجلات الإثراء السابقة باستخدام عوامل التصفية (النوع، النجاح، النص الحر).
RecordsGet Recordاسترجاع نتيجة إثراء واحدة مع مقاييس كاملة لكل موجّه.
RecordsInject Records into Databaseأرسِل مخرجات إثراء مخزَّنة (أو محوَّلة) إلى مزامنة قاعدة البيانات الخاصة بمخططها. تُعاد مطابقتها مع العقد المنشور للمخطط، ثم تُمرَّر عبر بوابة القبول.
FusionMerge Resultsأعد دمج نتائج إثراء متعددة، مع إمكانية استخدام مُحكِّم LLM مختلف.
AttachmentsUpload Attachmentرفع ملف (مُعيَّن كمخزن مؤقت من وحدة سابقة، مثل HTTP ▸ Get a File) وإرجاع معرّف المرفق الخاص به لاستخدامه في Enrich Entity.
AttachmentsDelete Attachmentحذف مرفق حسب المعرّف — خطوة تنظيف مفيدة بعد الإثراء.
Database SyncList Database Syncsيُعيد عمليات مزامنة قاعدة البيانات لمخطط، مع أعداد الفروق المعلّقة.
Database SyncFetch Database Deltasيُعيد نافذة FIFO التالية من فروق SQL لمزامنة قاعدة البيانات. عند تفعيل Claim تُحجَز الصفوف ويجب تأكيدها؛ وإلا فإن القراءة قابلة لإعادة التشغيل.
Database SyncAcknowledge Database Deltasيؤكّد الفروق المطبَّقة حتى معرّف مُحدّد — يحرّر الحجز، ووفقًا لخيارات المزامنة، يحذف النسخ المُسلّمة.
ConfigurationGet Optionsالنماذج واللغات والاستراتيجيات المتاحة، وحدود خطة المؤسسة.

تُشغّل وحدات Database Sync تغذية الفروق الخاصة بـمزامنة قاعدة البيانات من سيناريو مجدوَل: تحجز وحدة Fetch Database Deltas نافذة SQL التالية، ثم تطبّقها وحدة قاعدة بيانات أو HTTP، وتؤكّدها وحدة Acknowledge Database Deltas (اربط Next Cursor من Fetch بوحدة Acknowledge).

سير عمل متعدد الكيانات: نمط المكرِّر

تُحتسب فواتير سيناريوهات Make لكل عملية. فبدلاً من نقل وحدة الإثراء بالدفعات الخاصة بموصّل n8n، يستخدم تطبيق Make أداة التكرار المدمجة في Make مع Enrich Entity. كل تكرار مستقل، والأخطاء لا تتسلسل، وتعكس الفوترة بالضبط ما تمت معالجته.

[trigger: array of entities]
[Make: Iterator] (splits into N bundles)
[this app: Enrich Entity] (one operation per entity)
[Make: Aggregator] (recombines, optionally with skip-on-error)
[downstream: upsert to CRM / database]

الميزات الرئيسية

متعدد اللغات بـ 40 لغة

يملأ استدعاء واحد لإثراء الكيان كل خاصية متعددة اللغات بجميع اللغات المختارة — يُنتَج في تمريرة LLM واحدة، وليس عبر N جولات متتالية. اربط أي لغة مباشرةً: {{result.names.primary.fr}}.

الإثراء باستدعاء واحد

تُغلّف نقطة نهاية POST /api/single/enrich/sync المخصصة تدفّق البثّ على جانب الخادم. عملية Make واحدة = حزمة واحدة. لا استطلاع، ولا أنماط ذات وحدتين.

بسيط افتراضيًا

تفتح وحدة "إثراء الكيان" ببيانات الكيان والمخطط واللغات والبحث على الويب فقط — ويعمل Entity Enricher تلقائيًا بأفضل نموذج لدى مؤسستك. أما النماذج والمرفقات والاستراتيجية وخيارات التصنيف/التحكيم فتوجد خلف زر "إظهار الإعدادات المتقدّمة" في Make.

القوائم المنسدلة الديناميكية (RPCs)

10 استدعاءات RPC تجلب المخططات ومزامنات قواعد البيانات والنماذج واللغات والاستراتيجيات ونماذج التصنيف/التحكيم وخيارات مخطط الاستجابة والمخرجات المهيكلة عند الإعداد — تظهر المخططات المثبّتة أولًا، وتتضمن تسميات النماذج أسعارها.

الدمج التلقائي متعدد النماذج

اختر نموذجين أو أكثر ويُدمَج الناتج تلقائيًا. تتضمّن حزمة الإخراج is_fused وsource_models[] وملخّص fusion: {agreed_fields, conflicted_fields, total_fields, method, arbitration_model}.

التصنيف المسبق

يتحقق نموذج تصنيف رخيص اختياري من مطابقة الكيان للنوع المتوقع في المخطط قبل تشغيل الإثراء. ويُنتج عدم التطابق خطأ DataError مُصنّفًا بدلًا من بيانات مُختلَقة.

إدراك حدود الخطة والأرصدة

تتحوّل أخطاء HTTP 402 (حدود الخطة أو نقص الأرصدة) إلى خطأ Make OutOfMoneyError مُصنَّف. تعكس الرسالة التفاصيل القابلة للقراءة البشرية من الواجهة الخلفية (مع رابط لشحن رصيد الفوترة عند نفاد الأرصدة) بالإضافة إلى رمز قابل للقراءة آليًا — وجّه معالج أخطاء السيناريو بناءً على الرمز لتنبيه البشر، أو الرجوع إلى نماذج أرخص، أو الإيقاف المؤقت.

أقفال القائمة المنسدلة للبحث على الويب

تقرأ قائمة البحث على الويب المنسدلة parameters.models وتعطّل نفسها عندما لا يُصرّح أيٌّ من النماذج المحددة بـ supports_web_search.

بدون وحدة الدفعات

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

مهلة قابلة للتهيئة

مهلة افتراضية مدتها 300 ثانية لكل طلب، محصورة بين [10، 900]. تُلغى المهمة تلقائيًا من جانب الخادم إذا لم تكتمل في الوقت المحدد، وتُرجع خطأ ConnectionError مُصنّفًا.

عقد الأخطاء

تُربط كل حالة يمكن للواجهة الخلفية إرجاعها بخطأ Make ذي نوع محدد، بحيث يمكن لمعالجات أخطاء السيناريو أن تتفرّع حسب نمط الفشل بدلاً من تحليل النصوص.

سيناريو Make: معالج الأخطاء يتفرّع عند OutOfMoneyError
HTTPنوع الخطأ في Makeمتى يُطلَق
400DataErrorلم يُعثر على المخطط، أو مفاتيح البحث مفقودة، أو النماذج أو اللغات غير صالحة.
401InvalidCredentialsمفتاح API غير صحيح أو مفقود.
402OutOfMoneyErrorتجاوز حد الخطة أو عدم كفاية الأرصدة. الرسالة = body.detail.detail (قابلة للقراءة البشرية، وتتضمّن رابط شحن لـ insufficient_credits) + body.detail.code (قابلة للقراءة الآلية). تفرّع حسب الرمز: insufficient_credits وmodel_limit_exceeded وlanguage_limit_exceeded وconcurrent_job_limit_reached وdaily/weekly/monthly_prompt_limit_exceeded.
403AccessDeniedErrorالدور أو النطاق غير كافٍ.
404InvalidConfigurationErrorلم يُعثر على المخطط أو السجل.
422DataErrorتحذير التصنيف. يحمل body.detail.classification الحالة والتعليل ومستوى الثقة و entity_description.
429RateLimitErrorتجاوز حد معدّل المزوّد (مؤقت).
499RuntimeErrorأُلغيت المهمة.
502ConnectionErrorخطأ من مزوّد LLM المصدر (مثل تجاوز سعة السياق).
504ConnectionErrorانقضت timeout_seconds؛ أُلغيت المهمة تلقائيًا على جانب الخادم.

ابدأ من سيناريو نموذجي

يأتي التطبيق بستة مخططات سيناريو قابلة للاستيراد — إثراء مفرد، ونمط الدفعة عبر Iterator، ومن مستند إلى إثراء، ومن صورة إلى عيّنة إلى مخطط، ومن عيّنات إلى مخطط، وتفريغ تغذية الفروق لمزامنة قاعدة البيانات. استورد أحدها واستبدل به اتصالك الخاص بدلًا من ربط الوحدات من الصفر.

أفكار سير العمل

إثراء CRMشغّله عند إضافة جهات اتصال جديدة في HubSpot/Salesforce، وأثرِها ببيانات الشركة، وحدّث سجل CRM.
خط معالجة جداول البياناتاقرأ الكيانات من Google Sheets، والمكرّر + إثراء الكيان، واكتب النتائج في ورقة جديدة.
إعادة التحكيم الشرطيةشغّل الدمج القائم على القواعد أولًا؛ وإذا كان conflicted_fields > 5، فأعد الدمج باستخدام مُحكِّم LLM عبر Merge Results — دون إعادة تشغيل عملية الإثراء المكلفة.
توجيه حدود الخطةعند حدوث OutOfMoneyError، نبّه شخصاً في Slack وأوقف السيناريو مؤقتاً حتى إعادة ضبط نافذة الحصة.
تحديث مجدولالتشغيل وفق جدول cron (مُشغِّل Make Schedule) لإعادة إثراء السجلات القديمة بأحدث النماذج.

الخطوات التالية