Chroma เป็นแอพพลิเคชั่นฐานข้อมูลที่ถูกฝังอยู่ในโค้ดของเราในรูปแบบของแพ็คเกจ ความได้เปรียบของ Chroma คือความง่าย หากคุณต้องการฐานข้อมูลเวกเตอร์เพื่อใช้ในการดำเนินการพื้นที่ความจำ LLM ในการพัฒนาแอปพลิเคชั่น LLM มันรองรับการค้นหาภาษาคล้ายกันในข้อความ และหากคุณไม่ต้องการติดตั้งฐานข้อมูลเวกเตอร์แยกต่างหาก Chroma คือตัวเลือกที่ดี ปัจจุบันไลบรารี Chroma รองรับภาษา Python และ JavaScript บทความนี้มีพื้นฐานคลาสซึ่งอยู่บน Python
1. ติดตั้ง Chromadb
pip install chromadb
หมายเหตุ: เวอร์ชันปัจจุบันของ chromadb ไม่รองรับ Python 3.11 แนะนำให้ downgrade เวอร์ชันของ python
2. กำหนดค่าเริ่มต้นสำหรับลูกค้าของ Chroma
import chromadb
chroma_client = chromadb.Client()
3. สร้างคอลเลคชัน
คอลเลคชันคล้ายกับตารางในฐานข้อมูล Chroma ที่จะเก็บข้อมูลเวกเตอร์ (รวมถึงเอกสารและข้อมูลต้นฉบับอื่น ๆ) สร้างคอลเลคชันดังนี้:
collection = chroma_client.create_collection(name="tizi365")
4. เพิ่มข้อมูล
หลังจากกำหนดค่าคอลเลคชันแล้ว ทาง Chroma จะจัดเก็บข้อมูลของเราและสร้างดัชนีเฉพาะของเวกเตอร์ของข้อมูลข้อความเพื่อการค้นหาที่สะดวกในภายหลัง
4.1 คำนวณเวกเตอร์โดยใช้โมเดลที่ฝังอยู่ภายใน
collection.add(
documents=["นี่เป็นเอกสาร", "นี่คือเอกสารอีกชิ้น"],
metadatas=[{"source": "my_source"}, {"source": "my_source"}],
ids=["id1", "id2"]
)
4.2 ระบุค่าเวกเตอร์เมื่อเพิ่มข้อมูล
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["นี่เป็นเอกสาร", "นี่คือเอกสารอีกชิ้น"],
metadatas=[{"source": "my_source"}, {"source": "my_source"}],
ids=["id1", "id2"]
)
5. ค้นหาข้อมูล
ตอนนี้คุณสามารถค้นหาเนื้อหาข้อความที่คล้ายกัน และ Chroma จะส่งคืนผลลัพธ์ที่คล้ายกัน "n" รายการ ด้านล่างเป็นตัวอย่างการค้นหาเนื้อหาเอกสารที่คล้ายกันตามพารามิเตอร์การค้นหาเนื้อหาเอกสาร:
results = collection.query(
query_texts=["นี่คือเอกสารค้นหา"],
n_results=2
)
ตามค่าเริ่มต้น ข้อมูลใน Chroma ถูกจัดเก็บในหน่วยความจำ ดังนั้นข้อมูลจะสูญหายเมื่อโปรแกรมถูกเริ่มต้นใหม่ แน่นอน คุณสามารถกำหนด Chroma เพื่อเก็บข้อมูลในฮาร์ดดิสก์ ดังนั้นโปรแกรมจะโหลดข้อมูลจากดิสก์เมื่อเริ่มต้นใช้งาน