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

LangChain load_summarize_chain跨主题内容混入问题求助

解决LangChain load_summarize_chain混入其他主题内容的方案
  • 确保文档加载完全隔离
    每次处理目标文件夹时,重新加载该文件夹内的文档,不复用之前的文档集合。使用DirectoryLoader时明确指定当前文件夹路径,避免保留全局文档列表变量,每次处理前重新初始化加载器并加载文档。
    示例代码:

    from langchain.document_loaders import DirectoryLoader
    
    # 每次处理新文件夹时重新执行以下代码
    loader = DirectoryLoader("./path/to/target_folder")
    target_docs = loader.load()
    

    加载后可通过打印len(target_docs)或遍历文档内容,确认仅包含目标文件夹的文件。

  • 每次任务重新创建总结链
    不要复用同一个load_summarize_chain实例,每次处理新文件夹时重新生成链对象,避免链内部残留之前任务的状态信息。
    示例代码:

    from langchain.chains.summarize import load_summarize_chain
    from langchain.llms import OpenAI
    
    # 每次处理新任务时重新初始化链
    llm = OpenAI(model_name="gpt-3.5-turbo-instruct")
    chain = load_summarize_chain(llm, chain_type="map_reduce")
    # 仅传入当前文件夹的文档进行总结
    summary = chain.run(target_docs)
    
  • 严格隔离LLM输入上下文
    检查map阶段的prompt模板,确保仅引用当前处理的文档片段,不携带任何之前任务的文本内容。由于gpt-3.5-turbo-instruct是文本补全模型,无需会话管理,但要保证每次传入链的输入仅包含当前文件夹文档的分块数据。

  • 过滤非目标文件夹文档
    加载文档后添加路径验证逻辑,排除不属于目标文件夹的文件(如误加载的上级目录文件、符号链接等)。
    示例代码:

    target_folder_path = "./path/to/target_folder"
    # 过滤出路径包含目标文件夹的文档
    filtered_docs = [doc for doc in target_docs if target_folder_path in doc.metadata["source"]]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:28:10