الانتقال إلى المحتوى الرئيسي

نظرة عامة

تتيح أداة البحث المتجهي Qdrant إمكانيات البحث الدلالي في وكلاء CrewAI من خلال الاستفادة من Qdrant، محرك بحث التشابه المتجهي. تسمح هذه الأداة لوكلائك بالبحث في المستندات المخزنة في مجموعة Qdrant باستخدام التشابه الدلالي.

التثبيت

قم بتثبيت الحزم المطلوبة:

الاستخدام الأساسي

إليك مثال بسيط لكيفية استخدام الأداة:

مثال عملي كامل

إليك مثالاً كاملاً يوضح كيفية:
  1. استخراج النص من ملف PDF
  2. توليد التضمينات باستخدام OpenAI
  3. التخزين في Qdrant
  4. إنشاء سير عمل RAG وكيلي باستخدام CrewAI للبحث الدلالي

معاملات الأداة

المعاملات المطلوبة

  • qdrant_config (QdrantConfig): كائن التكوين الذي يحتوي على جميع إعدادات Qdrant

معاملات QdrantConfig

  • qdrant_url (str): عنوان URL لخادم Qdrant الخاص بك
  • qdrant_api_key (str, اختياري): مفتاح API للمصادقة مع Qdrant
  • collection_name (str): اسم مجموعة Qdrant المراد البحث فيها
  • limit (int): الحد الأقصى لعدد النتائج المُرجعة (الافتراضي: 3)
  • score_threshold (float): الحد الأدنى لدرجة التشابه (الافتراضي: 0.35)
  • filter (Any, اختياري): نسخة Filter من Qdrant للتصفية المتقدمة (الافتراضي: None)

المعاملات الاختيارية للأداة

  • custom_embedding_fn (Callable[[str], list[float]]): دالة مخصصة لتحويل النص إلى متجهات
  • qdrant_package (str): مسار الحزمة الأساسية لـ Qdrant (الافتراضي: “qdrant_client”)
  • client (Any): عميل Qdrant مُهيأ مسبقاً (اختياري)

التصفية المتقدمة

تدعم أداة QdrantVectorSearchTool إمكانيات تصفية قوية لتحسين نتائج البحث:

التصفية الديناميكية

استخدم معاملات filter_by و filter_value في بحثك لتصفية النتائج أثناء التنفيذ:

المرشحات المسبقة مع QdrantConfig

للتصفية المعقدة، استخدم نسخ Filter من Qdrant في تكوينك:

دمج المرشحات

تقوم الأداة تلقائياً بدمج المرشحات المسبقة من QdrantConfig مع المرشحات الديناميكية من filter_by و filter_value:

معاملات البحث

تقبل الأداة هذه المعاملات في مخططها:
  • query (str): استعلام البحث للعثور على مستندات مشابهة
  • filter_by (str, اختياري): حقل البيانات الوصفية للتصفية عليه
  • filter_value (Any, اختياري): القيمة المراد التصفية بها

صيغة الإرجاع

تُرجع الأداة النتائج بصيغة JSON:

التضمين الافتراضي

بشكل افتراضي، تستخدم الأداة نموذج text-embedding-3-large من OpenAI للتحويل إلى متجهات. يتطلب ذلك:
  • تعيين مفتاح OpenAI API في البيئة: OPENAI_API_KEY

التضمينات المخصصة

بدلاً من استخدام نموذج التضمين الافتراضي، قد ترغب في استخدام دالة تضمين خاصة بك في الحالات التالية:
  1. تريد استخدام نموذج تضمين مختلف (مثل Cohere أو HuggingFace أو نماذج Ollama)
  2. تحتاج إلى تقليل التكاليف باستخدام نماذج تضمين مفتوحة المصدر
  3. لديك متطلبات محددة لأبعاد المتجهات أو جودة التضمين
  4. تريد استخدام تضمينات خاصة بمجال معين (مثل النصوص الطبية أو القانونية)
إليك مثال باستخدام نموذج HuggingFace:

معالجة الأخطاء

تتعامل الأداة مع هذه الأخطاء المحددة:
  • تُثير ImportError إذا لم يكن qdrant-client مثبتاً (مع خيار التثبيت التلقائي)
  • تُثير ValueError إذا لم يتم تعيين QDRANT_URL
  • تطلب تثبيت qdrant-client إذا كان مفقوداً باستخدام uv add qdrant-client

متغيرات البيئة

متغيرات البيئة المطلوبة: