Google Drive
Google Drive 是由 Google 开发的文件存储和同步服务。
本笔记本涵盖如何从 Google Drive
加载文档。目前,仅支持 Google Docs
。
前提条件
- 创建一个 Google Cloud 项目或使用现有项目
- 启用 Google Drive API
- 为桌面应用授权凭据
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
🧑 导入您的 Google Docs 数据的说明
将环境变量 GOOGLE_APPLICATION_CREDENTIALS
设置为空字符串 (""
)。
默认情况下,GoogleDriveLoader
期望credentials.json
文件位于~/.credentials/credentials.json
,但可以使用credentials_path
关键字参数进行配置。token.json
也是同样的情况 - 默认路径:~/.credentials/token.json
,构造函数参数:token_path
。
第一次使用GoogleDriveLoader时,您将在浏览器中看到用户身份验证的同意屏幕。身份验证后,token.json
将自动在提供的路径或默认路径下创建。此外,如果该路径下已经存在token.json
,则不会提示进行身份验证。
GoogleDriveLoader
可以从一组Google文档ID或文件夹ID加载。您可以从URL中获取您的文件夹和文档ID:
- 文件夹:https://drive.google.com/drive/u/0/folders/1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5 -> 文件夹ID是
"1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5"
- 文档:https://docs.google.com/document/d/1bfaMQ18_i56204VaQDVeAFpqEijJTgvurupdEDiaUQw/edit -> 文档ID是
"1bfaMQ18_i56204VaQDVeAFpqEijJTgvurupdEDiaUQw"
%pip install --upgrade --quiet langchain-google-community[drive]
from langchain_google_community import GoogleDriveLoader
loader = GoogleDriveLoader(
folder_id="1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5",
token_path="/path/where/you/want/token/to/be/created/google_token.json",
# Optional: configure whether to recursively fetch files from subfolders. Defaults to False.
recursive=False,
)
docs = loader.load()
当您传递一个 folder_id
时,默认会加载所有类型为文档、表格和PDF的文件。您可以通过传递 file_types
参数来修改此行为。
loader = GoogleDriveLoader(
folder_id="1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5",
file_types=["document", "sheet"],
recursive=False,
)
传递可选文件加载器
在处理除 Google 文档和 Google 表格之外的文件时,传递一个可选的文件加载器给 GoogleDriveLoader
是很有帮助的。如果您传递一个文件加载器,该文件加载器将用于没有 Google 文档或 Google 表格 MIME 类型的文档。以下是如何使用文件加载器从 Google Drive 加载 Excel 文档的示例。
<!--IMPORTS:[{"imported": "UnstructuredFileIOLoader", "source": "langchain_community.document_loaders", "docs": "https://python.langchain.com/api_reference/community/document_loaders/langchain_community.document_loaders.unstructured.UnstructuredFileIOLoader.html", "title": "Google Drive"}]-->
from langchain_community.document_loaders import UnstructuredFileIOLoader
from langchain_google_community import GoogleDriveLoader
file_id = "1x9WBtFPWMEAdjcJzPScRsjpjQvpSo_kz"
loader = GoogleDriveLoader(
file_ids=[file_id],
file_loader_cls=UnstructuredFileIOLoader,
file_loader_kwargs={"mode": "elements"},
)
docs = loader.load()
docs[0]
您还可以使用以下模式处理包含混合文件和 Google 文档/表格的文件夹:
folder_id = "1asMOHY1BqBS84JcRbOag5LOJac74gpmD"
loader = GoogleDriveLoader(
folder_id=folder_id,
file_loader_cls=UnstructuredFileIOLoader,
file_loader_kwargs={"mode": "elements"},
)
docs = loader.load()
docs[0]