قم بتحليل الكود الخاص بك محليًا باستخدام GPT4All LLM. لا توجد بيانات مشتركة ولا يلزم الاتصال بالإنترنت بعد تنزيل جميع الملفات الضرورية. تعتمد Eunomia على مشروع imartinez الأصلي PrivateGPT. تقتصر Eunomia على تحليل ملفات التعليمات البرمجية المصدر المقدمة فقط وتعطيك إجابة بناءً على استفسارك.
مع مشروع جانغو الجديد
مع مشروع C++
ماجستير | تحميل | الخلفية | مقاس |
---|---|---|---|
؟ ggml-gpt4all-l13b-snoozy.bin | تحميل | اللاما | 8.0 جيجابايت |
⁉️ ggml-nous-gpt4-vicuna-13b.bin | تحميل | اللاما | 8.0 جيجابايت |
؟ ggml-gpt4all-j-v1.3-groovy.bin | تحميل | com.gptj | 3.7 جيجابايت |
لانج | امتداد |
---|---|
بايثون | .py |
سي ++ | .CPP و.HPP |
جافا | جافا و.جار |
شبيبة | .js |
روبي | .rb |
الصدأ | .rs |
يذهب | .يذهب |
سكالا | .سكالا و.sc |
سويفت | .سريع |
PHP | .php |
مطاط | .تكس |
إليك الرابط إلى الكود المصدري لـ Langchain's Language Class مع جميع اللغات التي يدعمها Langchain حاليًا.
تستخدم Eunomia Chroma لإنشاء مخزن متجهات يحتوي على الملفات الموجودة في الدليل الذي يتم تشغيله فيه ثم تستخدم langchain لتغذية مخزن المتجهات إلى LLM الذي تختاره. اعتبارًا من الآن، يتم دعم نماذج GPT4All فقط نظرًا لأنه ليس لدي إمكانية الوصول إلى ChatGPT.
قم أولاً باستنساخ المستودع في مجلد باستخدام:
https://github.com/Ngz91/Eunomia.git
بعد استنساخ المستودع، تحتاج إلى تثبيت التبعيات في ملف require.txt عن طريق تشغيل pip install -r requirements.txt
(أوصي بالقيام بذلك داخل بيئة Python).
ثم قم بتنزيل أحد النماذج المدعومة في قسم النماذج التي تم اختبارها واحفظه داخل مجلد داخل مجلد Eunomia.
أعد تسمية example.env
إلى .env
وقم بتحرير المتغيرات بشكل مناسب.
PERSIST_DIRECTORY: is the folder you want your vectorstore in
LLM: Path to your GPT4All or LlamaCpp supported LLM
BACKEND: Backend for your model (refer to models tested section)
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
MODEL_N_CTX: Maximum token limit for the LLM model
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question
IGNORE_FOLDERS: List of folders to ignore
هام: هناك طريقتان لتشغيل Eunomia، إحداهما باستخدام python path/to/Eunomia.py arg1
والأخرى عن طريق إنشاء برنامج نصي دفعي ووضعه داخل مجلد Python Scripts (في Windows، يوجد تحت UserAppDAta LocalProgamsPythonPythonxxxScripts) وتشغيل eunomia arg1
مباشرة. بحكم طبيعة كيفية عمل Eunomia، يوصى بإنشاء برنامج نصي دفعي وتشغيله داخل المجلد الذي تريد تحليل التعليمات البرمجية فيه. يمكنك استخدام ملف example.bat
كمثال لإعداد الملف الدفعي بنفسك ولكن تذكر تحرير المسارات python pathtoEunomia.py %1
للإشارة إلى المسار حيث يوجد Eunomia.py في جهازك. سأستخدم البرنامج النصي الدفعي كمثال من الآن فصاعدا.
قم بتنشيط بيئة Python الخاصة بك (إذا قمت بإنشاء واحدة)، وانتقل إلى المجلد الذي يوجد به الكود الخاص بك واستوعب الملفات لإنشاء مخزن المتجهات الذي سيستخدمه LLM المحدد كسياق للإجابة على أسئلتك عن طريق تشغيل:
eunomia ingest
في المرة الأولى التي تقوم فيها بتشغيل البرنامج النصي، سيتطلب الأمر اتصالاً بالإنترنت لتنزيل نموذج التضمين نفسه. لن تحتاج إلى أي اتصال بالإنترنت عند تشغيل الاستيعاب مرة أخرى.
سترى شيئًا كهذا إذا سار كل شيء بشكل صحيح:
Creating new vectorstore
Loading documents from D:FolderSomeTest
Loading new documents: 100%|██████████████████████████████| 7/7 [00:00<?, ?it/s]
Loaded 7 new documents from D:Projectstests
Split into 14 chunks of text (max. 1000 tokens each)
Creating embeddings. May take some minutes...
Vectorstore created, you can now run 'eunomia start' to use the LLM to interact with your code!
بمجرد إنشاء مخزن المتجهات، يمكنك تشغيل Eunomia عن طريق تشغيل:
eunomia start
في المرة الأولى سوف يستغرق الأمر بضع ثوان. بمجرد الانتهاء من تحميل النموذج، سيتم الترحيب بك بمطالبة مثل هذه إذا تم تحميل النموذج بنجاح:
Found model file.
gptj_model_load: loading model from 'models\ggml-gpt4all-j-v1.3-groovy.bin' - please wait ...
gptj_model_load: n_vocab = 50400
gptj_model_load: n_ctx = 2048
gptj_model_load: n_embd = 4096
gptj_model_load: n_head = 16
gptj_model_load: n_layer = 28
gptj_model_load: n_rot = 64
gptj_model_load: f16 = 2
gptj_model_load: ggml ctx size = 5401.45 MB
gptj_model_load: kv self size = 896.00 MB
gptj_model_load: ................................... done
gptj_model_load: model size = 3609.38 MB / num tensors = 285
______ __ __ __ __ ______ __ __ __ ______
/ ___ / / / "-. / __ / "-./ / / __
__ _ \ -. \ / \ -./ \ \ __
_____\ _____\ _\"_\ _____\ _ _\ _\ _ _
/_____/ /_____/ /_/ /_/ /_____/ /_/ /_/ /_/ /_//_/
Enter a query:
ملحوظة: في حالة مواجهة أخطاء عند تحميل LLM، تأكد من أنك تستخدم الواجهة الخلفية الصحيحة لـ LLM الذي تستخدمه. كما أن بعض الإجابات قد تكون غير كاملة أو خاطئة. أثناء الاختبار، وجدت أنه يمكن تحسين ذلك من خلال تجربة أحجام قطع مختلفة، وتداخل القطع، وn_ctx، وtarget_source_chunks. يمكنك استخدام نماذج أخرى لاختبار ما إذا كانت استجابتها أفضل من تلك التي تم اختبارها حتى الآن، تذكر أن تبحث عن كيفية استخدام هذه النماذج مع langchain والواجهات الخلفية الخاصة بها.
لاستخدام هذا البرنامج، يجب أن يكون لديك Python 3.10 أو إصدار أحدث مثبتًا. لن يتم تجميع الإصدارات السابقة من Python.
إذا واجهت خطأ أثناء إنشاء عجلة أثناء عملية pip install
، فقد تحتاج إلى تثبيت مترجم C++ على جهاز الكمبيوتر الخاص بك.
لتثبيت مترجم C++ على نظام التشغيل Windows 10/11، اتبع الخطوات التالية:
gcc
. عند تشغيل جهاز Mac مزودًا بأجهزة Intel (وليس M1)، قد تواجه رسالة clang: خطأ: لا يدعم مترجم clang '-march=native' أثناء تثبيت النقطة.
إذا كان الأمر كذلك، قم بتعيين Archflags أثناء تثبيت النقطة. على سبيل المثال: ARCHFLAGS = "-arch x86_64" pip3 install -r Requirements.txt
هذا مشروع اختباري للتحقق من جدوى الحل الخاص بالكامل للإجابة على الأسئلة باستخدام LLMs وVector Embeddings. إنه ليس جاهزًا للإنتاج، وليس المقصود استخدامه في الإنتاج. لم يتم تحسين اختيار النماذج للأداء، ولكن للخصوصية؛ ولكن من الممكن استخدام نماذج ومخازن ناقلات مختلفة لتحسين الأداء.