98 lines
1.8 KiB
Go
98 lines
1.8 KiB
Go
package main
|
|
|
|
// this is 注释
|
|
|
|
import (
|
|
handle "agent/handlers"
|
|
"agent/middlewares"
|
|
"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 = "stepfun-ai/Step-3.5-Flash"
|
|
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.Use(middlewares.Cors())
|
|
route.GET("/ping", func(c *gin.Context) {
|
|
c.JSON(200, gin.H{
|
|
"message": "pong",
|
|
})
|
|
})
|
|
route.GET("/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("/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("/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("/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("/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()
|
|
|
|
|
|
}
|