# AnthropicHandler **Özet:** `/anthropic/*` route'unu karşılar (`handlers/anthropic.go:75`). Anthropic Messages API formatını OpenAI Chat Completions formatına çevirir (Bifrost), upstream'e iletir ve yanıtı geri Anthropic formatına dönüştürür. **Kütüphaneler:** Fiber v3, GORM, Go `encoding/json` **Bağlantılar:** [[Main]], [[BifrostTransform]], [[ProxyEngine]], [[RequestLog]], [[Config]], [[Anthropic Flow]] ## Davranış 1. `GET /v1/models` → [[AnthropicHandler#modelsList|modelleri listele]] 2. `HEAD` → 404 (DeepSeek uyumluluğu) 3. Empty body → varsayılan "optoant gateway ready" yanıtı 4. `x-api-key` → `Authorization: Bearer` dönüşümü (Claude Code uyumluluğu) 5. Gerekirse `OPENAI_KEY`'den auto-inject 6. [[BifrostTransform#AnthropicToBifrost|AnthropicToBifrost()]] ile dönüşüm 7. Client `stream: true` gönderdiyse ve `STREAMING=true` ise → [[#handleStreaming|SSE streaming]] 8. [[ProxyEngine]] ile `OPENAI_BACKEND/v1/chat/completions`'a forward 9. Başarılıysa (200): [[BifrostTransform#BifrostToAnthropic|BifrostToAnthropic()]] → Anthropic format 10. Hata durumunda: raw passthrough 11. DB log (fire-and-forget) ## Endpoint ``` POST /anthropic/v1/messages x-api-key: # veya Authorization: Bearer ``` ## Modeller (`modelsList()`) | ID | Display Name | |---|---| | `deepseek-v4-flash` | DeepSeek V4 Flash | | `deepseek-v4-pro` | DeepSeek V4 Pro | ## Ek Fonksiyonlar | Fonksiyon | Açıklama | |---|---| | `infoPage()` | `GET /anthropic` (boş path) için HTML bilgi sayfası | | `modelsList()` | `GET /anthropic/v1/models` için model listesi | ## Edge Case'ler - Geçersiz Anthropic formatı → uyarı log'u + raw passthrough - Upstream hatası → `502 Bad Gateway` - Yanıt dönüşüm hatası → raw yanıtı forward et - `STREAMING=false` → client `stream: true` isteği görmezden gelinir, non-streaming yanıt döner