import json
import os
import sys
import anthropic

key = os.environ.get('ANTHROPIC_API_KEY')
if not key:
    raise SystemExit('Önce bağlı Console kuruluşundaki workspace kapsamlı API anahtarını ayarlayın.')

# Rehberde hazırlanan temiz ortamı ve güncel resmî SDK paketini gerektirir.
# Bu tek tanı isteğinde yeniden denemeler kapalıdır.
client = anthropic.Anthropic(
    api_key=key,
    base_url='https://api.anthropic.com',
    timeout=30.0,
    max_retries=0,
)

try:
    raw = client.messages.with_raw_response.create(
        model='claude-haiku-5-5',
        max_tokens=128,
        thinking={'type': 'disabled'},
        output_config={'effort': 'low'},
        messages=[{'role': 'user', 'content': 'Yalnızca şunu yanıtla: API bağlantısı başarılı'}],
    )
    message = raw.parse()  # Zaten alınan yanıtı ayrıştırır; ikinci bir istek göndermez.
    for name in ('request-id', 'anthropic-organization-id', 'anthropic-workspace-id'):
        print(name+':', raw.headers.get(name, '(döndürülmedi)'))
    print('model:', message.model)
    print('stop_reason:', message.stop_reason)
    print('text:', '\n'.join(block.text for block in message.content if block.type == 'text'))
    print('usage:', json.dumps(message.usage.model_dump(), ensure_ascii=False))
except anthropic.APIStatusError as exc:
    print(f'HTTP {exc.status_code}; request-id={exc.request_id}', file=sys.stderr)
    raise SystemExit(1)
except anthropic.APIConnectionError:
    print('Bağlantı veya zaman aşımı nedeniyle işlem tamamlanmadı; yeniden denemeye karar vermeden önce kayıtları ve ağı kontrol edin.', file=sys.stderr)
    raise SystemExit(1)
finally:
    client.close()
