这一页回答什么
本页列出 Grox 理解帖子所用的分类器。对每个分类器,本页说明它判定的内容、读取的输入、使用的模型、输出的标签或分数、阈值,以及结果的写入位置和读取方。进程与 Plan 的执行框架见 Grox 服务架构。
核心结论
- 分类器不再共用基类:旧版的
ContentClassifier三段式基类已删除。每个 flow 自带分类器类。它们的共同做法是“渲染成对话 → 采样 → 用正则提取<json>...</json>→ Pydantic 校验”。 - 配置直接写具体模型型号,并引入 Gemma:旧版的
VLM_PRIMARY、VLM_SAFETY等别名已删除。配置现在直接写 Grok 型号(grok-4-mini-critical、grok-4-1-fast-hedgehog-critical等)、EAPI 推理模型(Grok 4.3、4.5、4.6)和 OpenAI 协议的oai-gemma4-26b系列(grox/config/config.py:79-94)。 - PTOS 采用多级判定:分类器先判违规类别,再按类别判具体策略类型。儿童安全、暴力媒体、违法违规三类再由另一个模型交叉验证。成人内容另由非 LLM 图片分类器 safemodel 与 Grok 4.5 仲裁。
- PTOS 结果直接转为处置:写入 Task 把策略类型映射成帖子安全标签(
NsfwHighPrecision、GoreAndViolenceHighPrecision、SpamHighRecall等)。它还能退回帖子、发送自伤求助信息、封禁儿童性剥削账号(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:162-314)。 - banger 质量分已删除:旧版在
quality_score >= 0.4时判为通过。现在分类器不再输出质量分,写入统一帖子注解时qualityScore固定为1.0(grox/flows/upa/task_write.py:177)。 - 回复按“线程粉丝数”分流:根帖作者或被回复者的粉丝数 > 250,000 时,Grok 给回复打 0–3 分;否则 Gemma 判定是否为垃圾回复。得 0 分的回复会被打上
RiskyHighVizReply标签(grox/flows/reply_spam/constants.py:8、grox/flows/reply_spam/task_write.py:140-141)。 - 提示词不开源:所有
.j2提示词模板都不在仓库中,目的是降低被针对性规避的风险(grox/flows/ptos/prompts.py:11)。因此,读者无法读到分类器的判定标准。
分类器总表
| 分类器 | 所在 Plan | 判定内容 | 输入 | 模型 | 输出 | 关键阈值或门槛 |
|---|---|---|---|---|---|---|
SafetyPtosCategoryClassifier |
safety_ptos 等 |
帖子违反了哪些安全策略类别 | 作者资料 + 帖子(含被回复帖)+ 媒体帧 | 按模式选 Grok;标准、恢复、锚点模式优先用 Gemma | SafetyPostAnnotations:违规类别列表,每项带 score |
无数值阈值;模型给出类别即进入下一步 |
SafetyPtosPolicyClassifier |
同上 | 某一类别下的具体策略类型 | 同上;暴力言论、自伤类改为渲染整条线程 | 按类别选 Gemma、Grok 或 EAPI 推理模型 | SafetyPolicy:policyType、confidenceScore、reason |
DELUXE 模式下,赞数 ≥ 128 用 Grok 4.3,≥ 1024 用 Grok 4.6 |
SafetyPtosChildSafetyPolicyClassifier |
同上 | 儿童安全策略类型 | 作者 + 帖子 + 帖子发布日期 | oai-gemma4-26b |
SafetyPolicy |
采样或解析失败时一律判 NoViolation |
SafetyPtosPolicyCrossValidator |
同上 | 复核前一步的违规结论 | 同上 | 儿童安全、暴力媒体用 Grok 4.5;违法违规用 Grok 4.1 fast | 修正后的 SafetyPolicy |
两个模型给出的类型不一致时,降级或改判无违规 |
| safemodel sex-and-nudity | 同上 | 图片或视频帧是否为成人内容 | 最多 12 张图片或帧,每个视频最多 8 帧 | 非 LLM 图片分类器(HTTP 服务) | 分级桶;R 或 X 视为阳性 |
任一张出错时,丢弃整条结论 |
SafetyPtosAdultContentCrossValidationJudge |
同上 | PTOS 与 safemodel 意见不一致时仲裁 | 作者 + 帖子 + 成人策略提示词 | Grok 4.5(EAPI) | SafetyPolicy |
仲裁结果不是 Hard 时,改判 AdultContentSexualSoft |
| 红外伪装成人视频检测 | safety_ptos_media_injected_adult_infrared_video_spam_detection |
视频是否模仿已确认违规视频的手法 | 帖子视频分镜 + 参考包中的违规视频分镜 | grok-4-1-fast-hedgehog-critical |
violation 布尔值 + 理由 |
赞数 ≥ 64 才进入;≥ 512 开启推理 |
BangerInitialScreenGemmaClassifier |
banger_initial_screen |
帖子主题、标签、安全布尔量、AI 套路化程度 | 作者 + 帖子 + Grok 话题表 | oai-gemma4-26b-upa |
摘要、标签、话题及分数、tweet_bool_metadata、slop_score、has_minor_score |
只处理非回复、非私密账号的帖子 |
PostSafetyDeluxeClassifier |
post_safety |
帖子安全布尔量 | 作者 + 帖子 | grok-4-1-fast-hedgehog-critical,开启推理 |
tweet_bool_metadata |
只处理非回复、非私密账号的帖子 |
ReplyScorer |
reply_ranking |
回复对线程的价值 | 整条线程 + 互动信号 + 粉丝数 | grok-4-mini-critical,回退到 grok-4-1-fast-hedgehog-critical |
score ∈ [0, 3] + reason |
线程粉丝数 > 250,000 才进入 |
SimpleReplyScorer |
spam_comment |
回复是否为垃圾回复 | 同上 | oai-gemma4-26b-2;线程粉丝数 > 125,000 时改用 oai-gemma4-26b-reply-spam;带引用帖时改用 ReplyScorer |
score ∈ [0, 3];0 视为垃圾 |
线程粉丝数 ≤ 250,000 才进入 |
CoordinatedSpamScorer |
coordinated_spam |
线程中是否有多个账号协同发布垃圾回复 | 整条线程,每帖最多 2 个媒体 | oai-gemma4-26b-2 |
被判为垃圾的帖子 ID 列表 | 根帖粉丝 ≥ 180,000;线程至少 2 层;只标出 1 帖时作废 |
MultiStepReplySpamScorer |
multi_step_reply_spam |
同一账号是否分多步发布垃圾回复 | 线程(最多 10 帖,超出时取首尾各 5 帖) | oai-gemma4-26b-2 |
被判为垃圾的帖子 ID 列表 | 根帖粉丝 ≥ 1,000;上一帖与本帖同作者;只标出 1 帖时作废 |
模型型号均来自代码中的配置键名(grox/config/config.py:79-94、grox/flows/ptos/constants.py:22-23、grox/flows/upa/constants.py:11、grox/flows/reply_spam/constants.py:5-6)。键名对应的实际端点和温度写在不开源的 YAML 中。ModelConfig 的温度开源默认值为 0.7,EapiModelConfig 为 0.0001(grox/config/config.py:62、grox/config/config.py:74)。旧页面写的 temperature = 0.000001 已不在代码中。
PTOS:安全策略判定
PTOS 是 X 的平台安全策略体系。Grox 用 SafetyPolicyCategory 列出 14 个违规类别,用 SafetyPolicyType 列出 40 个具体策略类型(grox/flows/ptos/state.py:11-80)。
标准链路
PlanSafetyPtos 的任务顺序如下(grox/flows/ptos/plan_safety_ptos.py:23-55):
flowchart LR
F["过滤<br/>无作者则跳过"] --> RL["60 秒去重"]
RL --> DD["最小热度去重<br/>已在处理或已有结果则跳过"]
DD --> MH["媒体水合"]
MH --> C["类别检测"]
C --> P["策略判定<br/>+ 交叉验证"]
P --> SM["safemodel<br/>成人图片分类"]
P --> CV["成人内容仲裁"]
SM --> CV
CV --> W["写入结果<br/>打标签与处置"]
模式。生成器类型决定 SafetyPtosMode(grox/flows/ptos/mode.py:13-26)。safety_ptos_deluxe、特殊视频、前段帧、关键帧四类流属于 DELUXE;恢复流、回填流、集群锚点流各对应一种模式;其余流为 STANDARD。在回填模式下,分类出错会让整条任务失败;在其他模式下,分类出错只记日志,任务继续执行(grox/flows/ptos/mode.py:31-32)。
类别检测。各模式使用的模型如下(grox/flows/ptos/task_safety_ptos_category.py:16-40):
| 模式 | Grok 模型 | 是否优先 Gemma |
|---|---|---|
| STANDARD | critical-safety |
是 |
| DELUXE | grok-4-1-fast-hedgehog-critical,开启推理 |
否 |
| RECOVERY | grok-4-1-fast-hedgehog |
是 |
| BACKFILL | grok-x-algo-extra |
否 |
| LIVE_CLUSTER_ANCHORS | critical-safety |
是 |
“优先 Gemma”指分类器按 use_oai_gemma4_dial = 1.0 的概率先调用 oai-gemma4-26b,失败后再回退到 Grok(grox/flows/ptos/classifier.py:122、grox/flows/ptos/classifier.py:171-183)。开源默认值 1.0 表示全部请求先调用 Gemma。
策略判定。TaskSafetyPtosPolicyDetection 对每个违规类别分别判定(grox/flows/ptos/task_safety_ptos_policy.py:83-117):
| 类别 | 判定方式 |
|---|---|
AdultContent 且帖子此前已被 PTOS 标为 NSFW |
不再调用模型,直接记为 AdultContentSexualHard |
ChildSafety |
专用 Gemma 分类器,再经 Grok 4.5 交叉验证 |
ViolentMedia、IllegalAndRegulatedBehaviors |
SafetyPtosPolicyClassifier,再交叉验证 |
Spam、HateOrAbuse、ViolentSpeech、SuicideOrSelfHarm、AgeGatingHarmfulText、AdultContent |
SafetyPtosPolicyClassifier |
其他类别(如 TerrorismOrViolentExtremism、CivicIntegrity) |
不在 SUPPORTED_CATEGORIES 中,返回空结果,不判定策略 |
SafetyPtosPolicyClassifier 内部再按类别选择采样路径(grox/flows/ptos/classifier.py:576-669):
Spam、IllegalAndRegulatedBehaviors、AgeGatingHarmfulText先调用 Gemma,失败后回退到 Grok。ViolentSpeech、SuicideOrSelfHarm总是开启推理。帖子有祖先帖时,分类器渲染整条线程。- DELUXE 模式下,类别为
AdultContent、ViolentMedia且赞数 ≥HIGH_FAV_THRESHOLD(128)时:赞数 ≥ 1024 用 Grok 4.6 internal,否则用 Grok 4.3(grox/flows/ptos/constants.py:25、grox/flows/ptos/classifier.py:630-640)。两者都有熔断器:失败率 ≥ 0.5 时熔断 600 秒,并回退到普通 Grok(grox/flows/ptos/classifier.py:70-102)。 Spam类别额外渲染媒体中的 @标记。在集群锚点模式下,Spam不渲染作者资料。
交叉验证。SafetyPtosPolicyCrossValidator 只复核已判为违规的结论(grox/flows/ptos/classifier.py:235-246):
| 类别 | 复核模型 | 意见一致 | 意见不一致 | 复核失败 |
|---|---|---|---|---|
ChildSafety |
Grok 4.5 | 保留 | 改判 NoViolation |
改判 NoViolation |
ViolentMedia |
Grok 4.5 | 保留 | 复核判无违规时改为 NoViolation;类型不同时降级为 ViolentMediaGraphicMedia |
降级为 ViolentMediaGraphicMedia |
IllegalAndRegulatedBehaviors |
Grok 4.1 fast | 保留,理由替换为复核理由 | 改判 NoViolation |
改判 NoViolation |
出处:grox/flows/ptos/classifier.py:248-404。三类的判定取向不同。儿童安全与违法违规要求两个模型一致才认定违规。暴力媒体保留“有暴力”的结论,只在细分类型上取最轻的一档。
高热度成人复查。部分帖子会以 score=50 补跑一次成人内容策略判定(grox/flows/ptos/task_safety_ptos_policy.py:139-183)。条件为:DELUXE 模式、赞数 ≥ 128、带媒体、类别检测未报成人内容、此前也未被标为 NSFW。
safemodel 成人图片分类。TaskSafetyPtosSafemodelSexNudity 调用一个独立的图片分类服务,classifier_slug 为 sex-and-nudity(grox/flows/ptos/task_safety_ptos_safemodel_sex_nudity.py:22-33)。开源默认值为:任务超时 15 秒,单次 HTTP 超时 5 秒,最多重试 3 次,每个视频最多 8 帧,每帖最多 12 张。返回桶为 R 或 X 时判为阳性。非 DELUXE 流只在类别检测已报成人内容时调用它;DELUXE 流对所有未标 NSFW 的带媒体帖子调用它(grox/flows/ptos/task_safety_ptos_safemodel_sex_nudity.py:75-96)。
成人内容仲裁。仲裁只在 DELUXE 流运行。它比较两个信号:safemodel 是否为阳性,PTOS 是否判为 AdultContentSexualHard。两者不一致时,Grok 4.5 仲裁。仲裁结果不是 Hard 时,结论改判为 AdultContentSexualSoft,并清除 safemodel 阳性(grox/flows/ptos/task_safety_ptos_adult_content_cross_validation.py:67-152)。仲裁调用失败时,特殊视频流与前段帧流“从严”改判 Soft,其他流保留原结论(grox/flows/ptos/task_safety_ptos_adult_content_cross_validation.py:112-121)。
写入:从策略类型到标签与处置
TaskWriteSafetyPostAnnotationsResultSink 先把本次注解追加到该帖已有的注解列表。随后它计算四个布尔量,并与已有值取逻辑或(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:78-159):
| 布尔量 | 条件 |
|---|---|
isGore |
ViolentMedia 判为任一违规类型 |
isNsfw |
AdultContent 判为 AdultContentSexualHard |
isSoftNsfw |
AdultContent 判为 AdultContentSexualSoft |
isSpam |
Spam 或 IllegalAndRegulatedBehaviors 判为任一违规类型 |
然后,写入 Task 对每条违规打标签或执行处置(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:196-312)。“高影响力作者”指 PageRank v2 高分用户或灰标(政府)认证用户:
| 违规 | 动作 | 高影响力作者豁免 |
|---|---|---|
ViolentMedia 任一违规且帖子带媒体 |
打 GoreAndViolenceHighPrecision |
否 |
AdultContentSexualHard |
打 NsfwHighRecall;带媒体时再打 NsfwHighPrecision |
否 |
AdultContentSexualSoft |
打 SoftNsfw |
否 |
SpamEngagementBaiting、SpamEngagementFarming、SpamCardManipulation |
打 SpamHighRecall |
否 |
其他 Spam 违规 |
打 SpamHighRecall |
是 |
IllegalAndRegulatedBehaviors 任一违规 |
打 SpamHighRecall |
是 |
HateOrAbuseInsultsWithTarget 且帖子语言为英语 |
打 FosnrAbuseInsults |
是 |
SuicideOrSelfHarmEncouraging、SuicideOrSelfHarmDepiction |
退回帖子 | 是 |
SuicideOrSelfHarmExpressingDesire |
向作者发送求助支持信息 | 否 |
ChildSafetySexualExploitation |
封禁作者 | 是 |
| 全部 | 打 PtosReviewed |
— |
对测试账号,写入 Task 只打 PtosReviewed,不执行其他动作(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:179-186)。
safemodel 为阳性而 PTOS 未判 Hard 时,写入 Task 追加一条 identifier="safemodel-sex-nudity" 的注解。该注解的策略类型记为 AdultContentSexualHard,置信度为 safemodel 置信度 × 100,并按上表打成人标签(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:405-458)。最后,写入 Task 调用 grokPtosDeleteLabels 清除不再成立的标签,并把结果写入 Manhattan 和 Kafka(grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:460-492)。
可见性过滤 的规则最终读取这些标签。例如,NsfwHighPrecision、GoreAndViolenceHighPrecision、FosnrAbuseInsults 都有对应规则(visibility-filtering/rules/tweet_rules.rs:170、visibility-filtering/rules/tweet_rules.rs:457、visibility-filtering/rules/tweet_rules.rs:587)。标签与规则的对应关系见 标签规则。
PTOS 专项链路
| Plan | 准入条件 | 与标准链路的差别 | 出处 |
|---|---|---|---|
safety_ptos_realtime_with_signals |
正文与媒体中 @ 的账号合计 ≥ 2;作者不是高影响力作者;等待 10 秒后帖子仍无 SpamHighRecall |
只判定 Spam 一个类别,使用 oai-gemma4-26b-ptos-realtime |
grox/flows/ptos/task_filter.py:37-100、grox/flows/ptos/task_ptos_spam_detection.py:22-62 |
safety_ptos_special_video |
带视频、赞数 ≥ 64 | 抽帧时开启“运动揭示”帧;检测不到这类手法时停止 | grox/flows/ptos/task_safety_ptos_special_video_filter.py:16-50、grox/flows/ptos/task_special_video_screen.py:13-49 |
safety_ptos_adult_content_leading_frames |
视频 ≥ 30 秒或带直播;已有 PTOS 结果且未标 NSFW;此前报过成人内容,或赞数 ≥ 512 | 只从视频前 10 秒抽帧重新判定 | grox/flows/ptos/constants.py:31-33、grox/flows/ptos/task_safety_ptos_adult_content_leading_frames_filter.py:24-83 |
safety_ptos_key_frames |
带视频、赞数 ≥ 128、未标 NSFW;此前报过成人内容,或赞数 ≥ 1024 | 用“裸露 vs 着装”两条查询给帧打嵌入分,挑选关键帧;跳过类别检测,只执行高热度成人复查 | grox/flows/ptos/task_safety_ptos_key_frames_filter.py:23-90 |
safety_ptos_media_injected_adult_infrared_video_spam_detection |
带视频、赞数 ≥ 64、未标 NSFW | 把帖子视频与参考包中已确认违规视频的分镜对比;命中时记为 Spam / SpamManipulatedMedia;单次超时 60 秒 |
grox/flows/ptos/task_safety_ptos_media_injected_adult_infrared_video_spam_detection.py:47-189 |
safety_ptos_live_cluster_anchors |
消息只带锚点帖 ID 和集群 ID | 先补全帖子;不写安全注解,不打标签。判决写入 Manhattan 并发送到 Kafka;只有判出 Spam 违规时 enforceDecision=true |
grox/flows/ptos/task_write_live_cluster_anchor_verdict_sink.py:35-151 |
帖子统一注解(UPA)
banger 初筛。TaskBangerScreen 每 3600 秒刷新一次 Grok 话题表,并把话题表连同帖子交给 BangerInitialScreenGemmaClassifier(grox/flows/upa/task_banger_screen.py:17-61)。分类器输出以下字段(grox/flows/upa/classifier_banger_initial_screen_gemma.py:44-51):
description、tags:帖子摘要和标签。taxonomy_categories:话题名称与分数。名称必须能在输入话题表中找到,否则整次解析报错(grox/flows/upa/classifier_banger_initial_screen_gemma.py:129-135)。tweet_bool_metadata:isHighQuality、isNsfw、isGore、isViolent、isSpam、isSoftNsfw、isAdult七个布尔量(grox/flows/upa/models.py:13-20)。slop_score、has_minor_score、is_image_editable_by_grok。
TaskPublishUnifiedPostAnnotationsManhattan 把这些字段写入统一帖子注解。话题按 entity domain 236 写入,每个话题只保留最高分(grox/flows/upa/task_write.py:91-161)。qualityScore 固定写为 1.0(grox/flows/upa/task_write.py:177)。
帖子安全 deluxe。PostSafetyDeluxeClassifier 只输出 tweet_bool_metadata(grox/flows/upa/state_post_safety.py:8-9)。TaskUpsertTweetBoolMetadataToUnifiedPostAnnotation 再把它补写进统一帖子注解。
两个 Plan 都调用 grokUpaActionWithLabels,由服务端把布尔量转换成安全标签(grox/flows/upa/task_grok_upa_action_with_labels.py:22-63)。布尔量与标签的映射在服务端,源码未包含。home-mixer 的品牌安全判定检查帖子是否带有 Grok 打的 GROK_SFA 或 GROK_NSFA_LIMITED 标签;两者都没有时,按中风险处理(home-mixer/models/brand_safety.rs:116-120)。源码未直接写明这两个标签是否由 grokUpaActionWithLabels 产生(推测是)。
回复打分与垃圾回复
四个 Plan 共享一个 Kafka 流,过滤器按线程分流(grox/flows/reply_spam/task_filter.py:17-249、grox/flows/reply_spam/task_multi_step_reply_spam.py:25-125)。“线程粉丝数”指根帖作者与被回复者粉丝数中的较大值:
| Plan | 准入 | 共同排除 |
|---|---|---|
reply_ranking |
线程粉丝数 > 250,000 | 非回复帖;回复自己或根帖作者的帖子 |
spam_comment |
线程粉丝数 ≤ 250,000 | 同上,另外排除 Grok 官方账号的回复 |
coordinated_spam |
根帖粉丝 ≥ 180,000,线程 ≥ 2 层,回复者不是高影响力作者 | 回复根帖作者本人的帖子 |
multi_step_reply_spam |
根帖粉丝 ≥ 1,000,线程 ≥ 2 层,上一帖与本帖同作者,回复者不是高影响力作者 | 祖先帖已被删除 |
ReplyScorer。它先用 grok-4-mini-critical 带 JSON schema 采样。输出中找不到含 score 的 JSON 时,它改用 grok-4-1-fast-hedgehog-critical 并关闭推理重新采样(grox/flows/reply_spam/classifier_reply_ranking.py:80-94)。解析依次尝试 Pydantic、json_repair、正则。分数不在 0–3 之间时报错(grox/flows/reply_spam/classifier_reply_ranking.py:109-172)。
SimpleReplyScorer。它用更简短的提示词调用 Gemma,解析逻辑与 ReplyScorer 相同。回复带引用帖时,它直接把回复交给 ReplyScorer(grox/flows/reply_spam/classifier_simple_reply_scorer.py:25-72)。它取代了旧版的 SpamEapiLowFollowerClassifier。
协同垃圾与多步垃圾。两个分类器都让 Gemma 按序号列出线程中的垃圾帖,再执行三层后处理(grox/flows/reply_spam/classifier_coordinated_spam.py:31-101、grox/flows/reply_spam/classifier_multi_step_reply_spam.py:32-89):
- 最新一条回复不在名单中时,整份名单作废。
- 协同垃圾:最新回复的作者此前被根帖作者回复过时,名单作废。多步垃圾:只保留与最新回复同作者的帖子。
- 名单只剩 1 帖时,名单作废。
写入。TaskWriteReplyRankingManhattan 只在新分数低于已有分数时写入。分数为 0 时,它先打标签(grox/flows/reply_spam/task_write.py:107-155)。协同垃圾与多步垃圾对名单中的每个帖子写入 0 分并打标签。这些路径打的标签都是 RiskyHighVizReply。豁免条件为:作者 user cred 分 ≥ 66(没有该分时看作者是否为高 PageRank 账号)、灰标认证、测试账号(grox/flows/reply_spam/constants.py:9、grox/flows/reply_spam/task_write.py:39-80)。分数 ≤ 1.0 的回复还会写入两个机房的缓存(grox/flows/reply_spam/strato_loader.py:20-46)。
设计决策
| 决策 | 理由 |
|---|---|
| 每个 flow 自带分类器类 | 不同判定在输入渲染、采样回退、解析容错上差异大;共用基类反而需要处处覆写 |
| 低风险类别交给 Gemma | 垃圾、违法、年龄限制文本的量大,用较小模型降低成本;严重类别保留 Grok |
| 严重结论由两个模型复核 | 儿童安全、违法违规会触发封号等硬处置;两个模型一致才认定违规,可以降低误判 |
| 按赞数分档升级模型 | 热帖误判的影响面大;128、1024 两档逐级换用更强的推理模型 |
| 非 LLM 图片分类器加 LLM 仲裁 | 专用分类器负责召回成人图片;意见冲突时再由 Grok 4.5 判定 |
| 高影响力作者豁免部分标签 | 垃圾类和辱骂类标签误伤高 PageRank 账号、政府账号的代价高(推测) |
| 回复分只降不升 | 多次打分取最低值;垃圾回复一旦被识别,不会因后续重算而恢复高分 |
| 提示词不开源 | 降低被针对性规避的风险 |
FAQ
Q:“banger” 现在还代表质量分吗?
A:不代表。banger_initial_screen 这个 Plan 名保留了,但它现在产出摘要、标签、话题、安全布尔量和 slop_score。旧版的 quality_score 与 0.4 阈值已删除,写入时 qualityScore 恒为 1.0。
Q:帖子被 PTOS 判为违规后,多久生效? A:写入 Task 同步调用 Strato 打标签。标签写入后,读取方即时生效。Grox 处理本身有排队延迟:帖子达到一定互动后,最小热度流才把它写入 Kafka 主题。具体门槛不在 Grox 代码中。
源码锚点
grox/flows/ptos/state.py:11-136—— 违规类别、策略类型与状态对象grox/flows/ptos/classifier.py:105-781—— 类别、策略、儿童安全、交叉验证、成人仲裁五个分类器grox/flows/ptos/task_safety_ptos_policy.py:83-183—— 按类别分派与高热度成人复查grox/flows/ptos/task_safety_ptos_safemodel_sex_nudity.py:22-153—— safemodel 调用与阳性判定grox/flows/ptos/task_write_safety_post_annotations_result_sink.py:78-492—— 布尔量、标签与处置grox/flows/upa/classifier_banger_initial_screen_gemma.py:44-154—— banger 初筛输出grox/flows/upa/task_write.py:29-243—— 统一帖子注解写入grox/flows/reply_spam/task_filter.py:17-249—— 回复分流grox/flows/reply_spam/classifier_reply_ranking.py:30-172—— 回复打分与容错grox/flows/reply_spam/task_write.py:39-206—— 回复分写入与RiskyHighVizReply