1.8 KiB
1.8 KiB
Main
Özet: Uygulamanın giriş noktası (main.go:38). Fiber v3 web framework'ünü başlatır, DB_MODE'a göre PostgreSQL veya SQLite bağlantısını kurar, AutoMigrate çalıştırır ve tüm route'ları tanımlar.
Kütüphaneler: Fiber v3, GORM, PostgreSQL, SQLite, godotenv
Bağlantılar: Index, Config, RequestLog, OpenAIHandler, AnthropicHandler, HealthHandler, SwaggerUI, DockerSetup
Başlangıç Adımları
.envdosyası yüklenir (godotenv.Load())- Config okunur (
config.Load()) DB_MODEkontrol edilir — PostgreSQL DSN veya SQLite bağlantısı + AutoMigrate (RequestLog)- Fiber v3 app oluşturulur (
fiber.Config{AppName: "LLM Gateway v1.0", ServerHeader: "optoant-gateway"}) - Route'lar tanımlanır:
GET /health→ HealthHandlerGET /swagger/swagger.json→ statik dosya serveGET /swagger→/swagger/redirectGET /swagger/*→ Swagger UI HTML (CDN)ALL /v1/*→ OpenAIHandler (direct passthrough)ALL /anthropic,/anthropic/*→ AnthropicHandler (Bifrost dönüşümü)
app.Listen(addr)ile server başlatılır
Önemli Detaylar
- DB bağlantısı başarısız olursa uygulama devam eder (DB'siz çalışabilir)
- Tüm backend istekleri
.env'dekiOPENAI_BACKENDadresine gider - OpenAI endpoint'i direkt passthrough yaparken, Anthropic endpoint'i format dönüşümü yapar
- Swagger UI CDN'den yüklenir (offline çalışmaz)
- API key auto-injection:
OPENAI_KEYenv'i tanımlıysa, client Authorization göndermezse otomatik eklenir
Geliştirme
- Air hot-reload:
.air.tomlile canlı yeniden derleme (air) - Production build:
build.shileCGO_ENABLED=0optimize binary - Docker:
docker/Dockerfilemulti-stage +docker-compose.yml