首页 > 其他分享 >如何使用GMail API加载数据:实战指南

如何使用GMail API加载数据:实战指南

时间:2024-12-30 10:27:16浏览次数:10  
标签:google auth token API creds import GMail 邮件 加载

如何使用GMail API加载数据:实战指南

老铁们,今天我们来聊聊怎么从GMail中加载数据,这是个相当实用的功能,尤其是在构建对话模型时。说白了,这个技术点其实不难,不过有些细节还是需要注意的。我先前踩过这个坑,现在分享下经验。

技术背景介绍

在处理电子邮件数据时,我们往往需要获取特定的邮件对话作为训练数据。通过Google的GMail API,我们可以实现自动化的数据提取。我们的目标是获取你发送的所有邮件,并追溯你所回复的上一个邮件,形成一个完整的上下文对话。

原理深度解析

这个加载器的原理其实很简单:首先,它会找出你发送的所有邮件,然后定位你回复的邮件,再抓取你所回复的那封邮件。这波操作可以说是相当丝滑,直接把两封邮件形成一个训练样本。不过,它有个不小的局限,那就是它只把上一封邮件作为上下文。

实战代码演示

下面是如何使用GMail API的详细步骤,代码已经为大家准备好了:

1. 设置Google开发者账号

  • 前往Google Developer Console,创建一个项目,并为该项目启用GMail API。
  • 下载 credentials.json 文件,这个文件会是后续认证的关键。

2. 安装Google客户端库

首先,运行以下命令来安装所需的Python库:

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

3. 授权并获取凭证

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
if os.path.exists("email_token.json"):
    creds = Credentials.from_authorized_user_file("email_token.json", SCOPES)
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("creds.json", SCOPES)
        creds = flow.run_local_server(port=0)
    with open("email_token.json", "w") as token:
        token.write(creds.to_json())

4. 加载邮件数据

一旦你配置了认证,使用下面的代码实现数据加载:

from langchain_community.chat_loaders.gmail import GMailLoader

loader = GMailLoader(creds=creds, n=3)

data = loader.load()

len(data)

5. 映射AI消息

使用 map_ai_messages 方法,将特定发件人标记为AI消息,即训练数据:

from langchain_community.chat_loaders.utils import map_ai_messages

training_data = list(map_ai_messages(data, sender="Harrison Chase <hchase@langchain.com>"))

优化建议分享

对于老铁们在使用过程中遇到的稳定性问题,建议使用一些代理服务来提高访问的稳定性和速度。

补充说明和总结

为了简化构建大规模模型的过程,我个人一直在用 https://yunwu.ai 提供一站式大模型解决方案。它可以帮助你更高效地处理这些数据流。

今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~

—END—

标签:google,auth,token,API,creds,import,GMail,邮件,加载
From: https://blog.csdn.net/dfitghjk/article/details/144757123

相关文章

  • wx.onApiCategoryChange
    wx.onApiCategoryChange(functionlistener)基础库2.33.0开始支持,低版本需做兼容处理。小程序插件:不支持功能描述监听API类别变化事件参数functionlistenerAPI类别变化事件的监听函数参数Objectres属性类型说明apiCategorynumberAPI类别......
  • wx.offApiCategoryChange
    wx.offApiCategoryChange(functionlistener)基础库2.33.0开始支持,低版本需做兼容处理。小程序插件:不支持功能描述移除API类别变化事件的监听函数参数functionlisteneronApiCategoryChange传入的监听函数。不传此参数则移除所有监听函数。示例代码constlisten......
  • wx.getApiCategory
    stringwx.getApiCategory()基础库2.33.0开始支持,低版本需做兼容处理。小程序插件:不支持功能描述获取当前API类别返回值stringAPI类别不同apiCategory场景下的API限制X表示API被限制无法使用;不在表格中的API不限制。defaultnativeFunctionalized......
  • WebApiDemo
    以下是一个使用ASP.NETWebAPI(基于.NETFramework)的简单示例。1.创建ASP.NETWebAPI项目首先,确保你已经安装了VisualStudio,并且选择了包含ASP.NET和Web开发工作负载的安装选项。打开VisualStudio。选择“创建新项目”。在搜索栏中输入“ASP.NETWeb应用程序(.NETFra......
  • rasa nlu 传递信息及 REST API 替代 rasa nlu
    1.4rasanlu传递信息及RESTAPI替代rasanlu1.4.1获取rasanlu传给rasacore的响应开始想在rasa内进行拦截,经过测试,难以实现所以采用接口方式获取启动rasanlu服务rasarun--enable-api请求:响应:{ "text":"今天天气怎么样", "intent":{ "name":"as......
  • 解决第三方 JS SDK 代码(比如 GA.js )无法正常加载的问题
    昨天给网站CheckNumber.AI加上了GA统计代码,查看源代码时发现代码已经加进去了,但是在Network里面没有看到正常的加载请求。于是一步一步检查一下到底是什么原因导致的。首先检查第三方代码是否能正常打开,查看源代码,直接点击GA的URL,访问成功。再来确认网站的CSP(Conten......
  • 最新版Chrome浏览器加载ActiveX控件技术——alWebPlugin中间件V2.0.28-迎春版发布
     allWebPlugin简介   allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefox、Edge、360......
  • 聚合电商API接口平台:让数据成为生产力
    聚合电商API接口平台通过整合多个电商平台的API接口,为商家和开发者提供一站式的数据服务,旨在帮助商家和开发者将数据转化为生产力,从而推动业务的发展。以下是对聚合电商API接口平台的详细解析:一、平台概述聚合电商API接口平台的核心价值在于整合多个电商平台的API接口,实现数......
  • 电商 API 接入技术要点实战指南
    以下是一份电商API接入技术要点实战指南,包括代码示例:一、明确目标与需求在接入电商API之前,首先需要明确项目的目标、需求以及预期的成果。确定需要从API中获取哪些数据,以及如何将这些数据应用到自己的业务流程中。二、注册与认证在选定的电商平台(如1688、淘宝、京东等)注册......
  • 这是最新的方法获取微信头像和昵称,其它所有的方法都已经失效,所有AI给的答案也都是旧的
    文章目录1、my.wxml2、my.js3、wx.getStorageInfo4、微信小程序的本地存储能存储多久?wx.getUserProfile:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.htmlwx.getUserInfo:https://developers.weixin.qq.com/mi......