chatai/main.go
2024-12-25 17:18:23 +00:00

50 lines
1.4 KiB
Go

package main
import (
"flag"
"os"
"codelab/ai-agent/internal/conf"
"codelab/ai-agent/internal/log"
"codelab/ai-agent/internal/server"
"github.com/gin-gonic/gin"
)
func main() {
listen := flag.String("listen", conf.DefaultListen, "http listen address")
agentsDir := flag.String("agents", conf.DefaultAgentsDir, "directory to store agent configurations")
logLevel := flag.String("level", conf.DefaultLogLevel, "log level (dbg, inf, wrn, err)")
msgLogPath := flag.String("msglog", conf.DefaultMsgLogPath, "audit log path")
model := flag.String("model", conf.DefaultGoogleAIModel, "Google AI model (gemini-1.5-flash, gemini-2.0-flash-exp)")
flag.Parse()
server.GoogleAIKey = os.Getenv("GOOGLE_AI_KEY")
if server.GoogleAIKey == "" {
log.T("main").Errf("GOOGLE_AI_KEY environment variable is not set")
os.Exit(1)
}
server.GoogleAIModel = *model
log.Setup(log.LogLevel(log.ParseLogLevel(*logLevel)))
log.T("main").Inff("AI-Agent version %s, %s mode (build %s)", conf.BuildVersion, conf.BuildMode, conf.BuildTime)
log.T("main").Inff("%s", conf.PackageCopyright)
log.SetupGin1()
if conf.BuildMode == "release" {
gin.SetMode(gin.ReleaseMode)
}
engine := gin.New()
engine.Use(gin.Recovery())
log.SetupGin2(engine)
server.Setup(engine, *agentsDir, *msgLogPath)
log.T("main").Inff("Starting server on %s", *listen)
err := engine.Run(*listen)
if err != nil {
log.T("main").Errf("Server error: %v", err)
os.Exit(1)
}
}