Repochat هو مشروع تفاعلي chatbot مصمم للمشاركة في محادثات حول مستودعات Github باستخدام نموذج لغة كبير (LLM). يسمح للمستخدمين بإجراء مناقشات ذات مغزى وطرح الأسئلة واسترداد المعلومات ذات الصلة من مستودع GitHub. يوفر ReadMe هذه الإرشادات خطوة بخطوة لإعداد واستخدام repochat على جهازك المحلي.
يوفر Repochat فرعين مع وظائف متميزة:
تم تصميم الفرع الرئيسي لـ Repochat لتشغيله بالكامل على جهازك المحلي. لا يعتمد هذا الإصدار من Repochat على مكالمات API الخارجية ويوفر تحكمًا أكبر على بياناتك. إذا كنت تبحث عن حل قائمة بذاتها ، فإن الفرع main هو الطريق للذهاب.
يعتمد فرع السحابة في Repochat في المقام الأول على مكالمات API إلى الخدمات الخارجية لاستدلال النموذج وتخزينه. إنه مناسب تمامًا لأولئك الذين يفضلون حلًا قائمًا على السحابة ولا يرغبون في إعداد بيئة محلية.
للبدء في repochat ، ستحتاج إلى اتباع خطوات التثبيت هذه:
قم بإنشاء بيئة افتراضية وتفعيلها على جهازك المحلي لعزل تبعيات المشروع.
python -m venv repochat-env
source repochat-env/bin/activateاستنساخ مستودع Repochat وانتقل إلى دليل المشروع.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat تثبيت حزم Python المطلوبة باستخدام pip .
pip install -r requirements.txtقم بتثبيت مكتبة "Llama-CPP-Python".
pip install llama-cpp-python llama.cpp يدعم العديد من blas الخلفية للمعالجة بشكل أسرع.
للتثبيت باستخدام OpenBlas ، قم بتعيين متغيرات بيئة LLAMA_BLAS and LLAMA_BLAS_VENDOR قبل التثبيت:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python للتثبيت باستخدام Cublas ، قم بتعيين LLAMA_CUBLAS=1 متغير البيئة قبل التثبيت:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python للتثبيت باستخدام CLBLAST ، قم بتعيين متغير البيئة LLAMA_CLBLAST=1 قبل التثبيت:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python للتثبيت بالمعادن (MPS) ، قم بتعيين LLAMA_METAL=on متغير البيئة قبل التثبيت:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python للتثبيت مع دعم Hipblas / ROCM لبطاقات AMD ، قم بتعيين LLAMA_HIPBLAS=on متغير البيئة قبل التثبيت:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonللتعرف على المزيد حول تسريع الأجهزة ، راجع Readme الرسمي من Llama-CPP-Python
قم بإنشاء مجلد اسمه models في دليل المشروع.
قم بتنزيل نموذج لغة من مركز Hugging Face Model استنادًا إلى إمكانيات جهاز الكمبيوتر الخاص بك. يوصى باستخدام النموذج التالي كنقطة انطلاق: TheBloke/Codellama-7B-Gguf. إذا كنت ترغب في تحديد نموذج متاح على وجه المعانقة ، فاتبع التعليمات من llama.cpp
انسخ ملف النموذج الذي تم تنزيله إلى مجلد "النماذج".
code_llama() ملف models.py
def code_llama ():
callbackmanager = CallbackManager ([ StreamingStdOutCallbackHandler ()])
llm = LlamaCpp (
model_path = "./models/codellama-7b.Q4_K_M.gguf" ,
n_ctx = 2048 ,
max_tokens = 200 ,
n_gpu_layers = 1 ,
f16_kv = True ,
callback_manager = callbackmanager ,
verbose = True ,
use_mlock = True
)
return llm افتح المحطة الخاصة بك وقم بتشغيل الأمر التالي لبدء تطبيق repochat:
streamlit run app.pyيمكنك الآن إدخال رابط مستودع GitHub.
ستجلب Repochat جميع الملفات من المستودع وتخزينها في مجلد يدعى "Cloned_repo". بعد ذلك ، سيتم تقسيم الملفات إلى أجزاء أصغر وحساب تضميناتها باستخدام نموذج محولات الجملة ، وتحديداً من المحولات على الجملة/MPNET-Base-V2.
يتم تخزين التضمين محليًا في قاعدة بيانات متجه تسمى chromadb.
يتيح لك Repochat المشاركة في محادثات مع chatbot. يمكنك طرح الأسئلة أو تقديم الإدخال ، وسيقوم chatbot باسترداد المستندات ذات الصلة من قاعدة بيانات المتجه. ثم يرسل مدخلاتك ، إلى جانب المستندات التي تم استردادها ، إلى نموذج اللغة لإنشاء الاستجابات. بشكل افتراضي ، قمت بتعيين النموذج على "Codellama-7B-instruction" ، ولكن يمكنك تغييره بناءً على سرعة جهاز الكمبيوتر الخاص بك ، ويمكنك حتى تجربة الطراز الكمي 13B للاستجابات.
يحتفظ chatbot بالذاكرة أثناء المحادثة لتوفير استجابات ذات صلة بالسياق.
إذا واجهت أي مشكلات ، أو لديك اقتراحات ، أو ترغب في الإبلاغ عن خطأ ، فيرجى زيارة قسم المشكلات في مستودع Repochat وإنشاء مشكلة جديدة. قدم معلومات مفصلة حول المشكلة التي تواجهها ، وسأبذل قصارى جهدي لمساعدتك.
هذا المشروع مرخص بموجب ترخيص Apache 2.0. للحصول على التفاصيل ، راجع ملف الترخيص. يرجى ملاحظة أن هذا تغيير من الترخيص السابق ، ومن المهم مراجعة شروط وأحكام الترخيص الجديد.