使用 Grok 和 𝕏 进行实时情感分析
在本指南中,我们将探讨结合 X 实时数据和 Grok 的自然语言理解、推理和智能时可以取得的成果。我们将构建一个工具,让我们实时获取关于比特币的 X 帖子,并根据帖子内容计算市场情绪得分。为此,我们将采用多阶段方法,利用grok-3-fast
的速度进行过滤/分类,以及grok-3-mini
的推理能力计算过滤后帖子的情感。虽然本指南侧重于比特币,但此处展示的方法可以轻松适用于加密货币以外的其他主题。
目录
设置和先决条件
您需要一个拥有 过滤流 API 访问权限的 X 开发者账户、一个 X API 密钥和一个 API 秘密。您还需要一个 xAI API 密钥,您可以从 xAI 控制台 获取。
高级概述
我们的工具首先使用 过滤流 API,根据我们预先定义的过滤规则,从 X 获取实时比特币帖子。
每当有 5 个符合我们规则的帖子(任意数量,但可调整)时,我们会将它们批量发送到grok-3-fast
。它的任务是快速分类哪些帖子具有信号且值得评分——保留这些帖子并丢弃其余帖子。一旦我们达到 5 个高信号帖子(同样可调整),我们就会将该批次传递给grok-3-mini
,以利用其推理能力计算情感分数。之后,每当有新的高信号帖子加入该批次时,我们都会用完整的数据集重新计算分数。这是一个滚动更新,简单但有效。
这种模块化设计在几个方面取得了成功。它让我们对每个步骤进行细粒度控制,因为过滤和评分都有自己的提示,它们可以独立调整。如果以后我们想调整过滤标准或更换新的 xAI 模型,这只是一个简单的更改,与情感过程隔离,反之亦然。与单一的“超级提示”方法相比:那里的一处调整可能会波及所有内容,使结果变得混乱。
另一个优点是它如何发挥模型优势。分类是轻量级的,grok-3-fast
的速度能够很好地处理它,而不需要深入的推理。然而,情感需要更多:理解细微差别、讽刺或上下文。这就是grok-3-mini
的推理能力闪耀的地方——作为推理模型,它在响应之前“思考”,从而提供更具分析性的答案。通过这种方式分担工作量,我们获得了针对每个任务的效率和精确性。
更广泛地说,像 Grok 这样的 LLM 非常适合这种情况。帖子以各种语言(不限于英语)从 X 中涌入,Grok 毫不费力地处理它们,无需额外训练。此外,我们可以通过更新相应的提示来即时调整分类或情感标准,例如,捕获不同的信号或优化评分。与传统机器学习不同,传统机器学习需要从头开始重新训练模型,而这让我们能够快速实验并根据所看到的内容进行迭代。
上面概述的方法只是一种方式;您可以根据需要调整批次大小,或者只用更多的帖子重新计算情感。
使用过滤流 API
过滤流 API 是一个 X 端点,根据您定义的规则提供实时帖子。它是我们捕获比特币讨论的实时管道。您设置流规则,应用它们,然后监听,任何符合规则的帖子都会带有标签,显示它命中了哪个规则。如果您想了解完整细目,请查看 X 的 API 文档。对于本指南,它只是我们的实时数据源。
过滤流中的规则
规则驱动流,告诉它要抓取哪些帖子。您可以使用特定的关键字、运算符或用户过滤器创建它们,然后将它们发送到 API 以激活。一旦激活,流会返回每个匹配的 X 帖子数据,包括一个matching_rules
字段,用于跟踪是哪个规则触发了它。我们在这里将使用一个单一的、广泛的规则来捕获各种与比特币相关的帖子。
这简化了事情,但设置是灵活的。您可以添加多个规则来扩大范围——例如,一个用于高净值投资者的帖子,一个用于加密货币组织,另一个用于钱包追踪器。每个规则都可以针对情绪的不同角度,分别标记以供下游分析。
这是我们将使用的规则
此规则抓取提及BTC
、Bitcoin
、#BTC
、#Bitcoin
或bit coin
的帖子,但仅限于拥有至少 1,000 名关注者的账户,并排除转发和回复。即使grok-3-fast
稍后会过滤掉低信号帖子,此关注者阈值有助于提前减少噪音。
处理流数据
一旦过滤流 API 运行起来,我们需要将原始 JSON 响应塑造成可用数据。我们正在使用 Tweepy,一个简化 X API 交互的 Python 库,来处理流式传输和解析。下面的代码定义了Post
和Author
类来存储关键数据(文本、作者、时间戳),以及一个 XStream 类来处理传入帖子,并将它们存储在字典中以供后续步骤使用。
让我们启动流进行快速测试
好的,不错,传入的帖子符合我们规则的条件,提及比特币,来自拥有 1,000+ 关注者的账户,没有转发或回复。接下来,我们将对它们进行筛选,以滤除噪音。
将 Grok 引入方程
过滤嘈杂帖子
尽管我们的流规则经过过滤,但它仍然捕获了大量信息——并非所有信息都有用。广告、垃圾邮件或模糊的推文仍然会悄悄进入。正如概述中所述,我们每 5 条帖子进行批量处理,并将其发送到grok-3-fast
。它的任务是?快速分类哪些帖子具有信号——可能影响情绪的帖子——哪些没有。我们在这里不计算情绪,只是挑选出有价值的帖子以备后用。grok-3-fast
的速度使其非常适合此任务,可以立即筛选批次。
注意:
grok-3-fast
使用与grok-3
相同的底层模型,但具有延迟保证,从而显著加快响应时间。这使其非常适合对延迟敏感的用例,例如我们在此处探讨的实时任务。有关更多信息,请查看文档上的解释。
下面的提示告诉grok-3-fast
专注于推文内容——它是否传达了有关比特币市场情绪的有意义的信息?同时考虑作者详细信息(如关注者数量)以评估可信度。这只是编写它的一种方式;您可以对其进行调整,以更重视作者、添加新规则,或轻松地用通俗易懂的语言更改它。这是在此处使用 LLM 的一个优点——无需像传统机器学习那样重新训练,只需更新提示即可。
上面的分割显示它正在工作:高信号推文包含比特币市场洞察,而嘈杂的推文主要是促销、炒作/垃圾邮件或跑题。
计算情绪
过滤掉高信号帖子后,我们就可以对比特币市场情绪进行评分了。我们按照概述中的说明,批量处理前 5 个有效帖子,并将它们交给grok-3-mini
。它深入分析文本,权衡作者影响力,并输出一个从 -1(看跌)到 1(看涨)的得分,其中 0 为中性。
下面的提示告诉 Grok 分析推文内容以获取情绪,考虑关注者数量和作者知名度,并将其平均为一个最终得分,其答案格式包括其推理和导致该得分的关键推文。同样,此提示易于修改,可以根据您的要求添加/删除指令/标准。
这里有什么酷的?除了最终的情绪结果,我们还可以查看 Grok 的推理令牌,将其视为 Grok 在得出最终情绪分数之前所经历的思维过程。当您想要调试或编辑提示时,这非常有价值;查看模型正在进行的路径或选择意味着您可以进行更有针对性的提示修改,以实现所需的行为。
在下面的案例中,我们可以看到 Grok 实际上是通过对各个帖子进行加权平均来计算最终得分的,这是一个有趣的见解。
将所有内容整合起来
这就是一切融合的地方——实时流、过滤和评分。运行下面的单元格,观看帖子流入,通过grok-3-fast
进行分类,并实时看到通过grok-3-mini
更新的情绪。
结论
我们已经构建了一个工具,它从 X 的过滤流 API 中提取比特币帖子,使用grok-3-fast
过滤噪音,并使用grok-3-mini
的推理能力实时评分情绪。这是一个精简、可组合的系统——每个部分(流媒体、过滤、评分)都协同工作,提供实时市场洞察。
以下是我们学到的内容
- 模块化设置通常优于整体式设置,可以互换模型或调整部分而不会破坏整体。
- 将任务与模型优势匹配,例如
grok-3-fast
的速度用于过滤,grok-3-mini
的推理能力用于情绪分析。 - 提示是灵活的——可以用简单的英语进行调整,以根据您的需求改变焦点和调整行为。
- 像 Grok 这样的 LLM 在这里蓬勃发展:多语言、适应性强且迭代快速。
想更进一步吗?对于包含链接或媒体的高质量推文,让 Grok 深入挖掘内容——总结文章或使用其图像理解能力评估视觉情感。或者尝试动态:让 Grok 根据实际事件(例如,下跌后的“比特币崩盘”)实时创建流规则。实验、调整,看看它能带你走向何方。