langchain SharepointLoader 无法按预期工作,尽管最新的合并 '从 O365BaseLoader 传播文档元数据',

kcugc4gi  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(33)

检查其他资源

  • 我为这个问题添加了一个非常描述性的标题。
  • 我在LangChain文档中使用集成搜索进行搜索。
  • 我使用GitHub搜索找到了一个类似的问题,但没有找到。
  • 我确信这是LangChain中的一个bug,而不是我的代码。
  • 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。

示例代码

from langchain_community.document_loaders.sharepoint import SharePointLoader

# O365_CLIENT_ID, O365_CLIENT_SECRET included in the environment
# first 'manual' authentication was successful throwing the same error as included below

loader = SharePointLoader(document_library_id=<LIBRARY_ID>, recursive=True, auth_with_token=False)
documents = loader.load()

错误消息和堆栈跟踪(如果适用)

ValueError                                Traceback (most recent call last)
Cell In[21], line 14
     11 documents = loader.lazy_load()
     13 # Process each document
---> 14 for doc in documents:
     15     try:
     16         # Ensure MIME type is available or set a default based on file extension
     17         if 'mimetype' not in doc.metadata or not doc.metadata['mimetype']:

File ~/.local/lib/python3.11/site-packages/langchain_community/document_loaders/sharepoint.py:86, in SharePointLoader.lazy_load(self)
     84     raise ValueError("Unable to fetch root folder")
     85 for blob in self._load_from_folder(target_folder):
---> 86     for blob_part in blob_parser.lazy_parse(blob):
     87         blob_part.metadata.update(blob.metadata)
     88         yield blob_part

File ~/.local/lib/python3.11/site-packages/langchain_community/document_loaders/parsers/generic.py:61, in MimeTypeBasedParser.lazy_parse(self, blob)
     58 mimetype = blob.mimetype
     60 if mimetype is None:
---> 61     raise ValueError(f"{blob} does not have a mimetype.")
     63 if mimetype in self.handlers:
     64     handler = self.handlers[mimetype]

ValueError: data=None mimetype=None encoding='utf-8' path=PosixPath('/tmp/tmp92nu0bdz/test_document_on_SP.docx') metadata={} does not have a mimetype.

描述

  • 我正在尝试搭建一个Proof Of Concept RAG聊天机器人,它使用SharePointLoader集成
  • 身份验证过程(通过复制粘贴URL)是成功的,我也有一个auth_token,可以使用。
  • 然而,在第一个.docx文档上,.load方法失败了(尽管从SharePoint成功获取了.pdf数据)
  • 错误消息提到临时目录中的文件路径,但实际上在那里找不到该文件。
  • 我的猜测是,这个问题可能与在下载过程中将关于文档的元数据丢失到临时存储有关。我不太确定根本原因,但这是一个棘手的问题,可能需要更多人关注。感谢@MacanPN指出这一点!如果我们能进行任何进一步的检查以更好地理解这个问题,我们将不胜感激。
  • 使用inspect,我验证了我的langchain版本中存在合并更改,所以我有点不知所措。
  • 此外,根据单个成功的pdf加载,像web_url这样的元数据属性也丢失了:
metadata={'source': '/tmp/tmpw8sfa_52/test_file.pdf', 
'file_path': '/tmp/tmpw8sfa_52/test_file.pdf',
 'page': 0, 'total_pages': 1, 'format': 'PDF 1.4', 
'title': '', 'author': '', 'subject': '', 'keywords': '',
 'creator': 'Chromium', 'producer': 'Skia/PDF m101', 
'creationDate': "D:20240503115507+00'00'", 'modDate': "D:20240503115507+00'00'",
 'trapped': ''}

系统信息

目前我正在运行代码的Unstructured docker容器(downloads.unstructured.io/unstructured-io/unstructured:latest),但基于Ubuntu 20.04和python:3.11-slim的其他Linux平台也没有成功。
O365和PyMuPDF等软件包也已安装。
/usr/src/app $ python -m langchain_core.sys_info

系统信息

操作系统:Linux
操作系统版本: #1 SMP Fri Apr 2 22:23:49 UTC 2021
Python版本:3.11.9 (main, May 23 2024, 20:26:53) [GCC 13.2.0]

软件包信息

langchain_core: 0.2.2
langchain: 0.2.1
langchain_community: 0.2.1
langsmith: 0.1.62
langchain_google_vertexai: 1.0.4
langchain_huggingface: 0.0.3
langchain_text_splitters: 0.2.0
langchain_voyageai: 0.1.1

没有安装的软件包(不一定是个问题)

以下软件包未找到:
langgraph
langserve

ux6nzvsh

ux6nzvsh1#

我的直觉是,这个问题可能与在下载过程中将关于文档的元数据丢失有关。我不太确定根本原因,但这是一个棘手的问题,可能需要更多人关注。感谢@MacanPN指出这一点!如果我们能进行任何洞察力或进一步检查以更好地理解这个问题,将不胜感激。

相关问题