cache_optimized_prompt.py anthropic prompt caching
import anthropic
client = anthropic.Anthropic()
# 静的な大規模ドキュメントを定義
STATIC_SYSTEM_DOCS = "..." # 2,048トークン以上
def query_with_prompt_caching(user_query: str):
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
system=[
{
"type": "text",
"text": STATIC_SYSTEM_DOCS,
"cache_control": {"type": "ephemeral"} # プロバイダーにキャッシュ保持を指示
}
],
messages=[
{"role": "user", "content": user_query}
]
)
# キャッシュの動作状況を確認
usage = response.usage
print(f"Cached Tokens: {getattr(usage, 'cache_read_input_tokens', 0)} | Non-cached: {usage.input_tokens}")
return response.content[0].text