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

Windows系统下Chroma生成Embeddings时locale无效错误求助

问题:Windows下Chroma生成嵌入时的Locale错误

我正在跟着《用开源本地LLM从零构建Corrective RAG》教程及对应源码搭建Corrective RAG,执行索引步骤时遇到错误:
RuntimeError: Failed to generate embeddings: locale::facet::_S_create_c_locale name not valid

已排查情况:怀疑是Windows系统与Chroma包的兼容性问题,用Python Locale包检查系统区域设置,Python环境显示正常但Chroma无法识别,求解决建议。

执行的代码如下:

# Load
url = "https://lilianweng.github.io/posts/2023-06-23-agent/"
loader = WebBaseLoader(url)
docs = loader.load()

# Split
text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    chunk_size=500, chunk_overlap=100
)
all_splits = text_splitter.split_documents(docs)

# Embed and index
if run_local == "Yes":
    embedding = GPT4AllEmbeddings()
else:
    embedding = MistralAIEmbeddings(mistral_api_key=mistral_api_key)

# Index
vectorstore = Chroma.from_documents(
    documents=all_splits,
    collection_name="rag-chroma",
    embedding=embedding,
)
retriever = vectorstore.as_retriever()

解决建议

  • 强制设置Python全局Locale:在代码最开头添加以下代码,指定兼容的Locale值(优先尝试英语美国区域,若无效替换为Windows本地Locale名称如English_US或zh_CN.UTF-8):

    import locale
    locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
    
  • 升级依赖包:执行命令更新Chroma及相关组件,修复已知兼容性bug:

    pip install --upgrade chromadb langchain langchain-community gpt4all
    
  • 替换嵌入模型测试:暂时切换到SentenceTransformer类嵌入模型,排查是否为GPT4AllEmbeddings与Chroma的组合问题:

    from langchain.embeddings import SentenceTransformerEmbeddings
    embedding = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
    
  • 通过系统环境变量设置Locale:在运行Python脚本前,先在命令行执行以下指令:

    set LC_ALL=en_US.UTF-8
    set LANG=en_US.UTF-8
    

    再启动你的代码脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:31:18