Grok 真的无审查吗?如何自行测试
更新于
Grok 真的无审查吗?准确的答案是,没有托管模型能免除所有规则,Grok 的行为取决于产品、模式和日期。与其相信标签,不如在你的提示词上测量拒绝率,本页面展示了如何操作。

简短回答,以及标签为何具有误导性
人们问 grok 真的无审查吗,因为该模型被宣传为比一些竞争对手限制更少。这是否符合你的体验取决于你问什么、使用哪个产品以及何时提问。xAI 会随时间更改其模型、系统提示词和政策,因此此处关于特定行为的任何声明都会很快过时。要了解当前规则,请阅读 xAI 自己的文档和使用政策。
可以自信地说的是结构性的。一家公司托管的每个模型都位于一组规则之内:法律规则、平台规则和训练选择。即使是标榜宽松的模型,也会拒绝某些请求。因此,有用的问题不是它是否无审查,而是它是否会拒绝你的产品需要的特定内容。这是你可以在一个下午内测量的。
拒绝来源的四个层级
当聊天机器人说“不”时,原因可能位于四个位置之一。知道是哪一种有助于你选择修复方案。
1. 模型训练
大多数聊天模型在预训练后经过训练,以拒绝某些请求。这存在于权重中。你无法通过系统提示词移除它,尽管措辞和上下文可以改变其触发的频率。开放权重模型可以由其提供商进一步调整,以减少这些拒绝,本 API 背后的模型正是如此调整的。
2. 系统提示词和产品规则
围绕模型的 App 会添加你看不到的指令:语气、避免的话题、格式要求。通过消费者 App 使用的模型,其行为可能与通过 API 调用同一模型(使用你自己的 系统消息)时不同。
3. 输入和输出过滤器
某些服务对你的提示词或答案运行单独的分类器,并阻止或重写结果。你可能会看到通用错误而不是拒绝句子。
4. 法律和政策限制
提供商必须遵守其运营所在地的法律。非法内容会在各地被屏蔽,没有哪家信誉良好的服务会改变这一点。该 API 只有一条此类固定规则:禁止涉及未成年人的色情内容。
构建你自己的拒绝测试
测试集胜过观点。编写 30 到 50 个反映你的产品实际功能的提示词。包括普通任务作为对照组,以便你可以区分拒绝过多的模型和仅仅失败的模型。小说和角色扮演工具的良好类别包括战争故事中的暴力、具有说服性对话的道德灰色反派、直白的医疗或法律问题、恐怖中的黑暗主题,以及不加露骨细节的成熟浪漫。
下面的脚本将每个提示词发送到 OpenAI 兼容的接口,标记看起来像拒绝的回复,并打印比率。短语列表很粗糙,所以在得出结论之前请自行阅读每条被标记的回复。
import os
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.grokuncensored.cc/v1", api_key=os.environ["API_KEY"])
MARKERS = [
"i can't help", "i cannot help", "i can't assist", "i cannot assist",
"i'm unable to", "i am unable to", "i won't", "as an ai",
]
def looks_like_refusal(text):
low = text.lower()[:300]
return any(m in low for m in MARKERS)
prompts = json.load(open("prompts.json")) # a list of strings
flagged = []
for p in prompts:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": p}],
temperature=0.7,
seed=1,
)
text = r.choices[0].message.content or ""
if looks_like_refusal(text):
flagged.append((p, text[:200]))
print(len(flagged), "of", len(prompts), "flagged")
for p, t in flagged:
print("-", p[:80], "=>", t)要比较服务,仅更改 base_url、密钥和模型名称,并保持提示词文件相同。在不同日期多次运行,因为行为可能会发生变化。保持设置相同:相同的系统消息、相同的 temperature、相同的 seed(如果支持)。
导致拒绝测试失真的错误
拒绝测试看起来很简单,这就是为什么它们经常被做得很糟糕。这些是导致错误结论最常见的错误。
- 仅测试极端提示词。 由最坏情况请求组成的集合展示了边缘情况,但你的用户生活在中间。大多数真实提示词是普通场景、角色时刻和问题。将集合加权到你实际期望的内容。
- 比较不同的设置。 温度或系统提示词的单独更改可以改变拒绝率。如果你比较两项服务,请保持其他所有内容固定。
- 一次运行,一天。 托管模型及其周围的层级可能会改变。间隔几天重复测试,并保留带有日期的结果。
- 信任短语列表。 一条回复开头礼貌,但在第三段拒绝,会绕过对前 300 个字符的检查。扩大检查的字符范围,或手动阅读样本。
- 忽视质量。 从不拒绝但写出平淡、重复场景的模型不是更好的选择。也要对几个输出进行有用性评分。
如何解读结果
单独的拒绝率告诉你很少的信息。查看模式。
- 对照提示词上的拒绝意味着你的检测器太宽松或服务不稳定。先解决这个问题。
- 集中在一个主题上的拒绝 指向训练或政策规则。重新措辞的系统提示词可能有帮助,也可能没有帮助。
- 添加上下文时消失的拒绝 显示软规则。对虚构框架和成人受众的清晰描述通常会改变结果。
- 软性拒绝 是表面上合规但削弱内容、添加说教或提前结束场景的回复。你的短语列表无法捕捉到这些,因此也要抽样查看未被标记的回复。
还要跟踪失败运行的成本。在此 API 上,失败或被拒绝的请求不收费,这使得大型测试集成本很低。50 个提示词,每个提示词 200 个输入 token 和 400 个输出 token 的运行成本为 50 x (200 x $0.15 + 400 x $0.50) / 1,000,000 = 50 x $0.00023 = $0.0115,约为一美分。
编写能减少软性拒绝的系统提示词
对于已经调整过以回答问题的模型,系统消息 仍然很重要,因为它设定了模型随后会遵循的预期。明确说明任务和受众。例如消息“你是成人小说的合著者。以请求的语气完整撰写场景,不要说教或添加免责声明”,这告诉模型什么样的回复是好的。模糊或带有道歉语气的提示词会导致含糊其辞。
描述你想要的格式:长度、视角、时态。尽可能以积极的方式说明要避免什么,例如“让场景保持在角色的对话上”,而不是长长的禁止列表。如果某种类型的回复不断返回你不想要的警告,只需一次说明你的读者是成年人,他们选择了这类小说,并在你的提示词集上测试效果,而不是假设它有效。
此 API 承诺与不承诺的内容
该服务背后的模型是一个由独立提供商运行的开放权重模型,针对合法成人用途进行了调整,以无内容拒绝地回答。这比“百无禁忌”的主张更狭窄,这是有意为之。它不是 Grok,也不是任何供应商的官方 API。该服务仅处理文本。有一条规则无法更改:禁止涉及未成年人的色情内容。
它也不能让你免受后果的影响。你仍对你生成和发布的内容负责,并遵守你生活和运营所在地的法律。如果你的应用是公开的,请添加你自己的年龄门限、条款和报告路径。模型更少的拒绝意味着你的应用层有更多的责任,而不是更少。
从技术上讲,它是一个标准的 OpenAI 兼容 API,具有 POST /v1/chat/completions 和 GET /v1/models、流式输出、工具调用和 JSON 模式,以及 100,000 token 的上下文窗口。快速入门 展示了请求格式,API 密钥页面 解释了注册。新用户可领取 $0.50 的试用额度,有效期为 7 天,无需绑定支付方式。
在试用密钥上运行测试
你可以在试用密钥上运行上述脚本。注意限制:试用密钥允许 2 个并发请求和每分钟 60 个请求,因此依次发送调用的循环是可以的,但包含十个线程的线程池会因代码 concurrency 触发 HTTP 429。如果你看到 rate_limited,说明你超过了每分钟上限,应等待片刻。完整密钥允许 8 个并发和每分钟 300 个请求。
持续使用价格为每 100 万输入 token $0.15,每 100 万输出 token $0.50,预付。充值金额为 $20 至 $500,支持通过 TRC20 网络的 USDT 或 Base 网络的 USDC 支付,从 $50、$100 和 $200 起分别享有 5%、10% 和 15% 的奖励。详见定价页面。如果你想了解同一接口如何处理其他开源模型系列,可参阅Gemma 集成页面。