في عالم البيانات الحديث، أصبحت القدرة على إجراء استعلامات فعالة وسريعة أمرًا حيويًا، خاصةً في مجالات مثل التجارة الإلكترونية. في هذا المقال، نستعرض كيفية تشغيل استعلامات مختلطة باستخدام قاعدة بيانات Redis مع تعبيرات OpenAI. سنقوم بتسليط الضوء على كيفية استخدام Redis كقاعدة بيانات متجهات، وكيفية دمج ميزات البحث التقليدي مع تقنيات البحث المستندة إلى استعلامات التشابه. ستتعرفون على كيفية إعداد البيئة اللازمة وإجراء استعلامات معقدة تجمع بين الذكاء الاصطناعي وبنية البيانات الحديثة. تابعونا لاستكشاف كيفية تحسين تجربة البحث وتحقيق نتائج دقيقة وسريعة في تطبيقاتكم العملية.
استخدام Redis كقاعدة بيانات متجهة مع OpenAI
نموذج قواعد البيانات المتجهة أصبح نقطة تحول مهمة في كيفية التعامل مع البيانات المعقدة، خاصة في سياقات تتطلب معالجة سريعة وفعالة. Redis، بفضل مواصفاته كقاعدة بيانات في الذاكرة، يتيح السرعة والكفاءة. بمساعدة وحدة RediSearch، يمكن تحويل Redis إلى قاعدة بيانات متجهة تدعم الاستعلامات الهجينة التي تجمع بين الاستعلامات بواسطة التطابق البصري والاستعلامات اللفظية التقليدية. هذه الطريقة تفتح آفاقًا جديدة في مجالات مثل التجارة الإلكترونية حيث يمكن للمتسوقين استخدام الصور للبحث عن منتجات مشابهة.
عندما نتحدث عن البحث الهجين، فإن الفكرة هي دمج القدرات التقليدية لقواعد البيانات مع الذكاء الاصطناعي. على سبيل المثال، في حالة التجارة الإلكترونية، إذا أراد مستخدم العثور على منتج مشابه لصورة معينة، يمكن لـ Redis معالجة هذه الصورة كمدخل وتحليل بيانات المنتج المتاحة من خلال استخدام نظام بحث مخصص. يأتي نموذج embeddings من OpenAI ليقدم تحسينات كبيرة. فبدلاً من التركيز فقط على الكلمات، يتيح النموذج تمثيل الأشياء كمصفوفات في الفضاء المتجه، مما يمكن من إجراء عمليات مقارنة أكثر ذكاء.
مثال على ذلك هو مشروع يتضمن البحث عن الملابس حيث يوجد منتج معين. يقوم النظام بتحليل الصورة واستخدام OpenAI لتحويلها إلى تمثيل متجهي، ومن ثم يتم البحث عن كافة المنتجات الأخرى التي تقترب من هذا الفضاء، متجاوزًا الحاجة إلى إدخال معلمات بحث تقليدية مثل الكلمات الرئيسية. لذلك، يتيح استخدام Redis وOpenAI في تنسيق متكامل، الوصول إلى أساليب بحث أكثر سرعة وذكاء مما يتيح تجربة مستخدم محسنة.
إعداد بيئة العمل مع Redis وOpenAI
قبل الشروع في استخدام Redis وOpenAI، من الضروري إعداد البيئة المناسبة. يبدأ ذلك بتثبيت Redis. يمكن القيام بذلك بسهولة من خلال استخدام حاويات Docker. أمر بسيط مثل `$ docker-compose up -d` يقوم بتشغيل Redis Stack مع واجهة RedisInsight، مما يسمح بمراقبة وإدارة قاعدة البيانات من خلال واجهة رسومية. وهذا يساعد المطورين في فهم توزيع البيانات والتفاعل بشكل أكثر فعالية مع البيانات.
بعد تشغيل Redis، يجب تثبيت مكتبات Python الضرورية مثل Redis-py وpandas وOpenAI. يتم استخدام هذه المكتبات للتفاعل مع خدمة Redis ومعالجة البيانات. المكتبة الخاصة بـ Redis تقدم واجهات ملائمة للتفاعل مع قاعدة البيانات بينما تساعد pandas في إدارة وتنظيف البيانات بحركة سريعة. إذا قمنا بتشغيل الأوامر بشكل صحيح، سيمكننا البدء في تحميل البيانات.
كخطوة مهمة، يجب إعداد مفتاح واجهة برمجة التطبيقات (API Key) الخاص بـ OpenAI. هذا الخطوة أساسية، حيث إن المفتاح يتيح الوصول إلى قدرات OpenAI لتحويل النصوص إلى تمثيلات متجهية. من أجل استخدام هذا المفتاح، يمكن تحديده كمتغير بيئي وإجراء الاختبارات اللازمة للتحقق من الإعدادات. بمثل هذه البيئة والأدوات في متناول اليد، يمكن الآن استقبال البيانات والاستعداد للمعالجة.
تحميل البيانات وإنشاء تمثيلات متجهية
نقطة البداية تكون غالباً تحميل مجموعة البيانات. في العديد من الحالات مثل التجارة الإلكترونية، قد تحتوي البيانات على تفاصيل المنتجات مثل الاسم، الفئة، اللون، والجنس. بعد تحميل البيانات، يجب تنظيفها وصياغتها بطريقة تمكن النظام من استخدامها بفعالية. واحدة من الطرق الفعالة في هذا الشأن تقوم على استخدام pandas لقراءة البيانات ومعالجتها. الخطوات تشمل التحقق من وجود أي قيود أو بيانات مفقودة والتخلي عن هذه الصفوف حيث يلزم.
الخطوة التالية هي تحويل النصوص إلى تمثيلات متجهية باستخدام OpenAI. يتضمن ذلك استخدام دالة لتحويل كل منتج إلى بيانات متجهية يمكن استخدامها لاحقًا في عمليات البحث. هنا، يأتي دور النموذج المستخدم حيث يوفر نموذج embeddings إمكانية تحويل النصوص إلى متجهات تمثل الخصائص المعقدة للمنتجات. هذه العملية هي محورية لأنها تحول البيانات من صيغة نصية إلى صيغة عددية قابلة للمقارنة، مما يسهل العمليات الحسابية والتشغيل الفوري.
الخطوة النهائية في هذه المرحلة هي تحميل هذه المتجهات إلى Redis. يستخدم Redis أساليب فعالة لبدء تخزين هذه المتجهات، وهذا يمكن المستخدمين من البحث والاستعلام عن البيانات بسرعة كبيرة. يمكن لأي تطبيق يحتاج إلى الوصول سريعًا إلى المعلومات أو إجراء مقارنات معقدة الاستفادة من هذا النظام الهجين. الكيمياء بين Redis وOpenAI تسمح للمطورين بفتح آفاق جديدة للابتكار في التطبيقات التي تتطلب معالجة بيانات معقدة بشكل سريع وأكثر ذكاء.
إنشاء فهرس بحث في Redis واستخدامه
بمجرد إتمام عملية الإعداد الأولية وتمثيل البيانات، تأتي الخطوة المرتبطة بإنشاء فهرس بحث في Redis. الفهرسة تجعل عملية البحث أكثر كفاءة، ما يتيح الاستعلام عن المعلومات بسرعة وسهولة. من خلال تحديد اسم الفهرس والحقول المستخدمة، يمكن لمطوري البرمجيات بناء نظام بحث قوي يمكنه التعامل مع استعلامات معقدة وكبيرة في الحجم.
تتضمن العملية أيضًا تحديد نوعية الفهرس. Redis يتيح للمستخدمين اختيار المعايير التي يرغبون في استخدامها لمطابقة البيانات. يتمثّل في ذلك استخدام الخصائص الفرعية مثل اللون والنوع والموسم، ويمكن تحديد تلك المعايير لتكون جزءًا من قواعد البيانات. من خلال دمج RediSearch، يمكن بناء فهارس تعتمد على معايير متعددة، مما يساعد على تحسين جودة النتائج المستخرجة.
بعد أن تم إنشاء الفهرس، يأتي دور تحميل الوثائق في قاعدة البيانات. هنا يتم استخدام البيانات التي تم تمثيلها كمتجهات لتكون متاحة للبحث. مما يتيح للمستخدم الوصول إلى مستندات متعددة دون الحاجة إلى الكثير من الأوامر. عند مشاركة الوثائق مع العملاء أو الشركاء، يتمكن المستخدم من إجراء الفحوصات اللازمة دون تأخير، مما يعزز من فعالية النظام بشكل عام.
التفاعل مع البيانات واستخدام الاستعلامات الهجينة
بعد إعداد كل شيء، من الضروري البدء في استكشاف كيفية التفاعل مع البيانات باستخدام الاستعلامات الهجينة. هذه الاستعلامات هي قمة الابتكار في كيفية بحث المستخدم عن المعلومات. على سبيل المثال، من المفيد في التجارة الإلكترونية استخدام استعلام هجيني يشمل البحث عن منتج مشابه بناءً على صورة معينة مع سمة معينة مثل السعر أو الموقع الجغرافي، مما يضمن أن النتائج المستخرجة مطابقة للمتطلبات المحددة.
تتمثل الاستفادة من استخدام الاستعلامات الهجينة في القدرة على تقديم نتائج أكثر دقة ومخصصة. على سبيل المثال، إذا كان هناك طلب للبحث عن “تي شيرت أسود”، مع تحديد سعر يتراوح بين 20 إلى 50 دولارًا، يمكن للنظام تحديد استعلام باستخدام كلا من الخاصية المتجهة التي تمثل “تي شيرت أسود” مع استعلام تقليدي محدود السعر. القدرة على الدمج بين هذين النوعين من الاستعلامات تبدو بسيطة ولكنها تحقق نتائج فعالة بشكل كبير.
أحد الاستخدامات الشائعة لهذا النوع من البحث هو في تطبيقات الطعام. تخيل أنك تبحث عن وصفة معينة بإستخدام صورة المتًقدم. فيمكن للنظام أن يقوم بقراءة تلك الصورة وفهم المكون الأساسي، ومن ثم يتيح لك الوصول لوصفات قريبة، كما يمكن أن يقوم بتحديد وصفات تتوفر مكوناتها ضمن ميزانية محددة أو موسم معين. هذه التركيبة تزيل عقبات البحث التقليدية وتفتح فرص جديدة لفهم البيانات.
البحث باستخدام قاعدة بيانات Redis
تتضمن عملية البحث في Redis العديد من المكونات والتقنيات التي تسهم في تحسين أداء البحث وجودته. واحدة من هذه التقنيات هي إنشاء فهرس للنصوص والبيانات المضمنة، والذي يمكن استخدامه للبحث عن المنتجات بطريقة فعالة. بتوافر قاعدة بيانات موزعة مثل Redis ودمجها مع تقنيات التعلم العميق مثل نماذج التضمين من OpenAI، يمكن بناء نظام بحث قوي يسهل على المستخدمين العثور على ما يبحثون عنه بسرعة ودقة.
تتمثل الفكرة الأساسية في تحويل استفسارات المستخدمين إلى تمثيلات عددية (تضمينات) ثم استخدام هذه التضمينات للبحث عن مستندات في قاعدة البيانات. وهذا يعكس كيف يمكن للنماذج المبنية على البيانات التعلم من التاريخ ومساعدة المستخدمين على اتخاذ قرارات مستنيرة بدلاً من البحث على أساس كلمات مفتاحية بسيطة. من خلال دمج أساليب البحث التقليدية مع البحث المعتمد على التضمينات، يصبح من الممكن تحسين نتائج البحث بشكل ملحوظ.
كجزء من هذا النظام، يتيح كود Python المذكور، والذي يستدعي دالة `search_redis`، قدرة المستخدم على القيام باستفسارات معقدة. تشمل هذه الاستفسارات تفاصيل مثل المجال الذي يُستخدم لجلب النتائج وعدد النتائج التي يجب عرضها. على سبيل المثال، عند استعلام المستخدم عن “جينز أزرق للرجال”، يقوم النظام بتحويل هذا الاستعلام إلى تمثيل عددي ويتم استخدامه للبحث في قاعدة بيانات Redis. هذه الطريقة تُظهر كيف يمكن للاستفسارات أن تُترجم إلى عمليات بحث معقدة يمكن أن تؤدي إلى نتائج دقيقة.
استعلامات البحث الهجينة في Redis
تعتبر استعلامات البحث الهجينة واحدة من أبرز ميزات قاعدة بيانات Redis التي تساهم في تحسين دقة البحث وسرعته. من خلال دمج البحث المستند إلى التضمينات مع فئات بيانات أخرى، تصبح عملية البحث أكثر مرونة واستجابة للاحتياجات المختلفة. فعلى سبيل المثال، يمكن للمستخدمين دمج استعلامات نصية كاملة مع استعلامات التضمينات لمعالجة البيانات بشكل أكثر شمولية.
عند إجراء استعلامات هجينة، كما هو موضح في المقتطف السابق، يمكن للمستخدم أن يطلب نتائج تتعلق بنوع معين من المنتجات مع تضمين الشروط الخاصة. على سبيل المثال، إذا كان المستخدم مهتمًا بالبحث عن “قميص” ويريد النتائج التي تتضمن عبارة “مناسب ضيق”، فإن النظام يعتمد على استعلامات هجينة لأداء البحث بشكل أكثر دقة. هذه العملية تعزز من قدرة النظام على تقديم نتائج تفوق النتائج التقليدية التي تعتمد فقط على مطابقة الكلمات.
تتضمن استعلامات البحث الهجينة تقنيات صغيرة وفعالة مثل إدماج قيود زمنية أو تصنيفات معينة مع استعلامات نصية. هل تبحث عن ساعات مع تصنيف معين مثل “الإكسسوارات”؟ يقوم النظام بالبحث من خلال فئة محددة من البيانات للحصول على نتائج مخصصة. هذه الميزات تجعل من السهل على المستخدمين العثور على المنتجات المرغوب فيها بطريقة مخصصة تلبي احتياجاتهم الفردية.
كما يظهر من النتائج المُعطاة في المقتطفات، الطريقة التي يُسهل بها النظام العثور على “أحزمة بنية” من علامة تجارية معينة هي مثال آخر على كيف يمكن استغلال المرونة التي يوفرها البحث الهجين. المستخدمون ينقلون احتياجاتهم بدقة عالية، والنظام يلبي هذه الاحتياجات من خلال البحث الاستدلالي.
تحسين جودة البحث والنتائج
تحسين جودة البحث يعد من الأهداف الأساسية التي تم العمل على تحقيقها من خلال النظام. من خلال استخدام تقنيات مثل تضمين النصوص، يتحسن أداء البحث بشكل كبير، مما يسمح بإنشاء نظام يمكنه فهم السياق والمعاني الكامنة وراء الاستفسارات. تعتمد هذه الطريقة على استغلال بيانات معينة بهدف تعديل النتائج المقدمة.
في هذا الإطار، اعتمد النظام على تقنيات الاستعلام المستند إلى التضمينات وتطوير استراتيجيات لتحسين دقة النتائج المخرجة. على سبيل المثال، استعلام “صنادل” نتيجة إلى نتائج مشروطة بالسنة والفصل يوضح كيف يمكن استخدام البيانات الزمنية لتحسين البحث. هذه الطريقة لا تؤدي فقط إلى تقديم نتائج أدق، بل تعزز أيضًا تجربة المستخدم من خلال تقديم معلومات أكثر صلة.
يمكن تحسين جودة البحث من خلال تعريف وتخصيص أعداد معينة من نتائج المنتجات تعتمد على شدة تطابق الشروط. هنا، يتم تقييم النتائج بناءً على أبعاد متعددة، من بينها المتغيرات مثل علامة تجارية، فتحة موسم أو فئة محددة للمنتجات. ولتحقيق ذلك، يمكن استخدام استراتيجيات تحليل البيانات الكبيرة لمعالجة البيانات الإضافية وتقديم نتائج أكثر دقة تتناسب مع طلبات المستخدم المتغيرة.
علاوة على ذلك، من الضروري الأخذ في الاعتبار التجارب السابقة مع النتائج وكيف تم تقديمها للمستخدمين. يمكن اختبار استراتيجيات مختلفة لمعرفة مدى تحسين دقة النتائج، وقد يكون من المفيد إجراء اختبارات تحييد للمستخدمين لفهم كيف يمكن تحسين واجهة البحث لتتوافق مع تجارب المستخدمين واحتياجاتهم.
رابط المصدر: https://cookbook.openai.com/examples/vector_databases/redis/redis-hybrid-query-examples
تم استخدام الذكاء الاصطناعي ezycontent
اترك تعليقاً