You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Claude API生成特定词汇后立即停止输出?

解决Claude API生成特定词汇时立即停止输出的问题

核心方案

Anthropic的Claude API自带**停止序列(stop sequences)**功能,能在生成内容触发指定词汇时立刻终止输出,直接解决token浪费的问题。配合提示词强化约束,可进一步降低违规词汇的出现概率。

具体操作步骤

1. 配置停止序列参数

在请求的payload里添加stop_sequences字段,将需要拦截的词汇放入数组。只要模型生成该词汇,就会马上停止继续输出。

2. 优化提示词明确规则

在prompt里清晰说明禁止词汇,同时点明违规会触发停止,让模型更明确约束条件。

3. 完整可运行代码

import requests

API_KEY = "你的API密钥"
API_ENDPOINT = "https://api.anthropic.com/v1/messages"

# 定义需要拦截的禁止词汇列表
FORBIDDEN_WORDS = ["blood"]

payload = {
    "model": "claude-3-5-sonnet-20240620",
    "max_tokens_to_sample": 500,
    "messages": [
        {
            "role": "user",
            "content": "给我讲一个500字的笑话,绝对不能包含'blood'这个词。如果不小心用到这个词,立刻停止生成。"
        }
    ],
    # 设置停止序列,匹配禁止词汇
    "stop_sequences": FORBIDDEN_WORDS
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
    "anthropic-version": "2023-06-01"
}

response = requests.post(API_ENDPOINT, json=payload, headers=headers)
generated_content = response.json()["content"][0]["text"]

# 可选:验证结果是否包含禁止词汇,用于后续处理
if any(word in generated_content for word in FORBIDDEN_WORDS):
    print("生成内容包含禁止词汇,已自动终止")
else:
    print(generated_content)

重点注意事项

  • 停止序列的大小写:stop_sequences区分大小写,如果需要不区分,可添加所有大小写变体(比如["blood", "Blood", "BLOOD"])。
  • API版本要求:Claude 3系列必须在请求头里携带anthropic-version字段,推荐用2023-06-01及以上版本。
  • 提示词辅助:虽然停止序列能强制终止,但明确的提示词可以减少模型生成违规词汇的几率,避免频繁中断。

内容的提问来源于stack exchange,提问作者okokok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:42:10