使用LangChain+ChromaDB构建QA系统时遇create_collection参数错误
解决LangChain + ChromaDB TypeError: create_collection() got an unexpected keyword argument 'embedding_fn'
这个错误的核心原因是LangChain与ChromaDB版本不兼容:
- 旧版LangChain调用ChromaDB的
create_collection方法时使用了embedding_fn参数 - 新版ChromaDB(v0.4.0及以上)已将该参数重命名为
embedding_function,但你的LangChain版本仍在使用旧参数名发起调用
解决办法(二选一即可)
降级ChromaDB到兼容版本
执行命令安装适配旧版LangChain的ChromaDB版本:pip install chromadb==0.3.29升级LangChain到最新稳定版
新版LangChain已适配ChromaDB的参数变更,执行升级命令:pip install --upgrade langchain
验证
重新运行你的代码,错误应该会消失。如果仍有问题,检查是否存在多环境版本冲突,建议在虚拟环境中操作。
内容的提问来源于stack exchange,提问作者Ishaan Gupta
相关产品推荐
相关产品推荐

