يحتوي هذا المستودع على مشروع يوضح كيفية استخدام إطار عمل الجيل (RAG) الذي تم تنشيطه في الاسترجاع مع نموذج بيانات GPT-4O من Openai للاستعلام عن مجموعة بيانات CSV. يتضمن المشروع إنشاء تضمينات ناقلات من البيانات في ملف CSV ، وتخزين التضمينات في قاعدة بيانات Pinecone ، ثم الاستعلام عن بيانات التضمين المتجه باستخدام استعلامات اللغة الطبيعية.
جدول المحتويات
مقدمة
المتطلبات الأساسية
منصة تم اختبارها وحزمها
الاستخدام
تناول البيانات وإنشاء التضمينات
الاستعلام عن البيانات
كيف تعمل
رخصة
يعرض هذا المشروع استخدام تقنيات معالجة اللغة الطبيعية للاستعلام عن البيانات المخزنة في ملف CSV. من خلال الاستفادة من نموذج GPT-4 من Openai وقاعدة بيانات Pinecone ، يمكننا إنشاء تضمينات للبيانات واستخدام هذه التضمينات لاسترداد الاستجابات الدقيقة لاستفسارات المستخدم.
قبل أن تبدأ ، تأكد من أن لديك ما يلي:
تكامل API : للتكامل مع Openai و Pinecone ، تحتاج إلى الحصول على وتكوين مفاتيح API المعنية ، ومضيف (Pinecone) معلومات لهذه الأنظمة الأساسية. اضبط مفاتيح API Openai و Pinecone ، ومضيف Pinecone كمتغيرات بيئة في Linux. استخدم أوامر Linux التالية لتصدير هذه المتغيرات:
Export openai_api_key = 'your-openai-api-key'
تصدير pinecone_api_key = 'your-pinecone-api-key'
تصدير pinecone_host = 'your-pinecone-host'
Openai API: Openai Model "Text-Embedding -ADA-002" و "GPT-4O" المستخدمة لتوليد التضمينات ، ودعم LLM. تأكد من أن لديك حساب Openai مع مفاتيح API صالحة. يمكنك الحصول على مفاتيح API الخاصة بك من منصة Openai (https://platform.openai.com/) وإدارتها (https://platform.openai.com/organization/api- keys). بالإضافة إلى ذلك ، تأكد من أن حسابك يحتوي على حصة كافية للاستخدام ، حيث يتطلب هذا المثال حساب OpenAI المدفوع.
بيئة Pinecone (حساب Pinecone المجاني المستخدم https://www.pinecone.io/): 1) يتم استخدام فهرس Pinecone 2) الأبعاد: 1536 3) نوع المضيف: خادم.
Centos Linux الإصدار 8.5.2111. قم بإنشاء بيئة افتراضية (اختيارية ولكن موصى بها) لعزل تبعيات المشروع.
بيثون 3.8.8
Pandas 2.0.3
Openai 1.30.3
Pinecone 4.0.0
Numpy 1.24.4
Argparse 1.1
تناول البيانات وإنشاء التضمينات
csv_path = "your_csv_file_path" [create-chunks-embeddings Store-Vectordb-csv-dataset.py]
pinecone_index_name = "your_pinecone_index_name" [create-chunks-embeddings Store-Vectordb-csv-dataset.py]
index_name = "your_pinecone_index_name" [Query-prompt-for-extect-embeddings.py]
قم بتعديل عناوين العمود في وظيفة read_csv_data لمطابقة الأعمدة في ملف CSV الخاص بك. راجع التخصيص لقسم ملف CSV للحصول على التفاصيل.
يمكنك استخدام نماذج Openai LLM بناءً على احتياجاتك:
Model = "GPT-4O" ، # يمكنك استخدام GPT-4 أو GPT-3.5-TURBO أو غيره من طراز Openai LLM. [الاستعلام-prompt-for-embeddings.py]
قم بتشغيل البرنامج النصي لقراءة البيانات ، وإنشاء التضمينات ، وتخزينها في Pinecon
#python create-chunks-deddings-store-vectordb-csv-dataset.py
الاستعلام عن البيانات
#python query-prompt-for-vector-embeddings.py "استعلامك هنا"
مثال: Python query-prompt-for-vectordings.py "أخبرني عن مؤامرة فيلم XYZ"
أدخل استعلامك التالي (أو اكتب "خروج" للاستقالة): في أي سنة تم إصدار هذا الفيلم؟
قم بتثبيط بيانات CSV ، وإنشاء تضمينات متجهية ، وتخزين التضمينات في قاعدة بيانات Pinecone
يقرأ البرنامج النصي "create-chunks-embeddings-actordb-csv-dataset.py" ملف CSV ويجمع بين الأعمدة ذات الصلة في سلسلة نصية واحدة لكل صف. تتضمن سلسلة النص هذه تفاصيل الأعمدة لكل صف - يحتوي كل صف على معلومات مميزة (على سبيل المثال ، معلومات لفيلم). ثم يتم استخدام النص المشترك لكل صف لإنشاء التضمينات باستخدام API من Openai. يتم تخزين تضمينات المتجه في مؤشر Pinecone.
الاستفادة من Openai's GPT-4 LLM
يستفيد المشروع من نموذج لغة Openai GPT-4 الكبير (LLM) بطريقتين أساسيتين:
توليد التضمينات: يتم استخدام البيانات النصية من كل صف من ملف CSV كمدخلات لنموذج التضمين في Openai (Embedding-ADA-002). يحول هذا النموذج النص إلى ناقل عالي الأبعاد يلتقط المعنى الدلالي للنص. ثم يتم تخزين هذه التضمينات في قاعدة بيانات متجه Pinecone لاسترجاع فعال.
الاستعلام عن اللغة الطبيعية: عندما يقدم المستخدم استعلامًا ، يقوم البرنامج النصي بإنشاء تضمين لنص الاستعلام باستخدام نفس نموذج التضمين. ثم يتم استخدام هذا التضمين للاستعلام للبحث في قاعدة بيانات متجه Pinecone لأكثر أجزاء نصية متشابهة بشكل دلالي (أي الصفوف من ملف CSV). يتم استرداد أجزاء النص ذات الصلة وتمريرها إلى نموذج GPT-4 من Openai لإنشاء استجابة شاملة ودقيقة للسياق لاستعلام المستخدم.
الجمع بين السياق للاستجابات المعززة
لضمان أن تكون الاستجابات دقيقة وذات صلة ، يحافظ البرنامج النصي على سياق الاستعلامات والاستجابات السابقة. يتم دمج هذا السياق مع أجزاء النص المستردة لتزويد GPT-4 برؤية شاملة للمعلومات. يعزز هذا النهج قدرة النموذج على إنشاء إجابات مفصلة ودقيقة ترتكز على البيانات المقدمة في ملف CSV.
تخصيص ملف CSV الخاص بك
للتأكد من أن البرنامج النصي يعمل بشكل صحيح مع ملف CSV الخاص بك ، قم بتحديث الأعمدة "Create-Chunks-embeddings-Store-Vectordb-CSV-dataset.py" لتطابق الأعمدة في ملف CSV الخاص بك. فيما يلي مثال على كيفية تخصيص الوظيفة:
يجب على المستخدمين استبدال الأعمدة بقائمة أسماء الأعمدة التي يريدون استخدامها - مثال أدناه
الأعمدة = ["رتبة" ، "مدير" ، "نوع" ، "مؤامرة" ، "ممثلين" ، "تقييمات"] # استبدال الأعمدة بأسماء أعمدة ملف CSV الخاص بك
هذا المشروع مرخص بموجب ترخيص Apache 2.0. انظر ملف الترخيص للحصول على التفاصيل.