package main import ( handle "agent/handlers" "context" "fmt" "log" "os" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "github.com/tmc/langchaingo/llms" "github.com/tmc/langchaingo/llms/openai" ) var ( apiKey string baseUrl string model = "Pro/zai-org/GLM-4.7" ctx context.Context llm llms.Model ) func init() { err := godotenv.Load() if err != nil { fmt.Println(".env 文件加载失败") } apiKey = os.Getenv("API_KEY") baseUrl = os.Getenv("BASE_URL") fmt.Printf("API Key: %s\n", apiKey) fmt.Printf("Base URL: %s\n", baseUrl) llm, err = openai.New( openai.WithBaseURL(baseUrl), openai.WithToken(apiKey), openai.WithModel(model), ) if err != nil { log.Fatal(err) } ctx = context.Background() } func main() { route := gin.Default() route.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) route.GET("/agent/card/:topic", func(c *gin.Context) { topic := c.Param("topic") message := handle.GetCard(llm, ctx, topic) c.JSON(200, gin.H{ "message": message, }) }) route.GET("/agent/guodegang/:topic", func(c *gin.Context) { topic := c.Param("topic") message := handle.GetGuodegang(llm, ctx, topic) c.JSON(200, gin.H{ "message": message, }) }) route.GET("/agent/mermaid/:topic", func(c *gin.Context) { topic := c.Param("topic") message := handle.GetMermaid(llm, ctx, topic) c.JSON(200, gin.H{ "message": message, }) }) route.GET("/agent/quiz/:topic", func(c *gin.Context) { topic := c.Param("topic") message := handle.GetQuiz(llm, ctx, topic) c.JSON(200, gin.H{ "message": message, }) }) route.GET("/agent/scenario/:topic", func(c *gin.Context) { topic := c.Param("topic") message := handle.GetScenario(llm, ctx, topic) c.JSON(200, gin.H{ "message": message, }) }) route.Run() }