这是什么
把你的亚马逊搜索词报告交给 JEV(TypeSafe System One 决策模型)做三类判断,产出可直接执行的否定清单与拓词参考。每条搜索词一次请求,同时回答三个问题:
| 问题 | 类型 | 返回 |
| 这个词与产品是什么关系 | Choice 多选一 | 分类 + 各选项概率 + 置信度 |
| 购买意向有多强 | Score 打分 | 1–4 分(4=完全匹配) |
| 加否定是否零风险 | Noul 是非判断 | 0–1 概率(越接近 1 越可否定) |
快速上手
- 按「部署指南」完成部署,在「连接与安全」填好端点与 Key,点「测试连接」
- 「载入演示示例」跑 10 个词,在「判定直播」观察每条判定是否符合直觉
- 修改「判定配置」让分类符合你的类目(每个类目建一个方案)
- 上传真实搜索词报告全量判定,按「待复核 → 有转化但建议否定」顺序人工确认后导出否定清单
连接与安全 · 字段对照
| API 端点 | 判定请求发往的地址。直连官方 https://api.typesafe.ai/v1/systemone 会被浏览器跨域拦截,因此生产环境一律填你自己的 Cloudflare Worker 中转地址(部署指南有完整步骤)。注意结尾带 /v1/systemone。 |
| API Key | 在 console.typesafe.ai 创建。只保存在你的浏览器里:默认仅本次会话内存(刷新即失),勾选「记住」才写入本机。绝不应出现在任何代码或仓库里。 |
| 模型 | jev-latest 为推荐版;jev-1.13.0 锁定版本便于结果稳定复现;jev-preview 体验新特性。 |
| 并发数 | 同时进行的判定请求数。官方限流 1200 请求/分钟,4–8 既快又稳;出现 429 时调小。 |
| 否定阈值 | 「否定概率」达到该值才标记「建议否定」。默认 0.90——宁可漏否(浪费花费)不可误否(伤真实销售)。 |
| 复核阈值 | 分类「置信度」低于该值时,无论判定结果如何都进「待复核」页签,由人裁决。 |
| 代理校验头 | 给你的 Worker 加的一道门禁:页面每次请求带上这个暗号,Worker 校验通过才转发。防止陌生人盗用你的中转地址。两边必须同名同值。 |
导入与列映射
| 搜索词列 | 必需。自动识别 search term / 搜索词 / query 等常见表头,也可手动指定。 |
| 展现/点击/花费/订单/销售额 | 可选。不参与语义判定,用于:风险标记(有订单却被判否定的词高亮提醒)、排序、导出清单附带绩效、统计否定覆盖花费。同名搜索词多行出现时自动合并汇总。 |
产品上下文 · 字段对照(判定质量的决定因素)
| 产品标题 | 判断的锚点。写清品类、核心参数、尺寸,与亚马逊 Listing 标题一致。 |
| 核心卖点 | 分号分隔。用户搜「防滑」「加厚」这类卖点词时靠它判断相关性。 |
| 品牌 | 用于识别「品牌词」分类(自己的品牌流量要保护,绝不能否定)。 |
| 价格定位 | 拦住价格带不匹配的流量:产品 $25.99,「超便宜」搜索词就不该投放。 |
| 主要竞品 | 用于识别「竞品品牌词」——这类词用于竞品定投,也绝不能自动否定。 |
| 目标市场 | 站点语言与地区。美国站写明 shoppers search in English and Spanish,西语词才不会被误判为无关。 |
| 已转化搜索词 | 给模型的校准锚点:从搜索词报告挑 3–5 个确定出过单的词放进来的,让「相关」有具体参照。 |
分类选项 · 默认七桶
| brand_term | 含自己品牌的词。保留并加固投放。 |
| asin_search | 搜索的是 ASIN 或自家 Listing。保留。 |
| competitor_brand | 含竞品品牌。转竞品定投候选,禁止自动否定。 |
| complementary | 互补品(如瑜伽垫之下的瑜伽砖)。相关性高但不是本产品;否定需谨慎——可能带关联流量,先人工看。 |
| relevant | 会买这类产品的真实购买意图。核心保留桶,意向分通常 ≥3。 |
| loosely_related | 同类目但意向落在别的产品(如普拉提垫、健身地板垫)。小预算测试或观察,不自动否定。 |
| irrelevant | 完全无购买重叠。唯一允许高置信自动否定的桶。 |
永远保留 irrelevant 作为兜底桶:缺少兜底时模型遇到陌生词会被迫塞进其他类别。
否定 / 保留标准怎么写
这两段直接成为否定判断的 true/false 定义。经验写法:应否定列出「出现什么情况可以否」(不同品类、服饰、服务、纯信息意图);应保留强调「凡是真实买家可能用的查询都保留」,并显式列出容易误伤的形态:任意厚度/尺寸/颜色、拼写错误、西语、疑问句式。
结果与页签 · 字段对照
| 判定 | 最终结论:建议否定 / 建议保留 / 待复核。经人工修正后显示「强制否定/强制保留」。 |
| 否定概率 | JEV 对「加否定零风险」的把握。条越长越可否。 |
| 分类 | 七桶之一;看各桶含义表。 |
| 置信度 | 分类概率分布的集中程度。低置信不代表判错,而是「分布平」,值得人工看一眼。 |
| 意向分 | 1–4:无重叠 / 同类不同品 / 可考虑 / 直接匹配。保留词里意向分高的是拓词投放优先级参考。 |
| 人工修正 | 强制否定/强制保留。人机分歧以人为准,导出按修正后的最终判定。 |
| 待复核页签 | 置信度低于阈值 + 低置信但倾向否定的词。上线初期每天人工过一遍。 |
| 有转化但建议否定 | 红线页签:出过订单却被判否定。JEV 只做语义判断,这里必须人工裁决(通常是数据会说模型错了)。 |
导出文件
| 否定清单 | 最终判定为否定的词 + 匹配类型,可直接导入广告后台否定列表。有订单的词会带提醒备注。 |
| 复核队列 | 待人工裁决的词及其全部判定依据。 |
| 完整结果 | 全量词 + 绩效 + 判定 + 人工修正,用于存档与复盘。 |
常见问题
| 全部显示网络失败 | 端点没填 Worker 地址、结尾少 /v1/systemone、或 Worker 未部署成功。逐步按部署指南核对。 |
| HTTP 401 | Key 填错或失效,回 console.typesafe.ai 重新生成。 |
| HTTP 429 / 频繁失败 | 触发限流:并发调小(如 3)、每批少跑点。 |
| 改了规则没变化 | 已完成的结果会被跳过。先「清空本方案结果」再重跑。 |
| 判定普遍不准 | 九成是产品上下文太笼统:补竞品、价格定位、已转化词;分类选项定义有重叠也会导致分布平、置信度低。 |
| 隐私自证 | F12 → Network:只会看到对你 Worker 的请求;Application → Local Storage:只存你勾选记住的内容。 |
架构:前台与后台彻底分离
你的浏览器(页面)→ 带 Key 与暗号 →你的 Cloudflare Worker(中转)→TypeSafe API
- 页面(前台):只有界面与交互,仓库里没有 Key、没有 Worker 地址、没有暗号,公开也不泄露任何信息
- Worker(后台):只有你知道地址与暗号,负责转发请求;日志可在 Cloudflare 控制台随时关闭或清空
- Key 只存在于:你的浏览器内存/localStorage 与请求头中,不落任何仓库
准备
- GitHub 账号(github.com 注册)
- Cloudflare 账号(dash.cloudflare.com 注册,免费,无需信用卡)
- 本页对应的 index.html 文件
第 1 步 · GitHub 建仓并上传页面
- 登录 GitHub → 右上角加号 → New repository
- 仓库名如
jev-workbench,选择 Private(私有更符合隐私要求,Cloudflare Pages 支持私有仓库且免费)→ Create
- 页面中间点 uploading an existing file,把 index.html 拖入 → Commit changes
第 2 步 · Cloudflare Pages 上线前台
- 登录 dash.cloudflare.com → 左侧 Workers & Pages → Create → 切到 Pages 标签 → Connect to Git
- 选 GitHub → 授权(可只授权刚才这一个仓库)→ 选中仓库 → Begin setup
- 配置:Project name 自定;Framework preset 选 None;Build command 留空;Build output directory 填
/
- Save and Deploy,一两分钟后得到你的页面地址:
https://项目名.pages.dev
- 打开该地址能看到本界面即前台完成(此时还不能判定,因为端点未配置)
第 3 步 · 创建 Worker 中转(后台)
- Workers & Pages → Create → Create Worker → 名字填
jev-proxy → Deploy(先部署默认示例)
- 点 Edit code,全选删除默认代码,粘贴下面「推荐版」代码
- 把代码第一行的
REPLACE_WITH_YOUR_SECRET 改成你自己的暗号(一串随意字符,越随机越好)
- 点右上 Deploy → 记下你的地址:
https://jev-proxy.你的子域.workers.dev
const SECRET = "REPLACE_WITH_YOUR_SECRET"; // 改成你自己的暗号
const cors = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, OPTIONS",
"Access-Control-Allow-Headers": "Authorization, Content-Type, X-App-Secret",
"Access-Control-Max-Age": "86400"
};
export default {
async fetch(request) {
if (request.method === "OPTIONS") return new Response(null, { status: 204, headers: cors });
if (request.headers.get("X-App-Secret") !== SECRET) {
return new Response("forbidden", { status: 403, headers: cors });
}
try {
const url = new URL(request.url);
const upstream = await fetch("https://api.typesafe.ai" + url.pathname + url.search, {
method: "POST",
headers: {
"Authorization": request.headers.get("Authorization") || "",
"Content-Type": "application/json"
},
body: await request.text()
});
const out = new Response(upstream.body, upstream);
Object.entries(cors).forEach(([k, v]) => out.headers.set(k, v));
return out;
} catch (e) {
return new Response(JSON.stringify({ error: "proxy_error" }),
{ status: 502, headers: { ...cors, "Content-Type": "application/json" } });
}
}
};
最简版代码(不加暗号,仅个人快速验证用)
export default {
async fetch(request) {
const cors = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, OPTIONS",
"Access-Control-Allow-Headers": "Authorization, Content-Type"
};
if (request.method === "OPTIONS") return new Response(null, { status: 204, headers: cors });
const url = new URL(request.url);
const upstream = await fetch("https://api.typesafe.ai" + url.pathname + url.search, {
method: "POST",
headers: {
"Authorization": request.headers.get("Authorization") || "",
"Content-Type": "application/json"
},
body: await request.text()
});
const out = new Response(upstream.body, upstream);
Object.entries(cors).forEach(([k, v]) => out.headers.set(k, v));
return out;
}
};
第 4 步 · 页面连接后台
- 打开你的 pages.dev 页面 →「连接与安全」
- API 端点填:
https://jev-proxy.你的子域.workers.dev/v1/systemone(结尾必须带路径)
- 用了推荐版代码:校验头名称填
X-App-Secret,校验头值填你在 Worker 里设置的暗号
- 填入 API Key → 点「测试连接」→ 提示连接成功即全链路打通
第 5 步 · 验证隐私(强烈建议做一次)
- 打开 GitHub 仓库:应看不到任何 Key、暗号、Worker 地址
- 页面上按 F12 → Network:判定时只出现对你 Worker 的请求,无其他域名
- F12 → Application → Local Storage:只有你勾选记住的字段;「清除本机全部数据」可一键抹掉
- Worker 不存储任何请求内容;如需彻底静默,可在 Cloudflare 控制台关闭 Workers 日志
第 6 步 · 日常维护
- 改页面:本地改 index.html → GitHub 提交 → Cloudflare Pages 自动重新部署
- 换暗号:Worker 代码里改 SECRET 并重新 Deploy,页面校验头值同步修改
- 公用电脑:不勾「记住 Key」,用完点「清除本机全部数据」
常见部署故障
| 测试连接一直失败 | 端点结尾少了 /v1/systemone;Worker 忘了点最终 Deploy;暗号两边不一致(返回 forbidden) |
| 浏览器直接打开 Worker 地址 | 显示 forbidden 是正常的(没带暗号);显示 401 类 JSON 说明转发成功但没带 Key,也是正常 |
| pages.dev 打开是 404 | 仓库根目录没有 index.html,或构建输出目录没填 / |
| GitHub 授权找不到私有仓库 | 授权时选择 All repositories,或只勾选对应仓库 |