Files
langchain-go/backend/main.go
T

92 lines
1.8 KiB
Go
Raw Normal View History

2026-03-22 20:54:09 +08:00
package main
import (
2026-03-23 13:44:45 +08:00
handle "agent/handlers"
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-23 22:33:30 +08:00
model = "Pro/zai-org/GLM-4.7"
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()
route.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
2026-03-23 13:44:45 +08:00
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,
})
})
2026-03-23 13:26:27 +08:00
route.Run()
2026-03-22 20:54:09 +08:00
}