Chroma
ทางการการฝังข้อมูล, การค้นหาเวกเตอร์, การจัดเก็บเอกสาร และการค้นหาข้อความแบบเต็มด้วยฐานข้อมูลแอปพลิเคชัน AI แบบโอเพนซอร์ส
คุณทำอะไรได้บ้างด้วย Chroma MCP?
- รายการและเรียกดูคอลเล็กชัน — ใช้
chroma_list_collectionsเพื่อดูคอลเล็กชันที่มีอยู่แบบแบ่งหน้า และchroma_peek_collectionเพื่อดูตัวอย่างเอกสารภายในคอลเล็กชัน - สร้างคอลเล็กชันพร้อมโมเดล embedding ที่เลือก — รัน
chroma_create_collectionเพื่อตั้งค่าคอลเล็กชันใหม่โดยใช้ embedding จากdefault,openai,cohere,jina,voyageaiหรือroboflow - เพิ่มเอกสารพร้อม metadata — แทรกข้อความผ่าน
chroma_add_documentsโดยสามารถแนบ metadata และ ID ที่กำหนดเองเพื่อใช้กรองในภายหลัง - ค้นหาตามความหมายหรือคำสำคัญ — ค้นหาด้วย
chroma_query_documentsสำหรับการค้นหาเวกเตอร์เชิงความหมาย หรือใช้การค้นหาข้อความแบบเต็มเพื่อหาเอกสารที่เกี่ยวข้อง - กรองและดึงเอกสารเฉพาะ — ดึงเอกสารตาม ID หรือตัวกรอง metadata โดยใช้
chroma_get_documentsพร้อมรองรับการแบ่งหน้า - อัปเดตหรือลบเอกสาร — แก้ไขเนื้อหาเอกสาร metadata หรือ embedding ด้วย
chroma_update_documentsหรือลบออกผ่านchroma_delete_documents
เอกสาร
Chroma - ฐานข้อมูล embedding แบบโอเพนซอร์ส
วิธีที่เร็วที่สุดในการสร้างแอป LLM ด้วย Python หรือ JavaScript ที่มีหน่วยความจำ!
|
|
เอกสารประกอบ
|
หน้าแรก
Chroma MCP Server
Model Context Protocol (MCP) เป็นโปรโตคอลแบบเปิดที่ออกแบบมาเพื่อการผสานรวมระหว่างแอปพลิเคชัน LLM และแหล่งข้อมูลหรือเครื่องมือภายนอกได้อย่างง่ายดาย โดยนำเสนอกรอบงานมาตรฐานเพื่อให้บริบทที่จำเป็นแก่ LLM ได้อย่างราบรื่น
เซิร์ฟเวอร์นี้มีความสามารถในการดึงข้อมูลที่ขับเคลื่อนโดย Chroma ช่วยให้โมเดล AI สามารถสร้างคอลเลกชันจากข้อมูลที่สร้างขึ้นและข้อมูลที่ผู้ใช้ป้อน และดึงข้อมูลนั้นโดยใช้การค้นหาแบบเวกเตอร์ การค้นหาข้อความแบบเต็ม การกรองด้วยเมทาดาทา และอื่นๆ
นี่คือเซิร์ฟเวอร์ MCP สำหรับการโฮสต์การเข้าถึง Chroma ด้วยตนเอง หากคุณกำลังมองหา Package Search คุณสามารถดูที่เก็บของสิ่งนั้นได้ ที่นี่
คุณสมบัติ
-
ประเภทไคลเอนต์ที่ยืดหยุ่น
- Ephemeral (ในหน่วยความจำ) สำหรับการทดสอบและการพัฒนา
- Persistent สำหรับการจัดเก็บข้อมูลแบบไฟล์
- ไคลเอนต์ HTTP สำหรับอินสแตนซ์ Chroma ที่โฮสต์เอง
- ไคลเอนต์ Cloud สำหรับการผสานรวม Chroma Cloud (เชื่อมต่อกับ api.trychroma.com โดยอัตโนมัติ)
-
การจัดการคอลเลกชัน
- สร้าง แก้ไข และลบคอลเลกชัน
- แสดงรายการคอลเลกชันทั้งหมดพร้อมการแบ่งหน้า
- รับข้อมูลและสถิติของคอลเลกชัน
- กำหนดค่าพารามิเตอร์ HNSW เพื่อการค้นหาเวกเตอร์ที่เหมาะสมที่สุด
- เลือกฟังก์ชัน embedding เมื่อสร้างคอลเลกชัน
-
การดำเนินการกับเอกสาร
- เพิ่มเอกสารพร้อมเมทาดาทาและ ID ที่กำหนดเองได้
- สอบถามเอกสารโดยใช้การค้นหาเชิงความหมาย
- การกรองขั้นสูงโดยใช้เมทาดาทาและเนื้อหาเอกสาร
- ดึงเอกสารตาม ID หรือตัวกรอง
- ความสามารถในการค้นหาข้อความแบบเต็ม
เครื่องมือที่รองรับ
chroma_list_collections- แสดงรายการคอลเลกชันทั้งหมดพร้อมการแบ่งหน้าchroma_create_collection- สร้างคอลเลกชันใหม่พร้อมการกำหนดค่า HNSW เสริมchroma_peek_collection- ดูตัวอย่างเอกสารในคอลเลกชันchroma_get_collection_info- รับข้อมูลโดยละเอียดเกี่ยวกับคอลเลกชันchroma_get_collection_count- รับจำนวนเอกสารในคอลเลกชันchroma_modify_collection- อัปเดตชื่อหรือเมทาดาทาของคอลเลกชันchroma_delete_collection- ลบคอลเลกชันchroma_add_documents- เพิ่มเอกสารพร้อมเมทาดาทาและ ID ที่กำหนดเองได้chroma_query_documents- สอบถามเอกสารโดยใช้การค้นหาเชิงความหมายพร้อมการกรองขั้นสูงchroma_get_documents- ดึงเอกสารตาม ID หรือตัวกรองพร้อมการแบ่งหน้าchroma_update_documents- อัปเดตเนื้อหา เมทาดาทา หรือ embedding ของเอกสารที่มีอยู่chroma_delete_documents- ลบเอกสารเฉพาะออกจากคอลเลกชัน
ฟังก์ชัน Embedding
Chroma MCP รองรับฟังก์ชัน embedding หลายแบบ: default, cohere, openai, jina, voyageai และ roboflow
ฟังก์ชัน embedding ใช้การกำหนดค่าคอลเลกชันของ Chroma ซึ่งจะคงฟังก์ชัน embedding ที่เลือกไว้ของคอลเลกชันสำหรับการดึงข้อมูล เมื่อสร้างคอลเลกชันโดยใช้การกำหนดค่าคอลเลกชันแล้ว ในการดึงข้อมูลสำหรับการสอบถามและการแทรกในอนาคต ฟังก์ชัน embedding เดียวกันจะถูกใช้ โดยไม่จำเป็นต้องระบุฟังก์ชัน embedding อีกครั้ง การคงอยู่ของฟังก์ชัน embedding ถูกเพิ่มเข้ามาใน Chroma เวอร์ชัน 1.0.0 ดังนั้นหากคุณสร้างคอลเลกชันโดยใช้เวอร์ชัน <=0.6.3 ฟีเจอร์นี้จะไม่รองรับ
เมื่อเข้าถึงฟังก์ชัน embedding ที่ใช้ API ภายนอก โปรดเพิ่มตัวแปรสภาพแวดล้อมสำหรับคีย์ API ด้วยรูปแบบที่ถูกต้อง ซึ่งดูได้ใน ตัวแปรสภาพแวดล้อมของฟังก์ชัน Embedding
การใช้งานกับ Claude Desktop
- หากต้องการเพิ่มไคลเอนต์แบบ ephemeral ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์
claude_desktop_config.jsonของคุณ:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp"
]
}
- หากต้องการเพิ่มไคลเอนต์แบบ persistent ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์
claude_desktop_config.jsonของคุณ:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"persistent",
"--data-dir",
"/full/path/to/your/data/directory"
]
}
สิ่งนี้จะสร้างไคลเอนต์แบบ persistent ที่จะใช้ไดเรกทอรีข้อมูลที่ระบุ
- หากต้องการเชื่อมต่อกับ Chroma Cloud ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์
claude_desktop_config.jsonของคุณ:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"cloud",
"--tenant",
"your-tenant-id",
"--database",
"your-database-name",
"--api-key",
"your-api-key"
]
}
สิ่งนี้จะสร้างไคลเอนต์ cloud ที่เชื่อมต่อกับ api.trychroma.com โดยอัตโนมัติผ่าน SSL
หมายเหตุ: การเพิ่มคีย์ API ในอาร์กิวเมนต์นั้นใช้ได้บนอุปกรณ์ภายในเครื่อง แต่เพื่อความปลอดภัย คุณยังสามารถระบุพาธที่กำหนดเองสำหรับไฟล์การกำหนดค่าสภาพแวดล้อมของคุณได้โดยใช้อาร์กิวเมนต์ --dotenv-path ภายในรายการ args ตัวอย่างเช่น: "args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]
- หากต้องการเชื่อมต่อกับ [อินสแตนซ์ Chroma ที่โฮสต์เองบนผู้ให้บริการคลาวด์ของคุณ](https://docs.trychroma.com/
production/deployment) ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์
claude_desktop_config.jsonของคุณ:
"chroma": {
"command": "uvx",
"args": [
"chroma-mcp",
"--client-type",
"http",
"--host",
"your-host",
"--port",
"your-port",
"--custom-auth-credentials",
"your-custom-auth-credentials",
"--ssl",
"true"
]
}
สิ่งนี้จะสร้างไคลเอนต์ HTTP ที่เชื่อมต่อกับอินสแตนซ์ Chroma ที่คุณโฮสต์เอง
การสาธิต
ค้นหาการใช้งานอ้างอิง เช่น ฐานความรู้ที่ใช้ร่วมกันและการเพิ่มหน่วยความจำลงในหน้าต่างบริบท ได้ใน เอกสาร Chroma MCP
การใช้ตัวแปรสภาพแวดล้อม
คุณยังสามารถใช้ตัวแปรสภาพแวดล้อมเพื่อกำหนดค่าไคลเอนต์ได้ เซิร์ฟเวอร์จะโหลดตัวแปรจากไฟล์ .env โดยอัตโนมัติ ซึ่งอยู่ที่พาธที่ระบุโดย --dotenv-path (ค่าเริ่มต้นคือ .chroma_env ในไดเรกทอรีการทำงาน) หรือจากตัวแปรสภาพแวดล้อมของระบบ อาร์กิวเมนต์บรรทัดคำสั่งมีความสำคัญเหนือกว่าตัวแปรสภาพแวดล้อม
# Common variables
export CHROMA_CLIENT_TYPE="http" # or "cloud", "persistent", "ephemeral"
# For persistent client
export CHROMA_DATA_DIR="/full/path/to/your/data/directory"
# For cloud client (Chroma Cloud)
export CHROMA_TENANT="your-tenant-id"
export CHROMA_DATABASE="your-database-name"
export CHROMA_API_KEY="your-api-key"
# For HTTP client (self-hosted)
export CHROMA_HOST="your-host"
export CHROMA_PORT="your-port"
export CHROMA_CUSTOM_AUTH_CREDENTIALS="your-custom-auth-credentials"
export CHROMA_SSL="true"
# Optional: Specify path to .env file (defaults to .chroma_env)
export CHROMA_DOTENV_PATH="/path/to/your/.env"
ตัวแปรสภาพแวดล้อมของฟังก์ชัน Embedding
เมื่อใช้ฟังก์ชัน embedding ภายนอกที่เข้าถึงคีย์ API ให้ปฏิบัติตามรูปแบบการตั้งชื่อ
CHROMA_<>_API_KEY="<key>"
ดังนั้นในการตั้งค่าคีย์ Cohere API ให้ตั้งค่าตัวแปรสภาพแวดล้อม CHROMA_COHERE_API_KEY="" เราขอแนะนำให้เพิ่มสิ่งนี้ลงในไฟล์ .env ที่ใดที่หนึ่ง และใช้ตัวแปรสภาพแวดล้อม CHROMA_DOTENV_PATH หรือแฟล็ก --dotenv-path เพื่อกำหนดตำแหน่งนั้นเพื่อความปลอดภัย
