1.4 KiB
1.4 KiB
OpenAIHandler
Özet: /v1/* route'unu karşılar (handlers/openai.go:29), gelen istekleri olduğu gibi OPENAI_BACKEND adresine iletir. OpenAI-compatible bir proxy'dir.
Kütüphaneler: Fiber v3, GORM, Go net/http
Bağlantılar: Main, ProxyEngine, RequestLog, Config, OpenAI Flow
Davranış
- Gelen isteği alır, header'ları
net/http.Headerformatına çevirir (fiberToHTTPHeaders()) - Eğer
OPENAI_KEYtanımlanmışsa ve client Authorization göndermemişse, otomatik ekler - ProxyEngine ile isteği
OPENAI_BACKEND + originalURLadresine forward eder - Response header'larını kopyalar (
copyResponseHeaders()— Transfer-Encoding, Content-Length, Connection atlanır) - Yanıtı olduğu gibi client'a döndürür
- RequestLog'a fire-and-forget goroutine ile kayıt ekler
Endpoint
ANY /v1/chat/completions
ANY /v1/models
Authorization: Bearer <api-key>
Yardımcı Fonksiyonlar
| Fonksiyon | Açıklama |
|---|---|
fiberToHTTPHeaders(c fiber.Ctx) http.Header |
Fiber header'larını net/http formatına çevirir |
copyResponseHeaders(c fiber.Ctx, headers http.Header) |
Upstream response header'larını Fiber response'a kopyalar (hop-by-hop atlanır) |
Hata Durumu
- Upstream hatasında →
502 Bad Gateway+ hata mesajı - Loglama hatası → ana isteği etkilemez (fire-and-forget)