Files

90 lines
1.7 KiB
Go
Raw Permalink Normal View History

2026-03-22 20:54:09 +08:00
package main
2026-03-24 22:15:30 +08:00
// this is 注释
2026-03-22 20:54:09 +08:00
import (
2026-03-23 13:44:45 +08:00
handle "agent/handlers"
2026-03-24 11:56:25 +08:00
"agent/middlewares"
2026-03-22 21:12:29 +08:00
"context"
2026-03-22 20:54:09 +08:00
"fmt"
2026-03-22 21:12:29 +08:00
"log"
2026-03-22 20:54:09 +08:00
"os"
2026-03-23 13:26:27 +08:00
"github.com/gin-gonic/gin"
2026-03-22 20:54:09 +08:00
"github.com/joho/godotenv"
2026-03-22 21:12:29 +08:00
"github.com/tmc/langchaingo/llms"
"github.com/tmc/langchaingo/llms/openai"
)
var (
apiKey string
baseUrl string
2026-03-27 19:48:22 +08:00
model = "stepfun-ai/Step-3.5-Flash"
2026-03-22 21:25:36 +08:00
ctx context.Context
llm llms.Model
2026-03-22 20:54:09 +08:00
)
func init() {
err := godotenv.Load()
if err != nil {
fmt.Println(".env 文件加载失败")
}
2026-03-22 21:12:29 +08:00
apiKey = os.Getenv("API_KEY")
baseUrl = os.Getenv("BASE_URL")
2026-03-22 20:54:09 +08:00
fmt.Printf("API Key: %s\n", apiKey)
fmt.Printf("Base URL: %s\n", baseUrl)
2026-03-22 21:25:36 +08:00
llm, err = openai.New(
2026-03-22 21:12:29 +08:00
openai.WithBaseURL(baseUrl),
openai.WithToken(apiKey),
openai.WithModel(model),
)
if err != nil {
log.Fatal(err)
}
2026-03-22 21:25:36 +08:00
ctx = context.Background()
}
2026-03-22 21:12:29 +08:00
2026-03-22 21:25:36 +08:00
func main() {
2026-03-23 13:26:27 +08:00
route := gin.Default()
2026-03-24 11:56:25 +08:00
route.Use(middlewares.Cors())
2026-03-23 13:26:27 +08:00
route.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
2026-03-27 19:48:22 +08:00
route.GET("/card/:topic", func(c *gin.Context) {
2026-03-23 13:44:45 +08:00
topic := c.Param("topic")
message := handle.GetCard(llm, ctx, topic)
c.JSON(200, gin.H{
"message": message,
})
})
2026-03-27 19:48:22 +08:00
route.GET("/guodegang/:topic", func(c *gin.Context) {
2026-03-23 13:44:45 +08:00
topic := c.Param("topic")
message := handle.GetGuodegang(llm, ctx, topic)
c.JSON(200, gin.H{
"message": message,
})
})
2026-03-27 19:48:22 +08:00
route.GET("/quiz/:topic", func(c *gin.Context) {
2026-03-23 13:44:45 +08:00
topic := c.Param("topic")
message := handle.GetQuiz(llm, ctx, topic)
c.JSON(200, gin.H{
"message": message,
})
})
2026-03-27 19:48:22 +08:00
route.GET("/scenario/:topic", func(c *gin.Context) {
2026-03-23 13:44:45 +08:00
topic := c.Param("topic")
message := handle.GetScenario(llm, ctx, topic)
c.JSON(200, gin.H{
"message": message,
})
})
2026-03-23 13:26:27 +08:00
route.Run()
2026-03-24 22:15:30 +08:00
2026-03-22 20:54:09 +08:00
}