用 Claude Messages API 流式输出回答
打开 Messages 流式接口,按事件打印文本增量并处理结束信号。
基于 Claude Docs 整理 · Streaming · 官方资料
面向用户的界面需要尽早显示首字。Anthropic Messages API 提供 streaming。
这篇跑通 stream 上下文管理器,打印 text 增量,并确认 message_stop。
最小流式调用
messages.stream
python
import anthropic
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=400,
messages=[{"role": "user", "content": "用四点说明流式输出的好处。"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print("\nstop:", final.stop_reason)最容易踩的坑
事件类型处理不全
除了 text,还要处理 content_block / message 生命周期事件;以官方事件表为准。