دمج LangChain لبنيات RAG المتقدمة في تطبيقات Python | B4N1

دمج LangChain لبنيات RAG المتقدمة في تطبيقات Python

8 months ago · b4n1 Tiempo de lectura: 4 min

دمج LangChain مع بنيات RAG المتقدمة في تطبيقات Python

نظرة عامة

في السنوات الأخيرة، شهد مجال معالجة اللغات الطبيعية (NLP) تطورات كبيرة، لا سيما في مجال أنظمة توليد الاسترجاع المعزز (RAG). لقد أحدثت هذه الأنظمة ثورة في الطريقة التي نتعامل بها مع المهام مثل الإجابة على الأسئلة وتلخيص النص والذكاء الاصطناعي للمحادثة. ظهرت LangChain، وهي مكتبة Python المتطورة، كأداة قوية لبناء بنيات RAG. في هذه المقالة، سوف نتعمق في عالم LangChain ونستكشف تكامله مع أطر الويب المستندة إلى Python مثل FastAPI وFlask، مع الاستفادة من أدوات التنسيق لتحسين استرجاع البيانات ومعالجتها.

ما هو لانجشين؟

LangChain هي مكتبة Python مفتوحة المصدر مصممة لتبسيط تطوير أنظمة RAG. فهو يوفر مجموعة شاملة من الأدوات وواجهات برمجة التطبيقات لبناء نماذج الذكاء الاصطناعي وتدريبها ونشرها، بالإضافة إلى دمجها مع مصادر البيانات المختلفة وأطر الويب. ينصب تركيز LangChain الأساسي على تمكين المطورين من إنشاء بنيات RAG قابلة للتطوير وفعالة يمكنها التعامل مع مهام البرمجة اللغوية العصبية المعقدة.

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

  1. البنية المعيارية: يتيح التصميم المعياري لـ LangChain للمطورين إمكانية دمج نماذج الذكاء الاصطناعي المختلفة ومصادر البيانات وأطر الويب بسهولة، مما يجعله خيارًا مثاليًا لبناء أنظمة RAG المعقدة.
  2. أدوات التنسيق: توفر LangChain مجموعة من أدوات التنسيق التي تمكن المطورين من إدارة ومعالجة مجموعات البيانات الكبيرة، بالإضافة إلى التكامل مع مصادر البيانات المختلفة وواجهات برمجة التطبيقات.
  3. دعم نماذج الذكاء الاصطناعي المتعددة: يدعم LangChain مجموعة واسعة من نماذج الذكاء الاصطناعي، بما في ذلك النماذج القائمة على المحولات، مما يسمح للمطورين باختيار أفضل نموذج لحالة الاستخدام الخاصة بهم.
  4. التكامل مع أطر عمل الويب: يوفر LangChain تكاملًا سلسًا مع أطر عمل الويب الشهيرة المستندة إلى Python مثل FastAPI وFlask، مما يجعل من السهل نشر أنظمة RAG كتطبيقات ويب.

دمج LangChain مع FastAPI وFlask

لدمج LangChain مع FastAPI وFlask، نحتاج إلى اتباع الخطوات التالية:

الخطوة 1: تثبيت LangChain

أولاً، نحتاج إلى تثبيت LangChain باستخدام النقطة:

نقطة تثبيت لانجشين

الخطوة 2: إنشاء وكيل LangChain

بعد ذلك، نحتاج إلى إنشاء وكيل LangChain الذي سيكون بمثابة جوهر نظام RAG الخاص بنا. فيما يلي مثال لكيفية إنشاء وكيل أساسي:

من وكيل استيراد langchain


وكيل = وكيل(
    الاسم = "my_agent"،
    model_name = "my_model"،
    model_type = "محول"،
    الحد الأقصى للطول = 1024،
    الحد الأدنى للطول = 128،
)

الخطوة 3: التكامل مع FastAPI أو Flask

بمجرد إنشاء وكيل LangChain الخاص بنا، يمكننا دمجه مع FastAPI أو Flask. فيما يلي مثال لكيفية دمجه مع FastAPI:

من fastapi استيراد FastAPI
من وكيل استيراد langchain

التطبيق = FastAPI ()

# إنشاء وكيل أساسي
وكيل = وكيل(
    الاسم = "my_agent"،
    model_name = "my_model"،
    model_type = "محول"،
    الحد الأقصى للطول = 1024،
    الحد الأدنى للطول = 128،
)

@app.get("/إنشاء")
غير متزامن def generator_text(prompt: str):
    # استخدم الوكيل لإنشاء النص
    الإخراج = وكيل.توليد (مطالبة)
    العودة {"الإخراج": الإخراج}

وبالمثل، يمكننا دمج LangChain مع Flask:

من قارورة استيراد قارورة، طلب
من وكيل استيراد langchain

التطبيق = قارورة (__ اسم __)

# إنشاء وكيل أساسي
وكيل = وكيل(
    الاسم = "my_agent"،
    model_name = "my_model"،
    model_type = "محول"،
    الحد الأقصى للطول = 1024،
    الحد الأدنى للطول = 128،
)

@app.route("/generate"، الأساليب=["GET"])
تعريف create_text():
    # استخدم الوكيل لإنشاء النص
    موجه = request.args.get("مطالبة")
    الإخراج = وكيل.توليد (مطالبة)
    العودة {"الإخراج": الإخراج}

أدوات التنسيق في LangChain

توفر LangChain مجموعة من أدوات التنسيق التي تمكن المطورين من إدارة ومعالجة مجموعات البيانات الكبيرة، بالإضافة إلى التكامل مع مصادر البيانات المختلفة وواجهات برمجة التطبيقات. تتضمن بعض أدوات التنسيق الرئيسية في LangChain ما يلي:

  1. مصادر البيانات: توفر LangChain مجموعة من مصادر البيانات التي تمكن المطورين من التكامل مع مصادر البيانات وواجهات برمجة التطبيقات المختلفة، مثل قواعد البيانات وأنظمة الملفات وواجهات برمجة تطبيقات الويب.
  2. معالجات البيانات: توفر LangChain مجموعة من معالجات البيانات التي تمكن المطورين من معالجة مجموعات البيانات الكبيرة، بما في ذلك تنظيف البيانات وتحويل البيانات وتجميع البيانات.
  3. ** منسقو النماذج **: توفر LangChain مجموعة من منسقي النماذج التي تمكن المطورين من إدارة نماذج الذكاء الاصطناعي ونشرها، بما في ذلك تدريب النماذج ونشر النماذج ومراقبة النماذج.

التصور باستخدام Chart.js

لتصور أداء نظام RAG الخاص بنا، يمكننا استخدام Chart.js، وهي مكتبة JavaScript شائعة لإنشاء مخططات تفاعلية. فيما يلي مثال لكيفية استخدام Chart.js لتصور أداء نظام RAG الخاص بنا:

const ctx = document.getElementById("myChart").getContext("2d");
مخطط ثابت = مخطط جديد (ctx، {
  النوع: "خط"،
  البيانات: {
    التسميات: ["يناير"، "فبراير"، "مارس"، "أبريل"، "مايو"]،
    مجموعات البيانات: [
      {
        التسمية: "الدقة"،
        البيانات: [0.8، 0.9، 0.85، 0.88، 0.92]،
        لون الخلفية: "rgba(255، 99، 132، 0.2)"،
        لون الحدود: "rgba(255، 99، 132، 1)"،
        عرض الحدود: 1،
      },
    ]،
  },
  الخيارات: {
    المقاييس: {
      ص: {
        beginAtZero: صحيح،
      },
    },
  },
});

أهم 5-10 أوامر/مقتطفات الأكثر استخدامًا

فيما يلي أهم 5-10 أوامر/مقتطفات الأكثر استخدامًا في LangChain:

  1. "من وكيل استيراد langchain": قم باستيراد فئة الوكيل من LangChain.
  2. agent = Agent(...): أنشئ مثيل وكيل جديد.
  3. agent.generate(...): استخدم الوكيل لإنشاء نص.
  4. agent.query(...): استخدم الوكيل للاستعلام عن قاعدة المعرفة. 5.agent.train(...): تدريب الوكيل على مجموعة بيانات.
  5. agent.deploy(...): انشر الوكيل كخدمة ويب.
  6. agent.monitor(...): مراقبة أداء الوكيل.
  7. agent.update(...): قم بتحديث الوكيل بالبيانات الجديدة.
  8. agent.delete(...): احذف مثيل الوكيل.
  9. agent.save(...): احفظ مثيل الوكيل في ملف.

الخلاصة

في هذه المقالة، استكشفنا عالم LangChain وتكامله مع أطر الويب المستندة إلى Python مثل FastAPI وFlask. لقد ناقشنا أيضًا استخدام أدوات التنسيق في LangChain وقدمنا ​​أمثلة حول كيفية استخدام Chart.js لتصور أداء نظام RAG الخاص بنا. باستخدام LangChain، يمكن للمطورين إنشاء بنيات RAG فعالة وقابلة للتطوير يمكنها التعامل مع مهام البرمجة اللغوية العصبية المعقدة.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn