1.8 KiB
1.8 KiB
Anthropic Flow
Özet: Anthropic Messages API formatındaki isteklerin gateway üzerinden Bifrost dönüşümüyle OpenAI formatına çevrilip upstream'e iletilmesi ve yanıtın geri Anthropic formatına dönüştürülmesi.
Kütüphaneler: Fiber v3, Go net/http, encoding/json
Bağlantılar: AnthropicHandler, BifrostTransform, ProxyEngine, RequestLog, Index
Akış Diyagramı
sequenceDiagram
participant Client
participant Gateway
participant Bifrost as BifrostTransform
participant Proxy
participant Upstream
participant DB
Client->>Gateway: POST /anthropic/v1/messages
Note over Gateway: AnthropicHandler
Gateway->>Gateway: x-api-key → Authorization: Bearer
Gateway->>Gateway: API key auto-inject (gerekirse)
Gateway->>Bifrost: AnthropicToBifrost()
Bifrost-->>Gateway: OpenAI Chat Completions format
Gateway->>Proxy: Forward() to /v1/chat/completions
Proxy->>Upstream: POST <BACKEND>/v1/chat/completions
Upstream-->>Proxy: 200 OK + OpenAI format response
Proxy-->>Gateway: ForwardResult
Gateway->>Bifrost: BifrostToAnthropic()
Bifrost-->>Gateway: Anthropic Messages format
Gateway->>DB: go db.Create(logEntry)
Gateway-->>Client: 200 OK (Anthropic format)
Edge Case'ler
| Senaryo | Davranış |
|---|---|
| HEAD isteği | 404 (DeepSeek uyumluluğu) |
| Empty body | Varsayılan "optoant gateway ready" yanıtı |
| Geçersiz Anthropic formatı | Raw passthrough + uyarı log'u |
| Yanıt dönüşüm hatası | Raw yanıtı forward et (passthrough) |
| GET /v1/models | DeepSeek model listesi (Anthropic formatında) |
| Boş path /anthropic | HTML info sayfası (infoPage()) |
| Upstream hatası | 502 Bad Gateway |