package main import ( "fmt" "os" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus" ) func main() { logrus.SetFormatter(&logrus.TextFormatter{FullTimestamp: true}) logrus.SetLevel(logrus.InfoLevel) if err := loadConfig("config.yaml"); err != nil { logrus.Fatalf("Failed to load config.yaml: %v", err) } logrus.Infof("Loaded config: %+v", appConfig) if err := loadYAMLDB("db.yaml"); err != nil { logrus.Fatalf("Failed to load db.yaml: %v", err) } fmt.Printf("Loaded %d reasons from db.yaml\n", len(reasonsDB)) if err := loadUITemplate("ui.html"); err != nil { logrus.Fatalf("Failed to load ui.html: %v", err) } llm := &LLMClient{ APIKey: os.Getenv("OPENAI_API_KEY"), BaseURL: os.Getenv("OPENAI_BASE_URL"), } chatService := NewChatService(llm) r := gin.Default() r.GET("/", func(c *gin.Context) { c.Status(200) uiTemplate.Execute(c.Writer, nil) }) r.POST("/chat", chatService.HandleChat) r.Run(":8080") }