对比 / JevModel
Google Sheets 文本分类:=AI() 函数 vs Apps Script 调用 Jev API
用 Google Sheets 的 AI 函数,或用 Apps Script 调用 JevModel,给表格行打标签:固定 Choice 标签与概率、复核列、Apps Script 配额,以及何时直接把 CSV 传到 Console → Batch 更省事。
最近更新:
速读:单元格里的提示词 vs 固定的标签契约
- Google 的 AI 函数(=AI() 或 =Gemini())接收一个提示词和可选区域,Google 把“对信息分类”和情感分析列为用途之一。它需要符合条件的 Google Workspace 或 Google AI 方案,只返回文本,不能嵌在 IF 等其他公式里,一次最多生成所选前 350 个 AI 单元格。
- 用 Apps Script 菜单命令把每一行 POST 到 JevModel 的 /api/v1/systemone,会从你定义的 2–12 个标签里返回一个 Choice,通常附带概率;于是可以写出标签列和概率列,把低概率的行送去复核。
- 调用付费 API 时,优先用菜单命令而不是自定义函数:自定义函数必须在 30 秒内返回,引用的单元格一变就会重算,可能再次调用(并计费)API。菜单运行的脚本每次最多 6 分钟;URL Fetch 在个人账号上限 20,000 次/天,Workspace 账号 100,000 次/天。
- 不想写代码:把表格导出为 CSV,上传到 JevModel 的 Console → Batch(未购买前每批最多 50 行,任意一次购买后 1,000 行)。无论选哪条路,都保留一列人工标注,先测一致率再信任标签。
在电子表格里,文本分类长什么样
大多数表格分类任务形状相同:一列自由文本(问卷回答、表单提交、客服消息、商品评价),一小组类别,再加一列新列,每行只放其中一个类别。有用的附加列是置信度列、“需复核”标记,以及在抽样行上的人工标注列,用来检验结果。在 Google Sheets 里,填这列标签有三条现实路径:内置 AI 函数;用 Apps Script 调用 JevModel 这类外部分类 API;或导出 CSV、在别处分类后把结果贴回来。
如何用 JevModel API 分类文本Jev API 批量文本分类:CSV 与 JSONLGoogle Sheets 的 AI 函数:Google 文档写了什么
Google 帮助页给出的语法是 AI("prompt", [可选区域]);=Gemini() 是等价写法。选中单元格后点 Generate and Insert,想重新生成时点 Refresh and Insert。Google 自己的例子包括把客户咨询分为表扬、换货请求或退货请求,以及把邮件正文分为正面、负面或中性。对分类来说,这些文档限制很关键:只返回文本;函数只能看到你传入的区域,看不到整张表;不能嵌入其他公式(Google 举的不支持写法就是把 AI() 包在 IF 里);一次只生成所选的前 350 个 AI 单元格;有短期和长期生成上限;能否使用取决于方案、管理员设置和语言。优势:符合条件的账号零配置,非开发者也能改自然语言提示词。边界:输出是自由文本,除非提示词和清洗步骤强制精确取值,否则标签会漂移(“Return”“return request”“Returns”),也没有可用于复核阈值的逐标签概率列。
2026 年零样本文本分类:LLM 提示词、Hugging Face 与类型化 API 怎么选Jev vs GPT 与 Claude:如何选择判断层Apps Script → Jev:用菜单命令,不要用自定义函数
Apps Script 可以用 UrlFetchApp 调用任何 HTTPS API,Google 的自定义函数指南也确认 URL Fetch 是自定义函数允许使用的服务之一。但它仍不适合放按量计费的分类调用。自定义函数必须在 30 秒内返回,否则单元格显示 #ERROR!;每次使用都是一次独立的 Apps Script 服务器调用;而且只要引用的单元格变化就会重算,一次编辑就可能把同一行悄悄再分类一次(并再付一次费)。自定义菜单项可以避开这些:点一次脚本跑一次,读取选中行、调用 JevModel,把标签和概率作为普通值写回,之后不会重算。按 Google 公布的限制做规划:每次脚本执行最多 6 分钟;URL Fetch 配额个人账号 20,000 次/天,Google Workspace 账号 100,000 次/天(Google 说明这些数值可能变化)。每次选择的行数要能在一次执行内跑完。JevModel 密钥放在 Project Settings → Script properties,不要写进单元格;并记住,能编辑这张表的人也能编辑它绑定的脚本,所以编辑者名单要尽量短。
JevModel API:请求与响应JevModel 价格与 Jev 免费额度运行记录与隐私对比:=AI() vs Apps Script → Jev vs CSV 上传 Console → Batch
下表对比的是工作流形态与输出契约,不是准确率。表中没有任何一行是基准测试结果;请在自己的标注样本上测量。
Jev API 批量文本分类:CSV 与 JSONL如何用 JevModel API 分类文本Choice、Score 与 Noul| 维度 | Sheets =AI() | Apps Script 菜单 → JevModel | CSV → Console → Batch |
|---|---|---|---|
| 准备工作 | 符合条件的 Workspace / Google AI 方案;输入提示词 | 粘贴脚本,在 Script properties 里放密钥 | 导出 CSV、上传、导出结果 |
| 标签输出 | 自由文本;是否精确取值取决于提示词 | 从你定义的 2–12 个标签中返回一个 Choice ID,通常带概率 | 同一个 Jev 问题应用到每一行 |
| 复核阈值 | 没有逐标签概率列 | 把概率写在标签旁,筛出低概率行 | 导出文件里有逐行答案 |
| 主要限制 | 每次生成 350 个所选单元格;有生成上限;不能嵌套 | 每次执行 6 分钟;URL Fetch 每日配额;请求约 8,000 字符 | 未购买前每批 50 行,购买后 1,000 行 |
| 计费 | 包含在 Google 方案及其限制内 | 每次成功请求扣 JevModel Token;失败运行退回 | 与 Playground、API 共用同一 Token 余额 |
Apps Script 示例:给选中的行分类(示意)
打开 Extensions → Apps Script,粘贴代码,新增名为 JEVMODEL_API_KEY 的脚本属性(密钥在 JevModel Console → API keys 创建),然后刷新表格。选中同一列的文本单元格,点 Jev → Classify selected rows,标签和概率会写到右边两列。请求遵循文档化的契约:state(单元格文本)加具名问题,这里是一个 Choice,criteria 把标签 ID 映射到简短定义。清晰的定义(包括明确的 “other”)比花哨措辞更重要。本站通过 OpenRouter 固定调用 typesafe/jev-1.13,所以没有 model 字段。JevModel 与开发 Jev 的 TypeSafe AI 相互独立。返回非零 code(例如 INSUFFICIENT_TOKENS)时写成 ERROR,方便只重跑这些行;API 不支持幂等键,已有标签的行不要重跑。
JevModel API:请求与响应Choice、Score 与 NoulJevModel 价格与 Jev 免费额度// Illustrative only. Save the key as the script property JEVMODEL_API_KEY.
// Run from the menu, not as a custom function, so edits never re-bill rows.
const LABELS = {
billing: "Charges, refunds, invoices or payment methods.",
shipping: "Delivery status, delays or address changes.",
product: "How the product works, or a defect report.",
other: "Anything that fits none of the labels above.",
};
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("Jev")
.addItem("Classify selected rows", "classifySelection")
.addToUi();
}
function classifySelection() {
const key = PropertiesService.getScriptProperties().getProperty("JEVMODEL_API_KEY");
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getActiveRange(); // one column of text cells
const rows = range.getValues().map(([text]) => {
if (!text) return ["", ""];
const res = UrlFetchApp.fetch("https://jevmodel.app/api/v1/systemone", {
method: "post",
contentType: "application/json",
headers: { Authorization: "Bearer " + key },
muteHttpExceptions: true,
payload: JSON.stringify({
state: String(text),
questions: {
route: {
type: "choice",
instructions: "Which support queue should handle this message?",
criteria: LABELS,
},
},
}),
});
const body = JSON.parse(res.getContentText());
if (body.code !== 0) return ["ERROR", body.message];
const answer = body.data.answers.route;
const p = answer.probabilities ? answer.probabilities[answer.choice] : "";
return [answer.choice, p];
});
// Plain values in the next two columns: label, probability.
sheet.getRange(range.getRow(), range.getColumn() + 1, rows.length, 2).setValues(rows);
}
加一列复核,并在使用前检验标签
电子表格让评估很容易,那就做。分类整张表之前,先在单独一列里人工标注随机抽样的若干行,对它们跑同一个问题,用 COUNTIFS 或数据透视表对比:每个标签的一致率,以及哪些标签容易混淆。然后基于样本定复核规则,例如“概率低于大多数分歧出现的水平就送复核”,再加一列公式,如 =IF(C2<0.7,"review","ok");0.7 只是占位,不是推荐值。保留 “other” 标签,“other” 占比高说明标签表需要调整,而不是模型失败。TypeSafe 描述的 Choice 置信度 (p − 1/n)/(1 − 1/n) 会按标签数校正,但同样不是校准后的准确率。改动标签或定义后,要重新检查样本。
Jev 概率、置信度与人工复核阈值评估 Jev 工作流用户反馈分类:一个主题、一个优先级,以及为什么情感分析不够该选哪条路
已有符合条件的方案、这张表只是一次性探索、反正会有人逐条看结果时,选 =AI()。同一套标签会反复使用、需要概率列决定哪些送复核,或标签必须与其他地方的自动化(Zapier、Make、n8n、Power Automate、Pipedream 或你自己的应用)通过同一 API 使用的标签一致时,选 Apps Script → Jev 菜单。不想写代码、或想先用小文件试一个问题时,选 CSV → Console → Batch。无论哪条路的检查清单:1)写带明确 “other” 的标签定义;2)人工标注一份样本;3)结果被接受后以值保存,而不是保留实时公式;4)API 密钥不进单元格;5)没在样本上测过的准确率不要宣称。如果一行可能同时属于多个标签,请看 multi-label-text-classification,不要硬塞进一个 Choice。
多标签文本分类:一次 Choice、多道是否题,还是第二轮请求Zapier 文本分类:AI by Zapier Classify vs Vertex Classify Text vs HTTP → JevMake.com Categorize Text:AI Toolkit vs HTTP → Jev(类型化标签与置信度阈值)Jev API 批量文本分类:CSV 与 JSONLPower Automate 文本分类:AI Builder 类别模型 vs HTTP → JevPipedream 文本分类:Hugging Face 动作 vs HTTP → Jev(类型化标签)n8n Text Classifier 节点:内置分类 vs 在工作流中调用 Jev用户反馈分类:一个主题、一个优先级,以及为什么情感分析不够JevModel API:请求与响应常见问题
Google Sheets 的 AI 函数能做文本分类吗?
可以。Google 把对信息分类和情感分析列为用途,例子如 =AI("Categorize the customer inquiry as a compliment, exchange request, or return request.", C2)。它需要符合条件的 Google Workspace 或 Google AI 方案,返回自由文本,且不能嵌在 IF 等公式里。
为什么不写一个 =JEV(A2) 这样的自定义函数?
技术上可行,但自定义函数会在引用单元格变化时重算,而且必须在 30 秒内完成:按量计费的 API 可能对已付过费的行再次调用,大范围还会超时。菜单命令只运行一次,并写入普通值。
用 Jev 从 Google Sheets 能分类多少行?
有三层限制:JevModel Token 余额(验证邮箱的账号先获赠 100,000 免费 Token)、Apps Script 每次执行 6 分钟及每日 URL Fetch 配额,以及全站每日容量。每行就是一次普通请求,没有批量折扣。如果是文件,Console → Batch 在未购买前每批 50 行,购买后 1,000 行。
表格数据会发给 JevModel 吗?
只有脚本放进 state 的内容(示例里是单元格文本)会被发送;JevModel 通过 OpenRouter 把它转给模型。发送前去掉不需要的列,例如邮箱或电话;运行历史如何保存请看隐私指南。
JevModel 为独立项目,与 TypeSafe AI 无关联。