AI PLAY玩法更新持续收录
← 回到更新流

2026-10-02 · 原文发布日

n8n汇率问答机器人:Gemini加缓存降调用

一个轻量的n8n问答流:Gmail新邮件或n8n聊天触发后,统一格式并逐条处理,从问题里抽出两个货币代码生成按天缓存键,先查n8n Data Table里的缓存,命中就直接回复不调用模型;未命中才让Gemini代理调用免费的Frankfurter汇率接口生成一两句回答,结果回写缓存并把来源、命中情况、耗时记入日志表,最后按原渠道回复。缓存TTL可在配置里调。

原文要点

n8n模板库免费模板(ID 20312)。Gmail新邮件(按搜索过滤器匹配)或n8n聊天触发后,统一成公共格式(session ID、用户文本、来源渠道、发件邮箱)逐条处理;从问题里抽出两个ISO 4217货币代码拼成按天的缓存键,先查n8n Data Table缓存,TTL内命中就直接回复不调模型;未命中才让Google Gemini代理调用Frankfurter汇率接口生成一两句纯文本回答,写回缓存并把来源、货币对、是否命中、耗时记入日志表,最后按原渠道(聊天或Gmail)回复。缓存TTL、邮件主题、兜底文案都在Config里可调。

这次做成什么

搭好缓存表与日志表两张Data Table,导入模板后用本站合成的测试问题验证「第一次调模型、第二次命中缓存」的降调用效果,并学会读日志表。

准备什么

  • n8n实例及模板20312
  • Gmail OAuth2凭据(收邮件触发与回邮件用)
  • Google Gemini(PaLM)API凭据
  • 无需Frankfurter账号或API凭据(模板未要求配置该接口凭据)

具体怎么做

  1. 建两张Data Table

    第一张缓存表:cache_key(string)、pair(string)、response(string)、cached_at(number)。第二张日志表:logged_at(string)、source(string)、pair(string)、cache_hit(boolean)、latency_ms(number)。表名自定,建好后在缓存查询/写入节点和日志节点里改选它们。

  2. 挂凭据

    Gmail触发节点与Gmail回复节点挂OAuth2凭据;聊天模型节点挂Gemini API凭据。

  3. 检查Config与过滤器

    打开Config节点确认缓存TTL(按天键以外还有有效期控制)、回复邮件主题、兜底文案;改Gmail触发器的搜索过滤器(发件人/主题关键词),只让真正的汇率问询邮件进入流程,避免私人邮件被自动回复。

  4. 用聊天通道首测

    打开n8n Chat触发器的聊天窗口,发「1美元现在等于多少欧元?」。第一次应走Gemini+Frankfurter路径(日志cache_hit=false);紧接着发同一货币对的问题,应直接命中缓存(cache_hit=true)且回复内容一致、耗时更短。

  5. 用邮件通道复测

    从匹配过滤器的邮箱发一封同主题汇率问询邮件,确认流程触发、回复按邮件发回,且日志里source记为gmail。

可直接复制的材料

两张Data Table建表清单

列名与类型来自模板说明;建好后在各Data Table节点里选择对应表。

{
  "rate_cache": {
    "cache_key": "string",
    "pair": "string",
    "response": "string",
    "cached_at": "number"
  },
  "query_log": {
    "logged_at": "string",
    "source": "string",
    "pair": "string",
    "cache_hit": "boolean",
    "latency_ms": "number"
  }
}

合成测试数据

本站虚构测试输入;模板从文本里抽取ISO货币代码,中文问法能否稳定抽取需在你的实例上验证。

{
  "chat_message": "1美元现在等于多少欧元?",
  "expected_pair": "USD-EUR",
  "gmail_subject": "汇率咨询",
  "gmail_from": "test-sender@example.com",
  "gmail_body": "请问现在100日元能换多少人民币?"
}

输入与输出示例

本站虚构示意,未真实运行;具体字段与耗时以你的运行日志为准。

输入

聊天窗口先发「1美元现在等于多少欧元?」,30秒后再发「美元兑欧元汇率是多少」

对应输出

第一条日志(示意):{"logged_at":"2026-10-02T10:00:00","source":"chat","pair":"USD-EUR","cache_hit":false,"latency_ms":2100},回复为模型生成的一两句话汇率回答;第二条日志cache_hit=true、latency_ms明显更低,回复直接取自缓存,未调用Gemini。

做完检查这些

  • 缓存表与日志表的列名、类型与清单一致并被节点正确选中
  • 同一货币对当天第二次提问时日志cache_hit=true且不走模型节点
  • Gmail与聊天两个渠道的回复都回到原渠道
  • Config里调整TTL后,过期缓存会重新触发模型调用

容易卡住的地方

  • Gmail过滤器没收紧会把无关邮件也送进流程并自动回复
  • 缓存键按天生成,跨天的同一货币对会重新调模型,属设计如此
  • 能否从中文问句稳定抽出ISO 4217货币代码需实测,抽取失败会走兜底文案
  • 模板免费且Frankfurter接口免费,但Gemini API调用可能计费
  • 模板免费且Frankfurter调用无需密钥,但Gemini API调用可能计费
  • 两张表若ID未在节点里更新,会写入失败或查不到缓存

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Answer currency rate questions from Gmail and chat with Gemini and Frankfurter API
原作者
María Laura Vitelli
原始发布日期
2026-10-01T17:00:31.270Z
来源
https://n8n.io/workflows/20312