واجهة سطر الأوامر التفاعلية الأساسية للغاية لفهرسة المستندات والاستعلام عنها باستخدام ملفات 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,...
.