TodayAI

用 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 生命周期事件;以官方事件表为准。

官方资料

Claude DocsStreaming Messages