Skip to main content
Open In Colab在 GitHub 上打开

Google 云端硬盘

此笔记本将介绍如何将 LangChain 连接到Google Drive API.

先决条件

  1. 创建 Google Cloud 项目或使用现有项目
  2. 启用 Google Drive API
  3. 为桌面应用程序授权凭据
  4. pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

检索 Google 文档数据的说明

默认情况下,GoogleDriveToolsGoogleDriveWrapper期望credentials.json文件~/.credentials/credentials.json,但这可以通过设置GOOGLE_ACCOUNT_FILE环境变量设置为custom/path/to/credentials.json. 的位置token.json使用相同的目录(或使用参数token_path).请注意,token.json将在您首次使用该工具时自动创建。

GoogleDriveSearchTool可以检索包含某些请求的文件选择。

默认情况下,如果您使用folder_id,此文件夹中的所有文件都可以检索到Document,如果名称与查询匹配。

%pip install --upgrade --quiet  google-api-python-client google-auth-httplib2 google-auth-oauthlib langchain-community

您可以从 URL 获取文件夹和文档 ID:

特殊值root适用于您的个人住宅。

folder_id = "root"
# folder_id='1yucgL9WGgWZdM1TOuKkeghlPizuzMYb5'

默认情况下,所有具有这些 mime 类型的文件都可以转换为Document.

  • 文本/文本
  • 文本/纯文本
  • 文本/html
  • 文本/CSV
  • 文本/Markdown
  • 图片/png
  • 图片/jpeg
  • 应用程序/epub+zip
  • 申请/PDF
  • 应用程序/RTF
  • application/vnd.google-apps.document (GDoc)
  • application/vnd.google-apps.presentation (GSlide)
  • application/vnd.google-apps.spreadsheet (GSheet)
  • application/vnd.google.colaboratory(笔记本 colab)
  • application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)

可以更新或自定义此内容。请参阅GoogleDriveAPIWrapper.

但是,必须安装相应的软件包。

%pip install --upgrade --quiet  unstructured langchain-googledrive
import os

from langchain_googledrive.tools.google_drive.tool import GoogleDriveSearchTool
from langchain_googledrive.utilities.google_drive import GoogleDriveAPIWrapper

os.environ["GOOGLE_ACCOUNT_FILE"] = "custom/path/to/credentials.json"

# By default, search only in the filename.
tool = GoogleDriveSearchTool(
api_wrapper=GoogleDriveAPIWrapper(
folder_id=folder_id,
num_results=2,
template="gdrive-query-in-folder", # Search in the body of documents
)
)
import logging

logging.basicConfig(level=logging.INFO)
tool.run("machine learning")
tool.description
"A wrapper around Google Drive Search. Useful for when you need to find a document in google drive. The input should be formatted as a list of entities separated with a space. As an example, a list of keywords is 'hello word'."

在 ReAct 代理中使用该工具

要创建使用 Google Jobs 工具的代理,请安装 Langgraph

%pip install --upgrade --quiet langgraph langchain-openai

并使用create_react_agent功能来初始化 ReAct 代理。您还需要设置您的OPEN_API_KEY(访问 https://platform.openai.com)才能访问 OpenAI 的聊天模型。

import os

from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_react_agent

os.environ["OPENAI_API_KEY"] = "your-openai-api-key"


llm = init_chat_model("gpt-4o-mini", model_provider="openai", temperature=0)
agent = create_react_agent(llm, tools=[tool])

events = agent.stream(
{"messages": [("user", "Search in google drive, who is 'Yann LeCun' ?")]},
stream_mode="values",
)
for event in events:
event["messages"][-1].pretty_print()