init
This commit is contained in:
.gitignoreconfig.yamlconfig.yaml.bak
config
go.modgo.sumhandlers
main.goservices
static
utils
66
main.go
Normal file
66
main.go
Normal file
@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"code-review/config"
|
||||
"code-review/handlers"
|
||||
"code-review/services"
|
||||
"code-review/services/ai"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if err := config.LoadConfig("config.yaml"); err != nil {
|
||||
log.Fatalf("加载配置失败: %v", err)
|
||||
}
|
||||
cfg := config.GetConfig()
|
||||
|
||||
// 检查是否有可用的 AI 配置
|
||||
if len(cfg.AIs) == 0 {
|
||||
log.Fatalf("未找到有效的 AI 配置")
|
||||
}
|
||||
|
||||
// 初始化 AI 负载均衡器
|
||||
aiBalancer := config.NewAIBalancer(cfg.AIs)
|
||||
|
||||
// 获取一个 AI 配置
|
||||
aiConfig, err := aiBalancer.Next()
|
||||
if err != nil {
|
||||
log.Fatalf("获取 AI 配置失败: %v", err)
|
||||
}
|
||||
|
||||
// 创建 AI 客户端和审查器
|
||||
client := ai.NewClient(
|
||||
aiConfig.APIBase,
|
||||
aiConfig.APIKey,
|
||||
aiConfig.Model,
|
||||
aiConfig.Type,
|
||||
aiConfig.Temperature,
|
||||
)
|
||||
reviewer := ai.NewAI(aiConfig.Model, aiConfig.SystemMsg, client)
|
||||
|
||||
// 创建服务和处理器
|
||||
reviewService := services.NewReviewService(reviewer)
|
||||
webhookHandler := handlers.NewWebhookHandler(reviewService)
|
||||
configHandler := handlers.NewConfigHandler(cfg)
|
||||
|
||||
// 初始化路由
|
||||
r := gin.Default()
|
||||
r.Static("/static", "./static")
|
||||
r.StaticFile("/", "./static/index.html")
|
||||
|
||||
api := r.Group("/api")
|
||||
configAPI := api.Group("/config")
|
||||
configAPI.Use(handlers.AuthRequired())
|
||||
{
|
||||
configAPI.GET("", configHandler.GetConfig)
|
||||
configAPI.POST("", configHandler.UpdateConfig)
|
||||
}
|
||||
api.POST("/webhook/:platform", webhookHandler.HandleWebhook)
|
||||
|
||||
log.Printf("服务启动在 :%d", cfg.Port)
|
||||
if err := r.Run(fmt.Sprintf(":%d", cfg.Port)); err != nil {
|
||||
log.Fatalf("服务器启动失败: %v", err)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user