هذا هو الكود المصدري لـ www.gptflix.ai
سنقوم ببناء روبوت GPTFLIX QA مع Openai و Pinecone DB و STREMLIT. سوف تتعلم كيفية إعداد النص لإرساله إلى نموذج التضمين. سوف تلتقط التضمينات والنص الذي يتم إرجاعه من النموذج للتحميل إلى Pinecone DB. بعد ذلك ، ستقوم بإعداد فهرس Pinecone DB وتحميل تضمينات Openai إلى DB للبحث عن التضمينات.
أخيرًا ، سنقوم بإعداد تطبيق دردشة QA Bot Brotend مع STIPLELIT. عندما يسأل المستخدم عن سؤال ، سوف يبحث الروبوت عن نص الفيلم في Pinecone DB. سوف يجيب على سؤالك حول فيلم يعتمد على نص من DB.
ويقصده هذا سقالة أساسية لبناء أنظمة المعرفة الخاصة بك ، إنه أساسي للغاية في الوقت الحالي!
يحتوي هذا الريبو على رمز مصدر GPTFLIX ودليل نشر بديل.
تم إعداد هذا الريبو للنشر على STERMELIT ، سترغب في تعيين متغيرات البيئة الخاصة بك في STREMLIT مثل هذا:
شوكة gptflix repo إلى حساب github الخاص بك.
قم بإعداد حساب على pinecone.io
قم بإعداد حساب على Cloud SpreamLit
قم بإنشاء تطبيق جديد على STREMLIT. اربطه إلى شوكة repo على github ثم قم بتوجيه التطبيق إلى /chat/main.py
باعتباره الرئيسي القابل للتنفيذ.
انتقل إلى إعدادات التطبيق الخاصة بك ، وانتقل إلى الأسرار. قم بإعداد السر مثل هذا:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
في جذر المشروع باستخدام مفتاح Openai API الخاص بك على جهازك المحلي. PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
هؤلاء يحتاجون إلى أن يكونوا مفاتيح Pinecone و Openai API بالطبع ؛)
تم إعداد هذا الريبو للمشي عبر عرض تجريبي باستخدام بيانات MPST في /data_samples ، هذه هي الخطوات:
p1.generate_index_mpst.py
لإعداد النص من ./data_sample/d0.mpst_1k_raw.csv
python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
لتحويل ملف d1.mpst_1k_converted.csv
الجديد الخاص بك إلى ملف JSONL مع تعليمات لتشغيل طلبات التضمينات مقابل API Openai. python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
على ملف JSONL من (2) للحصول على التضمينات. python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
مع ملف JSONL الجديد لصنع CSV جميلة مع النص والتضمينات. python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
مع إعدادات مفتاح API وإعدادات قاعدة البيانات لتحميل جميع هذه البيانات النصية والتضمينات. python p5.upload_to_pinecone.py
يمكنك تشغيل التطبيق محليًا ولكن ستحتاج إلى إزالة الصور (المسارات مختلفة على السحابة البطيئة)
في الوقت الحالي ، هناك بعض البيانات في sample_data ، وكلها مأخوذة من kaggle كأمثلة.
[] أضف الذاكرة: لخص الأسئلة / الإجابات السابقة و prepend
[] أضف أوضاع مختلفة: بحث أوسع في قاعدة البيانات
[] أضف أوضاع مختلفة: نغمات / أحرف منظمة العفو الدولية للاستجابات
[] مستندات أفضل
مستندات أفضل قريبا! لا تتردد في المساهمة بهم :)
#رخصة
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) 2023 ستيفان ستورجس
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.