安装和运行 Chroma 向量数据库

最近在做 Agent 相关的项目,免不了要跟向量数据库打交道。Chroma 是本地调试常用的一类向量数据库,本文将按照 Windows 、 Linux 两个平台分别讲解如何安装、运行 Chroma 向量数据库
环境说明: Windows 部分基于 Python 3.x + pip,Linux 部分基于 Docker
一、Windows 平台安装和运行 Chroma
1. 安装
安装 Chroma 之前,先搭建好 Python 项目和虚拟环境
第一步:创建项目目录和虚拟环境
以我的为例,项目路径是 D:\TestCode\python\chroma-db
# 进入项目目录
cd D:\TestCode\python\chroma-db
# 用 conda 创建虚拟环境(如果你用的 Anaconda)
conda create -n chroma-db python=3.10
# 激活虚拟环境
conda activate chroma-db
如果你不用 conda,用 Python 自带的 venv 也行:
# 进入项目目录
cd D:\TestCode\python\chroma-db
# 创建虚拟环境
python -m venv chroma-db-env
# 激活
chroma-db-env\Scripts\activate
虚拟环境激活之后,命令行前面会多一个 (chroma-db) 或 (chroma-db-env) 的前缀,说明你已经在虚拟环境里了。
第二步:装 chromadb 包
python -m pip install chromadb -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
这里用了清华的镜像源,国内下载速度能快不少。如果你网络没问题,直接 pip install chromadb 也可以
2. 运行
装好之后有两种方式启动 Chroma 服务。
方式一:Python 代码启动
在项目根目录 D:\TestCode\python\chroma-db 下创建 main.py
import chromadb
from chromadb.server import Server
from chromadb.config import Settings
settings = Settings(
persist_directory="./chroma_data",
anonymized_telemetry=False
)
server = Server(settings)
server.run(host="0.0.0.0", port=8000)
项目运行后会在 D:\TestCode\python\chroma-db\chroma_data 目录下生成数据文件,包括 SQLite 数据库和 向量索引 文件。
启动程序
# 进入项目目录
cd D:\TestCode\python\chroma-db
# 运行
python main.py
方式二:命令行直接启动
chroma run --host 0.0.0.0 --port 8000 --path ./chroma_data
参数说明:
--host 0.0.0.0监听所有网卡,方便其他机器访问--port 8000端口号--path ./chroma_data数据存储目录,不指定的话默认在当前目录下
3. 测试
服务跑起来后,用 HTTP 接口验证服务是否正常
curl http://localhost:8000/api/v1/heartbeat
返回类似 {"nanosecond heartbeat":1234567890} 这样一串 JSON,就说明服务正常跑着了。
再测一下 API 文档页面能不能打开:浏览器访问 http://127.0.0.1:8000/docs ,能看到 Swagger UI 界面就一切 OK

二、Linux 平台安装和运行 Chroma
1. 安装
Linux 上推荐用 Docker 来安装 Chroma 服务
拉取 Chroma 镜像
docker pull chromadb/chroma
如果拉不动,配个国内镜像源或者走代理。
2. 运行
启动容器
docker run -d \
--name chromadb \
--restart=unless-stopped \
-p 8000:8000 \
-v chroma_data:/home/soft/chroma/data \
-e ALLOW_RESET=false \
-e ANONYMIZED_TELEMETRY=FALSE \
chromadb/chroma:1.5.3
参数说明
| 参数 | 干啥的 |
|---|---|
--name chromadb |
容器起个名,方便后续管理 |
--restart=unless-stopped |
机器重启后容器自动跟着起来 |
-p 8000:8000 |
把容器 8000 端口映射到宿主机 |
-v chroma_data:/home/soft/chroma/data |
数据持久化,容器删了数据还在 |
-e ALLOW_RESET=false |
禁止通过 API 重置数据库,生产环境建议关掉 |
-e ANONYMIZED_TELEMETRY=FALSE |
关掉匿名遥测,不上报使用数据 |
如果需要指定版本,改镜像标签就行,比如 chromadb/chroma:0.4.24。
3. 测试
测试一:心跳检测
curl http://localhost:8000/api/v1/heartbeat
返回类似 {"nanosecond heartbeat":...} 就说明服务在跑。
测试二:API 接口验证
# 列出所有 collection
curl http://localhost:8000/api/v1/collections
# 查看版本
curl http://localhost:8000/api/v1/version
能正常返回 JSON 数据就说明一切 OK。Chroma 连接后客户端会自动创建所需的 Collection,不像 pgvector 那样还需要手动建表建索引,确实省事不少。
三、LuckReport 项目推荐

导航:LuckReport专栏
1、项目简介
Luck-Report 是一款基于开源项目 UReport2 重构的 Java 高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。相较于 UReport2,Luck-Report 在技术架构上进行了全新升级,后端基于 SpringBoot 框架开发、前端采用 Vue 框架构建,技术选型贴合当下主流项目开发标准,可精准适配各类实际开发需求。
Luck-Report 提供了全新的基于网页的报表设计器,可以在 Chrome、Firefox、Edge 等各种主流浏览器运行(IE 浏览器除外)。使用 Luck-Report,打开浏览器即可完成各种复杂报表的设计制作。
Luck-Report 基于 Apache-2.0 开源协议 开源
2、在线体验
- 体验地址:https://www.quzhe.top/luck-report/report/designer
- 源码地址:https://gitee.com/LuckyPools/luck-report
- 文档地址:https://www.quzhe.top/luck-report-blog/report
四、学习交流
链接: Java-AI学习交流
一个人的精力是有限的,没有那么多的时间去探索新的事物,加入一个交流群就相当于增加了一个接触新事物、新想法、新机会的渠道,这就是交流群存在的意义,期待你的加入!