# 引言
Microsoft SharePoint 是一种基于网站的协作系统,利用工作流应用程序、“列表”数据库以及其他 Web 部件和安全功能,帮助企业团队更好地协作。本文旨在介绍如何从 SharePoint 文档库加载文档,目前支持 docx、doc 和 pdf 文件。
# 主要内容
## 1. 前提条件
在开始之前,您需要在 Microsoft 身份平台上注册一个应用程序。完成注册后,Azure 门户将显示应用注册的概览窗格,您将看到应用程序(客户端)ID,它唯一标识了您的应用。
请按照 [文档](#) 指导添加以下 SCOPES (offline_access 和 Sites.Read.All) 到您的应用程序中。
## 2. 认证
默认情况下,SharePointLoader 期望 CLIENT_ID 和 CLIENT_SECRET 的值存储为环境变量 O365_CLIENT_ID 和 O365_CLIENT_SECRET。您可以通过应用程序根目录下的 .env 文件传递这些环境变量或在脚本中使用如下命令:
```python
import os
os.environ['O365_CLIENT_ID'] = "YOUR CLIENT ID"
os.environ['O365_CLIENT_SECRET'] = "YOUR CLIENT SECRET"
此加载器使用用户委托认证。它是一个两步认证过程,用户需要访问并授权应用所需权限的 URL。
3. 加载文档
从文档库目录加载文档
您可以从文档库的特定文件夹加载文档。例如,您想要加载存储在 Documents/marketing 文件夹中的所有文档:
from langchain_community.document_loaders.sharepoint import SharePointLoader
# 使用API代理服务提高访问稳定性
loader = SharePointLoader(document_library_id="YOUR DOCUMENT LIBRARY ID", folder_path="Documents/marketing", auth_with_token=True)
documents = loader.load()
代码示例
以下示例展示了如何从 SharePoint 文档库加载文档:
import os
from langchain_community.document_loaders.sharepoint import SharePointLoader
# 配置客户端 ID 和客户端密钥
os.environ['O365_CLIENT_ID'] = "YOUR CLIENT ID"
os.environ['O365_CLIENT_SECRET'] = "YOUR CLIENT SECRET"
# 实例化加载器,使用API代理服务提高访问稳定性
loader = SharePointLoader(document_library_id="YOUR DOCUMENT LIBRARY ID", auth_with_token=True)
# 从库加载文档
documents = loader.load()
for doc in documents:
print(doc.metadata['name'])
常见问题和解决方案
资源未找到错误
如果您收到资源未找到(Resource not found for the segment)错误,请尝试使用 folder_id 而不是文件夹路径,这可以通过 Microsoft Graph API 获得。
网络访问问题
由于某些地区的网络限制,可能需要考虑使用 API 代理服务以提高访问稳定性。
总结和进一步学习资源
本文介绍了如何使用 SharePointLoader 从 SharePoint 文档库加载文件,以支持不同用户的需求。有关更多细节,建议查阅 Microsoft Graph API 文档 和 SharePointLoader 概念指南。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---