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

使用LangChain Chroma生成向量数据库时遇设备不存在错误求助

解决方案

错误根源是Chroma初始化时尝试读取.env文件,但系统无法找到对应的设备路径(常见于OneDrive同步路径异常,或.env文件路径无效)。以下是具体解决步骤:

  • 检查并处理.env文件
    确认当前Python工作目录下的.env文件是否存在,若存在:

    • 检查文件路径是否关联了未挂载的存储设备(如未同步的OneDrive文件夹),可将项目移出此类路径,或确保设备正常挂载。
    • 若不需要.env文件,直接删除它即可。
  • 显式配置OpenAI API密钥
    OpenAIEmbeddings需要API密钥,避免依赖.env文件,可直接在代码中传入:

    from langchain.vectorstores import Chroma
    from langchain.embeddings.openai import OpenAIEmbeddings
    
    persist_directory = "C:/Users/shang/Documents/test/"
    # 替换为你的OpenAI API密钥
    embedding = OpenAIEmbeddings(openai_api_key="your-openai-api-key")
    vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
    

    也可通过系统环境变量设置OPENAI_API_KEY,无需在代码中硬编码。

  • 显式配置Chroma客户端设置
    初始化Chroma时指定客户端配置,避免自动加载.env:

    from langchain.vectorstores import Chroma
    from langchain.embeddings.openai import OpenAIEmbeddings
    from chromadb.config import Settings
    
    persist_directory = "C:/Users/shang/Documents/test/"
    embedding = OpenAIEmbeddings(openai_api_key="your-openai-api-key")
    
    client_settings = Settings(
        chroma_db_impl="duckdb+parquet",
        persist_directory=persist_directory,
        anonymized_telemetry=False
    )
    
    vectordb = Chroma(
        persist_directory=persist_directory,
        embedding_function=embedding,
        client_settings=client_settings
    )
    
  • 确保持久化目录有效
    检查目标目录是否存在,若不存在则创建:

    import os
    persist_directory = "C:/Users/shang/Documents/test/"
    os.makedirs(persist_directory, exist_ok=True)
    

    同时确认Python进程对该目录有读写权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:56:32