谷歌云端硬盘 (Google Drive)
谷歌云端硬盘 是由谷歌开发的文件存储和同步服务。
本笔记本介绍如何从谷歌云端硬盘
加载文档。目前,仅支持加载谷歌文档
。
先决条件
- 创建一个谷歌云项目或使用现有项目
- 启用谷歌云端硬盘 API
- 为桌面应用程序授权凭据
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:
- 文件夹: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 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'})