开源嵌入数据库

Chroma是一个开源的嵌入数据库,用于快速构建带有记忆功能的Python或JavaScript LLM应用程序,支持向量搜索、全文搜索和元数据过滤等功能。

作者 By chroma-core
本地部署 开源 嵌入数据库
GitHub

Chroma logo

Chroma - the open-source embedding database.

The fastest way to build Python or JavaScript LLM apps with memory!

Discord | ![License](https://img.shields.io/static/v1?label=license&message=Apache 2.0&color=white) | Docs | Homepage

Chroma MCP服务器

模型上下文协议(MCP) 是一种开放协议,旨在实现LLM应用程序和外部数据源或工具之间的轻松集成,提供一个标准化的框架,为LLM无缝提供所需的上下文。

该服务器提供由Chroma支持的数据检索功能,使AI模型能够对生成的数据和用户输入创建集合,并使用矢量搜索、全文搜索、元数据过滤等检索数据。

这是一个MCP服务器,用于自托管您对Chroma的访问。如果你正在寻找 程序包搜索 您可以找到相应的存储库 这里.

特性

  • 灵活的客户端类型

  • 短暂(记忆中)用于测试和开发

  • 持久用于基于文件的存储

  • 用于自托管Chroma实例的HTTP客户端

  • Chroma Cloud集成的云客户端(自动连接到api.trychroma.com

  • 收集管理

  • 创建、修改和删除集合

  • 列出所有支持分页的集合

  • 获取收集信息和统计数据

  • 配置HNSW参数以优化矢量搜索

  • 创建集合时选择嵌入函数

  • 文档操作

  • 添加具有可选元数据和自定义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 -更新现有文档的内容、元数据或嵌入
  • chroma_delete_documents -从集合中删除特定文档

嵌入功能

Chroma MCP支持多种嵌入功能: default, cohere, openai, jina, voyageai,以及 roboflow.

嵌入函数利用Chroma的集合配置,该配置保留了集合的选定嵌入函数以供检索。一旦使用集合配置创建了集合,在检索以进行未来的查询和插入时,将使用相同的嵌入函数,而无需再次指定嵌入函数。Chroma的v1.0.0中添加了嵌入函数持久性,因此如果您使用版本<=0.6.3创建了一个集合,则不支持此功能。

访问使用外部API的嵌入函数时,请确保添加API键的环境变量,格式正确,请参见 嵌入函数环境变量

使用Claude Desktop

  1. 要添加临时客户端,请将以下内容添加到您的 claude_desktop_config.json 文件:

JSON``` 1 2 3 4 5 6”chroma”: { “command”: “uvx”, “args”: [ “chroma-mcp” ] }


1. 要添加持久客户端,请将以下内容添加到您的 `claude_desktop_config.json` 文件:


JSON```
1
2
3
4
5
6
7
8
9
10"chroma": {
    "command": "uvx",
    "args": [
        "chroma-mcp",
        "--client-type",
        "persistent",
        "--data-dir",
        "/full/path/to/your/data/directory"
    ]
}

这将创建一个使用指定数据目录的持久客户端。

  1. 要连接到Chroma Cloud,请将以下内容添加到您的 claude_desktop_config.json 文件:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14”chroma”: { “command”: “uvx”, “args”: [ “chroma-mcp”, “—client-type”, “cloud”, “—tenant”, “your-tenant-id”, “—database”, “your-database-name”, “—api-key”, “your-api-key” ] }


这将创建一个使用SSL自动连接到api.trychroma.com的云客户端。


**注:** 在本地设备上可以在参数中添加API键,但为了安全起见,还可以使用 `--dotenv-path` 内部争论 `args` 列表,例如: `"args": ["chroma-mcp", "--dotenv-path", "/custom/path/.env"]`.


1. 连接到[您自己的云提供商上的自托管Chroma实例]([https://docs.trychroma.com/](https://docs.trychroma.com/)
生产/部署),将以下内容添加到您的 `claude_desktop_config.json` 文件:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16"chroma": {
    "command": "uvx",
    "args": [
      "chroma-mcp", 
      "--client-type", 
      "http", 
      "--host", 
      "your-host", 
      "--port", 
      "your-port", 
      "--custom-auth-credentials",
      "your-custom-auth-credentials",
      "--ssl",
      "true"
    ]
}

这将创建一个连接到自托管Chroma实例的HTTP客户端。

德莫斯

查找参考用法,例如共享知识库和向上下文窗口添加内存 Chroma MCP文档

使用环境变量

您还可以使用环境变量来配置客户端。服务器将自动从 .env 位于指定路径的文件 --dotenv-path (默认为 .chroma_env 在工作目录中)或从系统环境变量中获取。命令行参数优先于环境变量。

BASH``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15# 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”


#### 嵌入函数环境变量


当使用访问API密钥的外部嵌入函数时,请遵循命名约定
`CHROMA_<>_API_KEY="<key>"`.
因此,要设置Cohere API密钥,请设置环境变量 `CHROMA_COHERE_API_KEY=""`。我们建议将其添加到某处的.env文件中,并使用 `CHROMA_DOTENV_PATH` 环境变量或 `--dotenv-path` 标记以设置该位置进行安全保管。