Message Batches APIは、Messages APIと同じ機能セットをサポートしています。このページではMessage Batches APIの使用方法に焦点を当てていますが、Messages APIの機能セットの例についてはMessages APIの例 を参照してください。
Message Batchの作成
import anthropic
from anthropic. types. message_create_params import MessageCreateParamsNonStreaming
from anthropic. types. messages. batch_create_params import Request
client = anthropic. Anthropic( )
message_batch = client. messages. batches. create(
requests= [
Request(
custom_id= "my-first-request" ,
params= MessageCreateParamsNonStreaming(
model= "claude-opus-4-20250514" ,
max_tokens= 1024 ,
messages= [ {
"role" : "user" ,
"content" : "Hello, world" ,
} ]
)
) ,
Request(
custom_id= "my-second-request" ,
params= MessageCreateParamsNonStreaming(
model= "claude-opus-4-20250514" ,
max_tokens= 1024 ,
messages= [ {
"role" : "user" ,
"content" : "Hi again, friend" ,
} ]
)
)
]
)
print ( message_batch)
Message Batchの完了をポーリング
Message Batchをポーリングするには、そのid
が必要です。これは作成 リクエスト時のレスポンスまたは一覧表示 バッチで提供されます。例のid
: msgbatch_013Zva2CMHLNnXjNJJKqJ2EF
。
import anthropic
client = anthropic. Anthropic( )
message_batch = None
while True :
message_batch = client. messages. batches. retrieve(
MESSAGE_BATCH_ID
)
if message_batch. processing_status == "ended" :
break
print ( f"Batch { MESSAGE_BATCH_ID} is still processing..." )
time. sleep( 60 )
print ( message_batch)
ワークスペース内のすべてのMessage Batchを一覧表示
import anthropic
client = anthropic. Anthropic( )
for message_batch in client. messages. batches. list (
limit= 20
) :
print ( message_batch)
Message Batchの結果を取得
Message Batchのステータスがended
になると、バッチのresults_url
を表示し、.jsonl
ファイルの形式で結果を取得できるようになります。
import anthropic
client = anthropic. Anthropic( )
for result in client. messages. batches. results(
MESSAGE_BATCH_ID,
) :
print ( result)
Message Batchのキャンセル
キャンセル直後、バッチのprocessing_status
はcanceling
になります。同じバッチ完了のポーリング 技術を使用して、キャンセルが確定するまでポーリングできます。キャンセルされたバッチも最終的にended
になり、結果を含む場合があります。
import anthropic
client = anthropic. Anthropic( )
message_batch = client. messages. batches. cancel(
MESSAGE_BATCH_ID,
)
print ( message_batch)