Gmail 工具包
这将帮助您开始使用 Gmail 工具包。此工具包与 Gmail API 交互,用于读取消息、起草和发送消息等等。有关所有 GmailToolkit 功能和配置的详细文档,请参阅 API 参考。
设置
要使用此工具包,您需要按照 Gmail API 文档 中说明的方式设置凭据。下载 credentials.json
文件后,您就可以开始使用 Gmail API 了。
安装
此工具包位于 langchain-google-community
包中。我们需要 gmail
额外组件。
%pip install -qU langchain-google-community\[gmail\]
为了启用单个工具的自动追踪,请设置您的 LangSmith API 密钥
# os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
实例化
默认情况下,工具包读取本地 credentials.json
文件。您也可以手动提供一个 Credentials
对象。
from langchain_google_community import GmailToolkit
toolkit = GmailToolkit()
API 参考:GmailToolkit
自定义身份验证
在幕后,使用以下方法创建了一个 googleapi
资源。您可以手动构建 googleapi
资源以进行更多身份验证控制。
from langchain_google_community.gmail.utils import (
build_resource_service,
get_gmail_credentials,
)
# Can review scopes here https://developers.google.com/gmail/api/auth/scopes
# For instance, readonly scope is 'https://www.googleapis.com/auth/gmail.readonly'
credentials = get_gmail_credentials(
token_file="token.json",
scopes=["https://mail.google.com/"],
client_secrets_file="credentials.json",
)
api_resource = build_resource_service(credentials=credentials)
toolkit = GmailToolkit(api_resource=api_resource)
工具
查看可用工具
tools = toolkit.get_tools()
tools
[GmailCreateDraft(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailSendMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailSearch(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailGetMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailGetThread(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>)]
在代理中使用
下面展示了如何将工具包集成到 代理中。
我们需要一个 LLM 或聊天模型
选择 聊天模型
pip install -qU "langchain[google-genai]"
import getpass
import os
if not os.environ.get("GOOGLE_API_KEY"):
os.environ["GOOGLE_API_KEY"] = getpass.getpass("Enter API key for Google Gemini: ")
from langchain.chat_models import init_chat_model
llm = init_chat_model("gemini-2.0-flash", model_provider="google_genai")
from langgraph.prebuilt import create_react_agent
agent_executor = create_react_agent(llm, tools)
API 参考:create_react_agent
example_query = "Draft an email to fake@fake.com thanking them for coffee."
events = agent_executor.stream(
{"messages": [("user", example_query)]},
stream_mode="values",
)
for event in events:
event["messages"][-1].pretty_print()
================================[1m Human Message [0m=================================
Draft an email to fake@fake.com thanking them for coffee.
==================================[1m Ai Message [0m==================================
Tool Calls:
create_gmail_draft (call_slGkYKZKA6h3Mf1CraUBzs6M)
Call ID: call_slGkYKZKA6h3Mf1CraUBzs6M
Args:
message: Dear Fake,
I wanted to take a moment to thank you for the coffee yesterday. It was a pleasure catching up with you. Let's do it again soon!
Best regards,
[Your Name]
to: ['fake@fake.com']
subject: Thank You for the Coffee
=================================[1m Tool Message [0m=================================
Name: create_gmail_draft
Draft created. Draft Id: r-7233782721440261513
==================================[1m Ai Message [0m==================================
I have drafted an email to fake@fake.com thanking them for the coffee. You can review and send it from your email draft with the subject "Thank You for the Coffee".
API 参考
有关所有 GmailToolkit
功能和配置的详细文档,请参阅 API 参考。