本页面列出了常见的问题及其解决方法。
如果你在这里没有找到你的问题,请同时搜索 Github Issues。
使用 .get
或 .query
时,嵌入向量显示为 None
#
这实际上并不是一个错误。嵌入向量非常大且传输起来很耗费资源。大多数应用程序并不使用底层的嵌入向量,因此默认情况下,Chroma 不会返回它们。
要返回它们:在查询中添加 include=["embeddings", "documents", "metadatas", "distances"]
以返回所有信息。
例如:
我们可能会将 None
改为其他内容,以更清楚地说明为什么它们没有被返回。
运行 pip install chromadb
时出现构建错误#
如果在设置过程中遇到类似这样的错误
尝试以下来自 社区 的几个提示:
- 如果出现错误:
clang: error: the clang compiler does not support '-march=native'
,设置此环境变量,export HNSWLIB_NO_NATIVE=1
- 如果在 Mac 上,安装/更新 xcode 开发工具,
xcode-select --install
- 如果在 Windows 上,尝试 这些步骤
SQLite#
Chroma 需要 SQLite > 3.35,如果你遇到 SQLite 版本过低的问题,请尝试以下方法。
- 安装最新版本的 Python 3.10,有时较低版本的 Python 会捆绑较旧版本的 SQLite。
- 如果你使用的是 Linux 系统,可以安装 pysqlite3-binary,
pip install pysqlite3-binary
,然后按照 这里 的步骤覆盖默认的 sqlite3 库,然后再运行 Chroma。或者你可以从头编译 SQLite,并按照 这里 的文档将库替换为你 Python 安装中的最新版本。 - 如果你使用的是 Windows,可以从 https://www.sqlite.org/download.html 手动下载最新版本的 SQLite,并将你 Python 安装的 DLLs 文件夹中的 DLL 替换为最新版本。你可以通过在 Python 中运行
os.path.dirname(sys.executable)
找到你的 Python 安装路径。 - 如果你使用的是基于 Debian 的 Docker 容器,较旧的 Debian 版本没有最新的 SQLite,请使用
bookworm
或更高版本。
非法指令 (核心已转储)#
如果在设置过程中遇到类似这样的错误并且使用 Docker,你可能在不同 CPU 架构的机器上构建了库。尝试在你运行它的机器上重新构建 Docker 镜像。
我的数据目录太大#
如果你在 v0.5.6 之前使用过 Chroma,你可以通过 清理数据库 显著缩小数据库。清理一次后,自动修剪(v0.5.6 中的新功能)将被启用,并会保持你的数据库大小在可控范围内。