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:
@@ -0,0 +1,42 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"gen2d/internal/model"
|
||||
"gen2d/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// PromptOptimizeRequest 提示词优化请求。
|
||||
type PromptOptimizeRequest struct {
|
||||
Tags []string `json:"tags" binding:"required,min=1"` // 用户选择的标签
|
||||
AssetType string `json:"assetType" binding:"required"` // 素材类型
|
||||
Prompt string `json:"prompt"` // 用户原始提示词
|
||||
UserNote string `json:"userNote"` // 用户额外描述
|
||||
}
|
||||
|
||||
// PromptOptimize 提示词优化接口,接收用户标签并调用 LLM 生成规范提示词。
|
||||
func PromptOptimize(c *gin.Context) {
|
||||
var req PromptOptimizeRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, model.Fail(http.StatusBadRequest, "参数错误: "+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
in := service.PromptAgentInput{
|
||||
Tags: req.Tags,
|
||||
AssetType: req.AssetType,
|
||||
Prompt: req.Prompt,
|
||||
UserNote: req.UserNote,
|
||||
}
|
||||
|
||||
output, err := service.RunPromptAgent(c.Request.Context(), in)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, model.Fail(http.StatusInternalServerError, "提示词优化失败: "+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, model.OK(output))
|
||||
}
|
||||
Reference in New Issue
Block a user