واجهة سطر الأوامر التفاعلية الأساسية للغاية لفهرسة المستندات والاستعلام عنها باستخدام ملفات llamafiles للتضمين وإنشاء النص. يعتمد الفهرس على متجر FAISS للمتجهات. نموذج التضمين الافتراضي هو mxbai-embed-large-v1 (رابط llamafile) ونموذج إنشاء النص هو Mistral-7b-instruct-v0.2 (رابط llamafile). (يمكن تغييرها عن طريق تحرير setup.sh
.)
يثبت:
cp .env.example .env
./setup.sh
سيقوم هذا البرنامج النصي بتنزيل ملفات llamafiles من HuggingFace وقد يستغرق عدة دقائق حسب اتصالك بالإنترنت.
ملاحظة: يتطلب البرنامج النصي للإعداد pyenv
لبدء التطبيق، قم بتشغيل:
./app.sh
عند تشغيل التطبيق سوف:
toy_data/
إلى متجر المتجهات ("الفهرس"). محتويات دليل toy_data/
: 1.txt: Alice likes red squares.
2.txt: Bob likes blue circles.
3.txt: Chris likes blue triangles.
4.txt: David does not like green triangles.
5.txt: Mary does not like circles.
Enter query (ctrl-d to quit): [What does Alice like ? ] >
إذا قمت للتو بالضغط على Enter هنا، فسيكون الاستعلام افتراضيًا "ماذا تحب أليس؟". يجب أن يبدو إخراج التطبيق كما يلي:
=== Query ===
What does Alice like?
=== Search Results ===
0.7104 - " alice likes red squares ."
0.5229 - " bob likes blue circles ."
0.4088 - " chris likes blue triangles ."
=== Prompt ===
"You are an expert Q&A system. Answer the user's query using the provided context information.
Context information:
alice likes red squares .
bob likes blue circles .
chris likes blue triangles .
Query: What does Alice like?"
(prompt_ntokens: 55)
=== Answer ===
"
Answer: Alice likes red squares."
--------------------------------------------------------------------------------
إليك بعض الاستفسارات الأخرى التي يمكنك تجربتها:
هذا إلى حد كبير.
يمكنك تغيير معظم إعدادات التطبيق عبر ملف .env
. يجب أن يبدو الملف الافتراضي كما يلي:
EMBEDDING_MODEL_PORT=8080
GENERATION_MODEL_PORT=8081
INDEX_LOCAL_DATA_DIRS=local_data,toy_data
INDEX_TEXT_CHUNK_LEN=128
INDEX_SAVE_DIR=./index-toy
راجع settings.py للتعرف على جميع الخيارات المتاحة.
بشكل افتراضي، يستخدم التطبيق:
افتراضيًا، يتم تكوين التطبيق لفهرسة محتويات الدلائل المدرجة في INDEX_LOCAL_DATA_DIRS
، وهي local_data
و toy_data
. حاليًا، ندعم فهرسة ملفات .txt
فقط.
أولاً، في .env
الخاص بك، قم بتغيير INDEX_SAVE_DIR
إلى المكان الذي تريد حفظ الفهرس الخاص بك فيه. لن يقوم التطبيق بتغيير أو الكتابة فوق فهرس موجود، لذا قم إما بتغيير الدليل في .env
أو حذف الفهرس الموجود في ./index-toy
.
هناك طريقتان لإضافة البيانات:
.txt
إلى دليل local_data/
. يمكنك إزالة toy_data/
من قائمة INDEX_LOCAL_DATA_DIRS
في ملف .env
الخاص بنا. يمكنك أيضًا إضافة دليل آخر إلى قائمة INDEX_LOCAL_DATA_DIRS
.INDEX_URLS
في ملف .env
الخاص بك، على سبيل المثال INDEX_URLS=url1,url2,...
.