从写代码,到创作下一幕

探索 字节跳动 - 火山方舟 的 AI 编程与视频创作活动。

火山方舟 Agent Plan 与 Coding Plan 活动,价格 ¥9.9 起

Agent Plan & Coding Plan

一站体验多款热门模型,为 AI 编程与智能体开发提供更多选择。新用户可联系(微信: goo_lvyouyou)免费体验 9.9 agent plan。

查看套餐优惠
Seedance 2.5 视频创作活动:30 秒视频、多模态参考、局部编辑

Seedance 2.5

让创意,跃然成片。探索 30 秒视频、多模态参考与局部编辑,把脑海中的画面变成下一支作品。

探索视频创作

𝕏 情感追踪器

查看 Markdown

此应用使用 Grok API 对 𝕏 上有关任意话题的言论逐帖评分,按日追踪情感变化。它可作为品牌监测或跟踪产品发布反响的起点。

输入一家公司、一款产品或一起事件等话题,应用会在 𝕏 搜索最近 10 天与之相关的热门帖子,过滤无关内容并分析情感。可在网页或终端运行,实时查看搜索、选中的帖子以及 Grok 的推理过程。实现方法参照 𝕏 情感分析笔记本。

你将学到

  • 使用内置 X Search 工具和 𝕏 搜索运算符检索帖子

  • 按天分别发起搜索并行执行,从而收集超过单次搜索上限的帖子

  • 通过引用仅保留 X Search 实际返回的帖子

  • 利用 SDK 的流式事件实时展示服务端搜索和推理过程

  • 以结构化输出为每条帖子评分,并对得分做范围限制,因为 Schema 的最小值和最大值不会被强制执行

  • 使用较低推理强度加快各步骤,即使 Grok 需要逐帖评分也能快速完成

  • 通过服务器发送事件从 Node 服务器向网页实时传送进度,并在页面关闭时取消任务

运行示例

需要 Node.js 22.13 或更高版本。将 API 密钥保存在 .env(仓库根目录),或导出环境变量 XAI_API_KEY。

Bash

cd examples/x-sentiment-tracker/typescript
npm install
npm run web

打开 http://localhost:3000,输入或选择话题并点击 Analyze。页面类似社交舆情仪表盘,逐日展示正在进行的搜索、找到和保留的帖子数,以及 Grok 在评分时的推理。随后展示 -1(负面)至 +1(正面)的总体得分、正面/中立/负面帖子的比例、逐日情感变化、评分理由,以及每条帖子的分数。点击 Stop 或关闭页面可取消。

要从终端分析话题,请将其作为参数传入。默认话题是 SpaceX。

Bash

npm start -- SpaceX

话题会原样写入查询,因此也可以直接在话题中使用 𝕏 搜索运算符,例如 Starship OR Starlink。

每次搜索最多返回 10 条帖子,因此应用会对过去 10 天逐日搜索,所有搜索并行进行,最多收集 100 条。一次运行约需一分半钟,费用约 0.80 美元,主要来自 X Search:除 token 费外,每获取 1,000 条帖子另收 5 美元。需要缩短范围时,可修改 DAYS,其定义位于文件顶部:src/sentiment.ts。

工作原理

共享代码位于 src/sentiment.ts。analyze() 执行以下步骤并通过回调报告进展,以便网页和终端分别用自己的方式展示相同的进度:

  1. findPosts() 发出流式 grok-4.7 请求,使用 xSearch() 在一天的范围内搜索,要求以 JSON 返回当天最热门的帖子。server_tool_call 事件会实时报告正在执行的搜索,citation 事件会收集 Grok 引用的帖子,应用以此剔除 X Search 未返回的帖子。analyze() 会为过去 10 天并行执行,并去除重复项。创建客户端时启用了 retryBeforeOutput,因此 Grok 开始回答之前失败的搜索会重试。如果某一天的搜索仍然失败,程序会跳过该天并报告错误。

  2. filterPosts() 使用较低推理强度,仅保留能反映人们对该话题态度的帖子。

  3. scoreSentiment() 为保留的每条帖子评分,再评估话题整体情感,流式展示 Grok 的推理。该步骤同样使用低推理强度:默认设置会让 Grok 在回答前逐条推理,耗时数分钟。Schema 要求分数在 -1 到 1 之间,但不会强制执行,所以程序会把越界值限制在端点值。

src/server.ts 为页面运行 analyze() 来分析所选话题,并通过服务器发送事件报告每一步。它会将 AbortSignal 传给每个请求,因此关闭页面或点击 Stop 都能取消正在运行的任务。public/index.html 使用原生 HTML 和 JavaScript,以仪表盘展示事件,并根据每天的帖子得分计算当天的情感。src/index.ts 在终端中输出相同步骤。