Skip to main content

谷歌云端硬盘 (Google Drive)

谷歌云端硬盘 是由谷歌开发的文件存储和同步服务。

本笔记本介绍如何从谷歌云端硬盘加载文档。目前,仅支持加载谷歌文档

先决条件

  1. 创建一个谷歌云项目或使用现有项目
  2. 启用谷歌云端硬盘 API
  3. 为桌面应用程序授权凭据
  4. pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

🧑 从谷歌文档中提取数据的说明

默认情况下,GoogleDriveLoader期望credentials.json文件位于~/.credentials/credentials.json,但可以使用credentials_path关键字参数进行配置。token.json也是如此 - token_path。请注意,第一次使用加载器时,token.json将自动创建。

GoogleDriveLoader可以从谷歌文档文档ID列表或文件夹ID加载。您可以从URL中获取文件夹和文档ID:

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
from langchain.document_loaders import GoogleDriveLoader
loader = GoogleDriveLoader(
folder_id="1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5",
# 可选:配置是否递归从子文件夹中获取文件。默认为False。
recursive=False,
)
docs = loader.load()

当您传递folder_id时,默认加载所有类型为文档、表格和PDF的文件。您可以通过传递file_types参数来修改此行为

loader = GoogleDriveLoader(
folder_id="1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5",
file_types=["document", "sheet"]
recursive=False
)

传入可选的文件加载器

当处理谷歌文档和谷歌表格以外的文件时,将可选的文件加载器传递给GoogleDriveLoader可能会有所帮助。如果传入文件加载器,该文件加载器将用于没有谷歌文档或谷歌表格MIME类型的文档。以下是使用文件加载器从谷歌云端硬盘加载Excel文档的示例。

from langchain.document_loaders import GoogleDriveLoader
from langchain.document_loaders import UnstructuredFileIOLoader
file_id = "1x9WBtFPWMEAdjcJzPScRsjpjQvpSo_kz"
loader = GoogleDriveLoader(
file_ids=[file_id],
file_loader_cls=UnstructuredFileIOLoader,
file_loader_kwargs={"mode": "elements"},
)
docs = loader.load()
docs[0]
    Document(page_content='\n  \n    \n      Team\n      Location\n      Stanley Cups\n    \n    \n      Blues\n      STL\n      1\n    \n    \n      Flyers\n      PHI\n      2\n    \n    \n      Maple Leafs\n      TOR\n      13\n    \n  \n', metadata={'filetype': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'page_number': 1, 'page_name': 'Stanley Cups', 'text_as_html': '<table border="1" class="dataframe">\n  <tbody>\n    <tr>\n      <td>Team</td>\n      <td>Location</td>\n      <td>Stanley Cups</td>\n    </tr>\n    <tr>\n      <td>Blues</td>\n      <td>STL</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <td>Flyers</td>\n      <td>PHI</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <td>Maple Leafs</td>\n      <td>TOR</td>\n      <td>13</td>\n    </tr>\n  </tbody>\n</table>', 'category': 'Table', 'source': 'https://drive.google.com/file/d/1aA6L2AR3g0CR-PW03HEZZo4NaVlKpaP7/view'})

您还可以使用以下模式处理包含文件和谷歌文档/表格的文件夹:

folder_id = "1asMOHY1BqBS84JcRbOag5LOJac74gpmD"
loader = GoogleDriveLoader(
folder_id=folder_id,
file_loader_cls=UnstructuredFileIOLoader,
file_loader_kwargs={"mode": "elements"},
)
docs = loader.load()
docs[0]
    Document(page_content='\n  \n    \n      Team\n      Location\n      Stanley Cups\n    \n    \n      Blues\n      STL\n      1\n    \n    \n      Flyers\n      PHI\n      2\n    \n    \n      Maple Leafs\n      TOR\n      13\n    \n  \n', metadata={'filetype': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'page_number': 1, 'page_name': 'Stanley Cups', 'text_as_html': '<table border="1" class="dataframe">\n  <tbody>\n    <tr>\n      <td>Team</td>\n      <td>Location</td>\n      <td>Stanley Cups</td>\n    </tr>\n    <tr>\n      <td>Blues</td>\n      <td>STL</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <td>Flyers</td>\n      <td>PHI</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <td>Maple Leafs</td>\n      <td>TOR</td>\n      <td>13</td>\n    </tr>\n  </tbody>\n</table>', 'category': 'Table', 'source': 'https://drive.google.com/file/d/1aA6L2AR3g0CR-PW03HEZZo4NaVlKpaP7/view'})