返回顶部
r

ride-receipts-gateway-llm骑行收据网关

Build a local SQLite ride-history database from Gmail ride receipt emails using gog for fetch and OpenClaw Gateway /v1/responses for extraction. Use when you want a portable Gateway-based pipeline that fetches taxi receipts into emails.json, iterates through each email with the Gateway-backed LLM, writes rides.json, and inserts the results into SQLite.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.12
安全检测
已通过
445
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ride-receipts-gateway-llm

ride-receipts-gateway-llm

构建一个乘车收据处理管道,将Gmail收据抓取到一个emails.json文件中,将每封邮件发送到本地OpenClaw Gateway的/v1/responses端点进行结构化提取,写入一个rides.json数组,并将结果插入到SQLite数据库中。

开始前准备

  • - 需要已认证目标Gmail账户的gog命令行工具。
  • 在抓取前始终运行gog auth list,即使用户已指定账户名称。
  • 如果配置了多个账户,使用真实的账户邮箱提供明确选择,例如我应该使用哪个账户:(A) name1@example.com 还是 (B) name2@example.com?不要概括为默认或让用户推断存在哪些账户。
  • 如果只配置了一个账户,直接使用并简要提及。
  • 不要假设存在名为default的账户。
  • 需要可访问的本地OpenClaw Gateway。
  • 需要通过OPENCLAWGATEWAYTOKEN或~/.openclaw/openclaw.json获取Gateway认证令牌。
  • 需要启用Gateway的HTTP Responses端点。
  • 询问用户日期范围:全部时间、某个日期之后、或两个日期之间。
  • 将收据邮件视为敏感的财务/位置数据。
  • 告知用户emails.json会在本地存储抓取的收据邮件,可能包含完整的HTML收据内容。
  • 在提取前,确认用户同意将原始收据邮件JSON/HTML发送到活跃的本地/私有Gateway支持的模型。
  • 优先使用回环或私有Gateway目标。仅在用户明确接受该数据流时才使用非本地Gateway。

输出

主要产物:

  • - data/gateway-llm/emails.json — 抓取的收据邮件,以JSON数组形式存储;可能包含完整的HTML收据内容
  • data/gateway-llm/rides.json — 提取的乘车记录,以JSON数组形式存储
  • data/gateway-llm/rides.sqlite — 可查询的SQLite数据库,包含规范化的乘车字段及extractedridejson,但不包含原始源邮件JSON

处理流程

按顺序执行每个步骤。失败时停止并报告。

汇总与查询

  • - 汇总SQLite输出时,不要猜测模式字段名称。
  • 首先使用PRAGMA tableinfo(rides)检查实际模式,或读取references/schemarides.sql。
  • SQL查询仅基于实时数据库模式中确认的列。
  • 如果模式与预期字段不同,根据实际模式调整查询,而不是强制使用旧的列名。
  • 优先使用模式中明确存在的稳定汇总维度,如provider、emaildatetext、currency、amount、pickupcity和dropoffcity。

1. 初始化数据库

bash
python3 skills/ride-receipts-gateway-llm/scripts/init_db.py \
--db ./data/gateway-llm/rides.sqlite \
--schema skills/ride-receipts-gateway-llm/references/schema_rides.sql

2. 将Gmail收据抓取到emails.json

bash
python3 skills/ride-receipts-gateway-llm/scripts/fetchemailsjson.py \
--account \
--after YYYY-MM-DD \
--before YYYY-MM-DD \
--max-per-provider 5000 \
--out ./data/gateway-llm/emails.json

注意:

  • - 不需要时省略--after/--before参数。
  • 支持的提供商查询位于references/provider_queries.json中。
  • 当前覆盖范围包括Uber、Bolt、Yandex、Lyft、Free Now、Curb和Via。

3. 使用Gateway的/v1/responses端点提取乘车记录到rides.json

bash
OPENCLAWGATEWAYURL=http://127.0.0.1:18789 \
OPENCLAWGATEWAYTOKEN=... \
python3 skills/ride-receipts-gateway-llm/scripts/extractridesgateway.py \
--emails-json ./data/gateway-llm/emails.json \
--out ./data/gateway-llm/rides.json

注意:

  • - 脚本每次迭代处理一封邮件。
  • 它将原始邮件JSON发送到Gateway的/v1/responses端点。
  • 默认情况下,对于此敏感数据流,它拒绝非本地Gateway主机;仅当用户明确信任该目标时,使用OPENCLAWALLOWNONLOCALGATEWAY=1覆盖。
  • 期望输出为纯JSON格式,匹配当前乘车模式。
  • 失败请求最多重试3次。
  • 每次成功提取后写入rides.json,因此进度会被检查点保存。
  • 如果rides.json已存在,则跳过其中已存在的gmailmessage_id对应的邮件。
  • 如果遇到速率限制问题,使用--delay-ms 重新运行。

4. 将rides.json插入到SQLite

bash
python3 skills/ride-receipts-gateway-llm/scripts/insertridesjson_sqlite.py \
--db ./data/gateway-llm/rides.sqlite \
--rides-json ./data/gateway-llm/rides.json

5. 从SQLite生成模式感知的汇总

bash
python3 skills/ride-receipts-gateway-llm/scripts/summaryridessqlite.py \
--db ./data/gateway-llm/rides.sqlite

注意:

  • - 此脚本首先检查实时的rides表模式。
  • 它动态选择可用的日期/金额字段,而不是假设固定的模式版本。
  • 使用此脚本进行提供商/月份/货币/城市汇总,以避免列名不匹配。

6. 生成简短的乘车洞察

作为代理操作执行,而不是专用的洞察脚本。

推荐工作流程:

  • - 当可用时读取data/gateway-llm/rides.json,因为它直接保留了提取的乘车对象。
  • 可选地查询data/gateway-llm/rides.sqlite获取一些基本总计数据(如有帮助),但不要将输出变成原始SQL转储。
  • 将乘车记录加上紧凑的事实汇总输入到活跃的Gateway支持的模型中。
  • 要求模型生成8-10条简短的行为洞察。

注意:

  • - 优先解释而非聚合。
  • 关注模式,如消费习惯、重复地址、可能的锚定位置、重复路线、通勤行为、工作日/周末习惯、时间段模式、异常值和高端乘车选择。
  • 先使用轻量的事实依据(总计、计数、重复地点),然后让模型编写最终的洞察要点。
  • 保持输出简短且人性化。
  • 除非重复性强烈支持该措辞,否则不要发明家/工作等标签;否则使用更柔和的表述,如可能的基础位置、重复目的地或通勤模式。
  • 除非用户后来要求确定性的报告产物,否则不要创建或依赖专用的Python洞察脚本。

7. 导出匿名化CSV报告

当用户要求匿名化/可共享的乘车报告时,使用捆绑的Python导出器。

bash
python3 skills/ride-receipts-gateway-llm/scripts/exportanonymizedrides_csv.py \
--db ./data/gateway-llm/rides.sqlite \
--out ./data/gateway-llm/anonymized_rides.csv

导出规则:

  • - 仅从SQLite读取。
  • 精确包含以下列:provider、emailmonth、starttime15m、endtime15m、currency、amount、distancekm、durationmin、pickupcity、pickupcountry、dropoffcity、dropoffcountry。
  • 将emaildatetext转换为仅月份格式,如2025-05。
  • 将starttimetext和endtimetext向上舍入到下一个15分钟时段。精确的整刻钟保持不变。
  • 通过从extractedridejson读取,导出可用的规范化distancekm和durationmin;不可用时留空。
  • 从CSV输出中排除街道地址、支付方式、司机、备注、主题、消息ID以及任何原始提取的JSON。
  • 当用户要求匿名化CSV时,在工作区中生成一个真实的.csv文件;不要将内联CSV文本粘贴到聊天中。
  • 将文件保存到稳定路径,如data/gateway-llm/anonymizedrides.csv。
  • 要发送到聊天,使用OpenClaw的出站媒体附件机制:包含一行简短文本,后跟一行精确包含MEDIA:./data/gateway-llm/anonymized_

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ride-insights-test-1775914390 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ride-insights-test-1775914390 技能

通过命令行安装

skillhub install ride-insights-test-1775914390

下载

⬇ 下载 ride-receipts-gateway-llm v0.1.12(免费)

文件大小: 14.26 KB | 发布时间: 2026-4-12 11:15

v0.1.12 最新 2026-4-12 11:15
- Added anonymized CSV export: new script `export_anonymized_rides_csv.py` enables export of ride records from SQLite as a shareable, privacy-preserving report.
- The CSV contains only non-personal fields (e.g., provider, month, rounded times, city/country, amounts, distance, duration).
- Update documentation to describe when and how to use export, precise output columns, and export rules.
- No changes to core extraction or database loading; the new feature is a safe reporting option for sharing aggregated ride data.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部