Chromadb + Langchain 与 SentenceTransformerEmbeddingFunction 抛出 sqlite3 >= 3.35.0 错误,尽管 sqlite3 3.43.0 可用

问题描述 投票:0回答:1

我一直在尝试使用

  • Chromadb
    版本
    0.4.8
  • Langchain
    版本
    0.0.276

SentenceTransformerEmbeddingFunction
如下面的代码片段所示。

from langchain.vectorstores import Chroma
from chromadb.utils import embedding_functions

# other imports
embedding = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")

但是,它会引发以下错误。

RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.

有趣的是,我确实拥有所需的

sqlite3
(
3.43.0
),我可以使用命令
sqlite3 --version
进行验证。

将不胜感激任何帮助。谢谢你。

sqlite information-retrieval langchain chromadb
1个回答
0
投票

在Python中导入chromadb导致的错误消息:

>>> import chromadb
[...]
RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.
Please visit https://docs.trychroma.com/troubleshooting#sqlite to learn how to upgrade.

通过上述 url 和 Chroma 的信息丰富的 源代码 建议了一种解决方法。第一

$ pip install pysqlite3-binary 

然后,在Python中:

>>> import pysqlite3
>>> import sys
>>> sys.modules["sqlite3"] = sys.modules.pop("pysqlite3")
>>> import chromadb
>>>

现在应该不会产生任何错误。

有趣的事实:

$ sqlite3 --version
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1

同时,在上面的Python控制台继续:

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.43.1'
© www.soinside.com 2019 - 2024. All rights reserved.