You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Chroma.from_documents()加载文档至Chroma DB时遇接口错误

ChromaDB 0.4.18加载文档报错解决方案

问题原因

ChromaDB从0.4.16版本起更新了EmbeddingFunction接口规范,要求__call__方法必须接收input参数,但你使用的LangChain SentenceTransformerEmbeddings方法签名为self, args, kwargs,两者不匹配导致报错。

解决方法

有两种可行的修复方式:

方式一:适配LangChain嵌入函数为Chroma兼容格式

使用Chroma提供的工具类,将LangChain的嵌入函数转换为符合新版接口要求的格式:

from langchain_community.embeddings import SentenceTransformerEmbeddings
from chromadb.utils import embedding_functions

# 创建LangChain嵌入函数
langchain_embedding = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
# 转换为Chroma兼容的嵌入函数
chroma_compatible_embedding = embedding_functions.LangChainEmbedding(langchain_embedding)
# 加载文档到Chroma
Chroma.from_documents(texts, chroma_compatible_embedding)

方式二:直接使用Chroma原生的SentenceTransformer嵌入函数

跳过LangChain的实现,直接使用Chroma自带的嵌入函数,完全符合新版接口规范:

from chromadb.utils import embedding_functions

# 创建Chroma原生的SentenceTransformer嵌入函数
embedding_function = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
# 加载文档到Chroma
Chroma.from_documents(texts, embedding_function)

内容的提问来源于stack exchange,提问作者Jay Parmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:15:04