feat(pipeline): PromptOptimizer 集成到生成管线,新增优化 API

- PipelineInput 新增 Tags/UserNote 字段
- 管线重构为: START → PromptOptimizer → AssetGenerator → QualitySupervisor → FormatAdapter
- promptOptimizerNode: 有标签调用 PromptAgent,无标签补技术参数,合并风格与重试信息
- PromptBuilder 移除,提示词构建逻辑并入 PromptOptimizer
- 新增 POST /api/v1/prompt/optimize 接口
- main.go 注入 LLM/ImageGen 配置,注册 prompt 路由
- inference.go 新增 InitImageGenConfig 注入
This commit is contained in:
2026-05-24 20:45:18 +08:00
parent 788cd021ef
commit 9ca1e65221
7 changed files with 281 additions and 96 deletions
+11 -5
View File
@@ -9,6 +9,7 @@ import (
"gen2d/internal/db"
"gen2d/internal/handler"
"gen2d/internal/model"
"gen2d/internal/service"
"github.com/gin-gonic/gin"
)
@@ -16,15 +17,19 @@ import (
func main() {
cfg := config.Load()
gin.SetMode(cfg.Mode)
gin.SetMode(cfg.Server.Mode)
// 初始化 SQLite 数据库
if err := db.Init(cfg.DSN, &model.User{}); err != nil {
if err := db.Init(cfg.Database.DSN, &model.User{}); err != nil {
log.Fatalf("db init failed: %v", err)
}
// 初始化 AuthService,注入 JWT 配置
handler.InitAuthService(cfg.JWTSecret, cfg.JWTExpire)
handler.InitAuthService(cfg.JWT.Secret, cfg.JWT.Expire)
// 注入 LLM 和文生图配置到 service 层
service.InitLLMConfig(cfg.LLM)
service.InitImageGenConfig(cfg.ImageGen)
r := gin.New()
r.Use(gin.Recovery()) // panic 恢复中间件,防止服务因未捕获异常宕机
@@ -32,7 +37,8 @@ func main() {
// API v1 路由组
v1 := r.Group("/api/v1")
{
v1.GET("/health", handler.Health) // 健康检查
v1.GET("/health", handler.Health) // 健康检查
v1.POST("/prompt/optimize", handler.PromptOptimize) // 提示词优化
}
// Auth 路由组
@@ -42,7 +48,7 @@ func main() {
auth.POST("/login", handler.Login) // 用户登录
}
addr := fmt.Sprintf(":%d", cfg.Port)
addr := fmt.Sprintf(":%d", cfg.Server.Port)
log.Printf("gen2d backend starting on %s", addr)
if err := r.Run(addr); err != nil {
log.Fatalf("server failed: %v", err)