应用产品

sift

@bohutang5JavaScriptMIT更新于 2026-09-19可当场跑

Chrome 扩展,使用 TypeSafe Jev 给 X 上的每条帖子标注类别,并隐藏不想看的内容。

英文原文

Chrome extension that labels every post on X (Substance · Humor · Chit-chat · Promo · Junk · AI-written) with TypeSafe Jev, and hides the ones you don't want.

bohutang/sift

它在哪儿调用了 Jev

const API_URL = "https://api.typesafe.ai/v1/systemone";

background.js:4

链接指向我们抓取当天的那个 commit,行号是准的。

它问 Jev 的问题

下面是从这个项目源码里原样取出来的 question 组合。

取自 defaults.js:73

  1. category选项

    Which single category best describes this post? The state may include the post text, a quoted post, a link card or article title, what media is attached, and — for replies — the post being replied to (in_reply_to). A photo or video with a short caption, an emoji reaction, or a quote-post with only an emoji is usually 'personal'. A screenshot of a chat conversation, a viral story about relationships / dating / family / celebrities, a rhetorical 'would you...?' prompt, or a meme is 'humor' or 'personal' — never 'insight' or 'news', no matter how many likes it has. For a reply, a short genuine reaction from a real person to the parent post is 'personal', not 'filler'.

    • insightoriginal analysis, first-hand experience, technical detail, specific data or numbers, a concrete lesson learned. Must actually teach or explain something.
    • newsreports a concrete event, release, paper, announcement or fact with specifics
    • discussiona genuine question or opinion with enough context that a thoughtful person could reply substantively
    • humora joke, meme caption, pun, funny screenshot, or witty observation whose point is to be funny
    • personalcasual personal update, a photo or video of daily life, plain reaction or emoji, thanks, agreement, congratulations, a short specific comment from a real person on the parent post ('效率也太高了', 'tried it, works great', 'nice, what model?')
    • promoselling or pushing a course, product, newsletter, waitlist, affiliate link, or 'check out my ...'
    • baitwritten to farm engagement: 'bookmark this', 'reply X and I'll DM', 'most people don't know', ragebait, vague promises of a secret system, contentless 'agree?' / 'thoughts?', follower farming
    • fillera text-only reply or post with literally nothing to it: 'gm', '.', 'W', 'this', 'first', 'so true', a single generic word, a copy-pasted comment that could be under any post — but NOT a short reaction that clearly refers to the parent post, and NOT an emoji reaction to a quoted post or a photo, those are personal
  2. tech是/否

    Is this post about technology? For a reply, judge by the conversation it is in (in_reply_to): a reaction under a tech post counts as tech.

  3. ai_written是/否

    Does this post read as written by an AI language model (ChatGPT-style) rather than typed by a person?

用你自己的内容跑一遍

代码
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,
  questions: {
    category: { type: 'choice', instructions: 'Which single category best describes this post? The state may include the post text, a quoted post, a link card or article title, what media is attached, and — for replies — the post being replied to (in_reply_to). A photo or video with a short caption, an emoji reaction, or a quote-post with only an emoji is usually \'personal\'. A screenshot of a chat conversation, a viral story about relationships / dating / family / celebrities, a rhetorical \'would you...?\' prompt, or a meme is \'humor\' or \'personal\' — never \'insight\' or \'news\', no matter how many likes it has. For a reply, a short genuine reaction from a real person to the parent post is \'personal\', not \'filler\'.',
      criteria: { insight: 'original analysis, first-hand experience, technical detail, specific data or numbers, a concrete lesson learned. Must actually teach or explain something.', news: 'reports a concrete event, release, paper, announcement or fact with specifics', discussion: 'a genuine question or opinion with enough context that a thoughtful person could reply substantively', humor: 'a joke, meme caption, pun, funny screenshot, or witty observation whose point is to be funny', personal: 'casual personal update, a photo or video of daily life, plain reaction or emoji, thanks, agreement, congratulations, a short specific comment from a real person on the parent post (\'效率也太高了\', \'tried it, works great\', \'nice, what model?\')', promo: 'selling or pushing a course, product, newsletter, waitlist, affiliate link, or \'check out my ...\'', bait: 'written to farm engagement: \'bookmark this\', \'reply X and I\'ll DM\', \'most people don\'t know\', ragebait, vague promises of a secret system, contentless \'agree?\' / \'thoughts?\', follower farming', filler: 'a text-only reply or post with literally nothing to it: \'gm\', \'.\', \'W\', \'this\', \'first\', \'so true\', a single generic word, a copy-pasted comment that could be under any post — but NOT a short reaction that clearly refers to the parent post, and NOT an emoji reaction to a quoted post or a photo, those are personal' } },
    tech: { type: 'boolean', instructions: 'Is this post about technology? For a reply, judge by the conversation it is in (in_reply_to): a reaction under a tech post counts as tech.' },
    ai_written: { type: 'boolean', instructions: 'Does this post read as written by an AI language model (ChatGPT-style) rather than typed by a person?' },
  },
});

同类的其他项目