import anthropic
client = anthropic.Anthropic()
# Primeira solicitação com busca na web e ponto de interrupção de cache
messages = [
{
"role": "user",
"content": "Qual é o clima atual em San Francisco hoje?"
}
]
response1 = client.messages.create(
model="claude-opus-4-1-20250805",
max_tokens=1024,
messages=messages,
tools=[{
"type": "web_search_20250305",
"name": "web_search",
"user_location": {
"type": "approximate",
"city": "San Francisco",
"region": "California",
"country": "US",
"timezone": "America/Los_Angeles"
}
}]
)
# Adiciona a resposta do Claude à conversa
messages.append({
"role": "assistant",
"content": response1.content
})
# Segunda solicitação com ponto de interrupção de cache após os resultados da busca
messages.append({
"role": "user",
"content": "Devo esperar chuva mais tarde esta semana?",
"cache_control": {"type": "ephemeral"} # Cache até este ponto
})
response2 = client.messages.create(
model="claude-opus-4-1-20250805",
max_tokens=1024,
messages=messages,
tools=[{
"type": "web_search_20250305",
"name": "web_search",
"user_location": {
"type": "approximate",
"city": "San Francisco",
"region": "California",
"country": "US",
"timezone": "America/Los_Angeles"
}
}]
)
# A segunda resposta se beneficiará dos resultados de busca em cache
# enquanto ainda pode realizar novas buscas se necessário
print(f"Tokens de leitura de cache: {response2.usage.get('cache_read_input_tokens', 0)}")