跳到主要内容
此加载器演示如何从 GMail 加载数据。您可能希望以多种方式从 GMail 加载数据。此加载器目前在如何执行此操作方面相当主观。它的工作方式是:首先查找您已发送的所有邮件。然后查找您回复上一封邮件的邮件。然后它会获取该上一封邮件,并创建该邮件的训练示例,然后是您的邮件。 请注意,这里存在明显的局限性。例如,所有创建的示例都只查看上一封邮件以获取上下文。 使用方法:
  • 设置 Google 开发者帐户:转到 Google 开发者控制台,创建一个项目,并为该项目启用 Gmail API。这将为您提供一个 credentials.json 文件,您稍后会用到。
  • 安装 Google 客户端库:运行以下命令安装 Google 客户端库
pip install -qU  google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ["https://www.googleapis.com/auth/gmail.readonly"]


creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists("email_token.json"):
    creds = Credentials.from_authorized_user_file("email_token.json", SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file(
            # your creds file here. Please create json file as here https://cloud.google.com/docs/authentication/getting-started
            "creds.json",
            SCOPES,
        )
        creds = flow.run_local_server(port=0)
    # Save the credentials for the next run
    with open("email_token.json", "w") as token:
        token.write(creds.to_json())
from langchain_community.chat_loaders.gmail import GMailLoader
loader = GMailLoader(creds=creds, n=3)
data = loader.load()
# Sometimes there can be errors which we silently ignore
len(data)
2
from langchain_community.chat_loaders.utils import (
    map_ai_messages,
)
# This makes messages sent by hchase@langchain.com the AI Messages
# This means you will train an LLM to predict as if it's responding as hchase
training_data = list(
    map_ai_messages(data, sender="Harrison Chase [hchase@langchain.com](mailto:hchase@langchain.com)")
)

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.