Langflow - منشئ وكيل ذكاء اصطناعي وRAG البصري
Langflow هو منشئ بصري مفتوح المصدر قائم على Python لتطبيقات LLM. تجمع الوكلاء والسلاسل وخطوط أنابيب RAG بسحب وربط المكونات على لوحة رسم وتختبرها في ملعب مباشر ثم تعرض أي تدفق كنقطة نهاية API أو MCP. إنه غير متحيز نحو النموذج (OpenAI و Anthropic والنماذج المحلية عبر Ollama وغيرها) ويبني على نظام بيئة LangChain.
التثبيت
| الطريقة | الأمر |
|---|
| uv (موصى به) | uv pip install langflow |
| pip | pip install langflow |
| التشغيل بعد التثبيت | langflow run (أو python -m langflow run) |
| uvx (بدون تثبيت) | uvx langflow run |
| Docker | docker run -it --rm -p 7860:7860 langflowai/langflow:latest |
| تطبيق سطح المكتب | التحميل من الموقع الرسمي (macOS/Windows) |
يتطلب Python 3.10–3.13. بعد langflow run، افتح http://localhost:7860.
تشغيل الخادم
| الأمر | الوصف |
|---|
langflow run | بدء واجهة المستخدم + API على 127.0.0.1:7860 |
langflow run --host 0.0.0.0 --port 7860 | الربط بجميع الواجهات / المنفذ المخصص |
langflow run --env-file .env | تحميل متغيرات البيئة من ملف |
langflow run --dev | وضع المطور/إعادة التحميل الساخن |
langflow --help | مرجع CLI الكامل |
langflow api-key | إنشاء مفتاح API للوصول البرمجي |
langflow migration | تشغيل ترحيلات قاعدة البيانات |
المفاهيم الأساسية
| المصطلح | المعنى |
|---|
| التدفق | رسم بياني للمكونات المتصلة = تطبيق واحد/خط أنابيب |
| المكون | عقدة (نموذج، موجه، مسترجع، أداة، وكيل، I/O) |
| المنفذ / الحافة | اتصال الإدخال/الإخراج المكتوب بين المكونات |
| الملعب | لوحة اختبار الدردشة/التشغيل المدمجة لاختبار التدفق بشكل تفاعلي |
| المشروع | مساحة عمل تجميع تدفقات متعددة |
| المتغيرات العامة | الأسرار المخزنة (مفاتيح API) قابلة لإعادة الاستخدام عبر التدفقات |
كتل البناء
| الفئة | الأمثلة |
|---|
| الإدخالات/الإخراجات | Chat Input, Chat Output, Text Input |
| النماذج | OpenAI, Anthropic, Google, Ollama, Groq, HuggingFace |
| الموجهات | Prompt template, system message |
| البيانات / RAG | File loader, URL, Split Text, Vector Store (Chroma, Qdrant, Astra, pgvector), Embeddings |
| الوكلاء | Agent component with tool calling |
| الأدوات | Web search, Python REPL, API request, MCP tools |
| المنطق | Conditional router, loop, pass-through |
تدفق RAG النموذجي
File / URL → Split Text → Embeddings → Vector Store (ingest)
Chat Input → Vector Store (search) → Prompt → Model → Chat Output
بناء على اللوحة الرسم، افتح الملعب، اطرح سؤالاً، وقم بتشغيل Langflow للرسم البياني من البداية إلى النهاية.
استخدام التدفقات من الكود
كل تدفق يحصل على API مُنشأة تلقائياً. من واجهة المستخدم، انقر فوق API (أو Share → API access) لنسخ مقتطف:
import requests
url = "http://localhost:7860/api/v1/run/<FLOW_ID>"
payload = {"input_value": "What is in my docs?", "output_type": "chat", "input_type": "chat"}
headers = {"x-api-key": "<YOUR_API_KEY>", "Content-Type": "application/json"}
resp = requests.post(url, json=payload, headers=headers)
print(resp.json())
# نفس الاستدعاء مع curl
curl -X POST "http://localhost:7860/api/v1/run/<FLOW_ID>" \
-H "x-api-key: <YOUR_API_KEY>" -H "Content-Type: application/json" \
-d '{"input_value":"hello","output_type":"chat","input_type":"chat"}'
تكامل MCP
| القدرة | الطريقة |
|---|
| عرض التدفقات كأدوات MCP | كل Project يأتي مع خادم MCP؛ وجه عميل MCP (Claude Desktop, Cursor) إليه |
| استهلاك أدوات MCP الخارجية | أضف مكون MCP Tools واتصل بعنوان URL الخادم/الأمر |
البيئة والإعداد
| المتغير | الغرض |
|---|
LANGFLOW_HOST / LANGFLOW_PORT | عنوان الربط والمنفذ |
LANGFLOW_DATABASE_URL | استخدم Postgres بدلاً من SQLite الافتراضي |
LANGFLOW_AUTO_LOGIN=false | تتطلب تسجيل دخول (متعدد المستخدمين) |
LANGFLOW_SUPERUSER / LANGFLOW_SUPERUSER_PASSWORD | بذر حساب المسؤول |
LANGFLOW_SECRET_KEY | مفتاح التشفير للبيانات المخزنة |
OPENAI_API_KEY, ANTHROPIC_API_KEY, … | مفاتيح مزود (أو تعيين كمتغيرات عامة) |
الاستيراد / التصدير
| الإجراء | الطريقة |
|---|
| تصدير تدفق | قائمة التدفق → Export → .json |
| استيراد تدفق | New → Import .json |
| التحكم في الإصدار | التزام JSON التدفق المُصدّر إلى الريبو |
سير العمل الشائع
# إعداد فريق على خادم مع Postgres + auth
LANGFLOW_DATABASE_URL=postgresql://user:pass@db:5432/langflow \
LANGFLOW_AUTO_LOGIN=false \
langflow run --host 0.0.0.0 --port 7860
# محاكمة محلية سريعة الزوال، بدون تثبيت
uvx langflow run
Langflow مقابل Dify مقابل n8n
| الجانب | Langflow | Dify | n8n |
|---|
| التركيز | تدفقات والوكلاء على نمط LangChain | منصة تشغيل LLM (RAG، الموجهات) | الأتمتة العامة + عقد الذكاء الاصطناعي |
| الأسلوب | لوحة رسم بصرية | تطبيق + استوديو سير العمل | أتمتة سير العمل |
| نقاط النهاية | API + MCP | API + تطبيقات الدردشة | الخطافات/الأتمتة |
| الأفضل لـ | النماذج الأولية لرسوم البيانات الوكيل/RAG | شحن تطبيقات LLM مع العمليات | الغراء عبر 500+ خدمة |
الموارد