CLI แบบโต้ตอบขั้นพื้นฐานสำหรับการจัดทำดัชนีและการสืบค้นเอกสารโดยใช้ 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
toy
การเพิ่มข้อมูลทำได้ 2 วิธี:
.txt
ไปยังไดเร็กทอรี local_data/
คุณสามารถลบ toy_data/
ออกจากรายการ INDEX_LOCAL_DATA_DIRS
ในไฟล์ .env
ของเราได้ คุณยังสามารถเพิ่มไดเร็กทอรีอื่นลงในรายการ INDEX_LOCAL_DATA_DIRS
ได้อีกด้วยINDEX_URLS
var ในไฟล์ .env
ของคุณ เช่น INDEX_URLS=url1,url2,...