โ† Semua pembelajaran / Python untuk AI Engineer
Fase 4 ยท Bicara dengan LLM

anthropic-sdk-python

Peta SDK Python resmi: client sync dan async, konfigurasi, helper, dan di mana mencari contoh yang bisa dijalankan.

Sumber asli github.com Resmi Rangkuman ~6 menit baca

Intisari

  • Dua client: Anthropic() dan AsyncAnthropic() โ€” API-nya identik.
  • Kredensial diselesaikan otomatis dari environment; tidak perlu di-pass manual.
  • Timeout default 10 menit, retry otomatis 2 kali untuk 408/409/429/5xx.
  • Helper penting: .stream(), .parse(), @beta_tool + tool_runner.
  • Folder examples/ di repo berisi program lengkap yang bisa langsung dijalankan โ€” sumber belajar tercepat.

Membuat client

import anthropic

client = anthropic.Anthropic()                       # dari environment
client = anthropic.Anthropic(api_key="sk-ant-...")   # eksplisit (jarang perlu)

async_client = anthropic.AsyncAnthropic()

Urutan pencarian kredensial

  1. ANTHROPIC_API_KEY
  2. ANTHROPIC_AUTH_TOKEN
  3. Profil OAuth hasil ant auth login
  4. Workload Identity Federation (untuk CI/cloud)

Artinya Anthropic() tanpa argumen bisa jalan meski ANTHROPIC_API_KEY tidak diatur โ€” selama ada profil yang aktif. Cek dengan ant auth status.

Konfigurasi client

client = anthropic.Anthropic(
    timeout=60.0,        # detik; default 10 menit
    max_retries=5,       # default 2
    base_url="...",      # untuk proxy internal
)

# Override untuk satu panggilan saja, tanpa mengubah client
client.with_options(timeout=5.0).messages.create(...)

Timeout berbutir halus

import httpx

client = anthropic.Anthropic(
    timeout=httpx.Timeout(600.0, read=60.0, write=10.0, connect=5.0),
)

SDK memakai httpx di dalamnya โ€” semua yang kamu pelajari di Fase 3 berlaku di sini.

Performa async tinggi

uv add "anthropic[aiohttp]"
from anthropic import AsyncAnthropic, DefaultAioHttpClient

async with AsyncAnthropic(http_client=DefaultAioHttpClient()) as client:
    ...

Backend alternatif ini lebih cepat untuk beban kerja dengan concurrency sangat tinggi.

Helper yang perlu kamu kenali

HelperUntukDibahas di
client.messages.create()Panggilan dasarMateri sebelumnya
client.messages.stream()Streaming dengan akumulasi otomatisStreaming Messages
client.messages.parse()Structured output ke model PydanticStructured Outputs
@beta_tool + tool_runner()Loop agentic otomatisTool Use Overview
client.messages.count_tokens()Hitung token sebelum kirimToken Counting
client.models.list()Daftar model & kemampuannyaModels Overview
client.messages.batchesBatch async, 50% lebih murahโ€”
client.beta.filesUpload file untuk dipakai berulangโ€”

Objek respons

msg = client.messages.create(...)

msg.id                # msg_01ABC...
msg.model             # model yang benar-benar melayani
msg.content           # list of block
msg.stop_reason
msg.usage
msg._request_id       # untuk dilaporkan saat ada masalah โ€” meski diawali _, ini publik

msg.to_dict()
msg.to_json()
# Kalau butuh header mentah
raw = client.messages.with_raw_response.create(...)
raw.headers.get("request-id")
raw.headers.get("anthropic-ratelimit-requests-remaining")
msg = raw.parse()

Paginasi otomatis

for m in client.models.list():        # iterasi langsung โ†’ semua halaman
    print(m.id, m.display_name)

halaman = client.models.list()
halaman.data                          # hanya halaman pertama

Client untuk platform lain

from anthropic import AnthropicBedrockMantle, AnthropicVertex, AnthropicAWS

# Amazon Bedrock โ€” model ID pakai prefix "anthropic."
client = AnthropicBedrockMantle(aws_region="us-east-1")

# Google Vertex AI
client = AnthropicVertex(project_id="proyek-saya", region="us-east5")

# Claude Platform on AWS โ€” dioperasikan Anthropic, ID model tanpa prefix
client = AnthropicAWS()

Setelah client dibuat, permukaan API-nya sama persis: messages.create, .stream, tool use โ€” semuanya identik.

Debugging

ANTHROPIC_LOG=debug uv run main.py

Menampilkan request dan respons HTTP mentah lewat modul logging standar.

Yang wajib dilihat di repo

LokasiIsinya
README.mdReferensi terlengkap โ€” lebih detail dari halaman docs mana pun
examples/Program lengkap: streaming, tool use, memory tool, structured output
api.mdDaftar seluruh method dan tipe
CHANGELOG.mdPerubahan tiap versi โ€” cek saat upgrade
src/anthropic/types/Semua tipe dihasilkan otomatis dan punya anotasi lengkap

Karena semua tipe SDK punya anotasi lengkap, editormu bisa menjawab sebagian besar pertanyaan tanpa kamu membuka dokumentasi: Ctrl+klik sebuah method untuk melihat tanda tangannya, dan autocomplete akan menampilkan field yang tersedia pada objek respons. Ini salah satu manfaat konkret dari Fase 2.

Menyematkan versi

uv add "anthropic>=0.40,<1.0"

SDK-nya berkembang cepat. Kunci batas mayor di pyproject.toml, dan uv.lock akan menjaga versi persisnya. Baca CHANGELOG sebelum menaikkan versi.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.