tencent_ocr/.history/cmd/main_20250115161111.go
2025-01-15 16:59:27 +08:00

66 lines
1.2 KiB
Go

package main
import (
"log"
"github.com/gin-gonic/gin"
"tencent_ocr/pkg/config"
"tencent_ocr/pkg/handler"
)
func main() {
// Load configuration
cfg, err := config.LoadConfig()
if err != nil {
log.Fatalf("Failed to load configuration: %v", err)
}
// Initialize services
geminiService, err := service.NewGeminiService(cfg.GeminiAPIKey)
if err != nil {
log.Fatal(err)
}
defer geminiService.Close()
ocrService := handler.NewOCRService(
cfg.TencentSecretID,
cfg.TencentSecretKey,
geminiService,
)
// Initialize handlers
ocrHandler := handler.NewOCRHandler(
cfg.TencentSecretID,
cfg.TencentSecretKey,
cfg.GeminiAPIKey,
cfg.APIKey,
)
rateHandler := handler.NewRateHandler(
cfg.GeminiAPIKey,
cfg.APIKey,
)
uploadHandler := handler.NewUploadHandler(
cfg.R2AccessKey,
cfg.R2SecretKey,
cfg.R2Bucket,
cfg.R2Endpoint,
cfg.R2CustomDomain,
ocrService,
geminiService,
)
// Setup Gin router
r := gin.Default()
// Register routes
r.POST("/ocr", ocrHandler.HandleOCR)
r.POST("/rate", rateHandler.HandleRate)
// upload file to server
r.POST("/upload", uploadHandler.HandleUpload)
// Start server
if err := r.Run("localhost:8080"); err != nil {
log.Fatalf("Failed to start server: %v", err)
}
}