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 logo

Chroma - ฐานข้อมูล embedding แบบโอเพนซอร์ส
วิธีที่เร็วที่สุดในการสร้างแอป LLM ด้วย Python หรือ JavaScript ที่มีหน่วยความจำ!

Discord | License | เอกสารประกอบ | หน้าแรก

Chroma MCP Server

smithery badge

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

  1. หากต้องการเพิ่มไคลเอนต์แบบ ephemeral ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์ claude_desktop_config.json ของคุณ:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp"
    ]
}
  1. หากต้องการเพิ่มไคลเอนต์แบบ persistent ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์ claude_desktop_config.json ของคุณ:
"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

สิ่งนี้จะสร้างไคลเอนต์แบบ persistent ที่จะใช้ไดเรกทอรีข้อมูลที่ระบุ

  1. หากต้องการเชื่อมต่อกับ 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"]

  1. หากต้องการเชื่อมต่อกับ [อินสแตนซ์ 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 เพื่อกำหนดตำแหน่งนั้นเพื่อความปลอดภัย