【Chroma】安装和运行 Chroma 向量数据库
安装和运行 Chroma 向量数据库
- 一、Windows 平台安装和运行 Chroma
- 1. 安装
- 2. 运行
- 3. 测试
- 二、Linux 平台安装和运行 Chroma
- 1. 安装
- 2. 运行
- 3. 测试
- 三、LuckReport 项目推荐
- 1、项目简介
- 2、在线体验
- 四、学习交流
最近在做 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
importchromadbfromchromadb.serverimportServerfromchromadb.configimportSettings 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 镜像
dockerpull chromadb/chroma:1.5.3如果拉不动,配个国内镜像源或者走代理。
2. 运行
启动容器
dockerrun-d\--namechromadb\--restart=unless-stopped\-p8000:8000\-v/home/soft/chroma/data:/data\-eIS_PERSISTENT=TRUE\-eALLOW_RESET=false\-eANONYMIZED_TELEMETRY=FALSE\chromadb/chroma:1.5.3参数说明
| 参数 | 干啥的 |
|---|---|
--name chromadb | 容器起个名,方便后续管理 |
--restart=unless-stopped | 机器重启后容器自动跟着起来 |
-p 8000:8000 | 把容器 8000 端口映射到宿主机 |
-v /home/soft/chroma/data:/data | 数据持久化,容器删了数据还在 |
-e ALLOW_RESET=false | 禁止通过 API 重置数据库,生产环境建议关掉 |
-e ANONYMIZED_TELEMETRY=FALSE | 关掉匿名遥测,不上报使用数据 |
如果需要指定版本,改镜像标签就行,比如chromadb/chroma:0.4.24。
3. 测试
测试一:心跳检测
curlhttp://localhost:8000/api/v1/heartbeat返回类似{"nanosecond heartbeat":...}就说明服务在跑。
测试二:API 接口验证
# 列出所有 collectioncurlhttp://localhost:8000/api/v1/collections# 查看版本curlhttp://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学习交流
一个人的精力是有限的,没有那么多的时间去探索新的事物,加入一个交流群就相当于增加了一个接触新事物、新想法、新机会的渠道,这就是交流群存在的意义,期待你的加入!
