Files
prompts-core/controller/prompt_compose_controller.go

65 lines
2.0 KiB
Go

package controller
import (
"context"
"prompts-core/common/util"
"prompts-core/dao"
"prompts-core/model/dto"
"prompts-core/model/entity"
promptService "prompts-core/service/prompt"
"gitea.com/red-future/common/beans"
"github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/frame/g"
)
type prompt struct{}
// Prompt 提示词配置控制器
var Prompt = new(prompt)
// ComposeMessages 调用 model-gateway 异步任务并同步等待结果,
func (c *prompt) ComposeMessages(ctx context.Context, req *dto.ComposeMessagesReq) (res *dto.ComposeMessagesRes, err error) {
return promptService.ComposeMessages(ctx, req)
}
// Callback model-gateway 提示词回调
func (c *prompt) Callback(ctx context.Context, req *dto.CallbackReq) (res *dto.CallbackRes, err error) {
err = promptService.Callback(ctx, req)
return
}
// GetComposeTask 查询拼接任务结果
func (c *prompt) GetComposeTask(ctx context.Context, req *dto.GetComposeTaskReq) (res *dto.GetComposeTaskRes, err error) {
return promptService.GetComposeTask(ctx, req.TaskId)
}
func (c *prompt) Text(ctx context.Context, req *dto.TextReq) (res *dto.TextRes, err error) {
composeTask, err := dao.ComposeTask.Get(ctx, &entity.ComposeTask{
TaskId: "c58c9296-994f-4e83-8285-1daebf3c492d",
})
if err != nil {
return
}
model, err := dao.Model.Get(ctx, &entity.AsynchModel{
SQLBaseDO: beans.SQLBaseDO{Creator: composeTask.Creator},
ModelName: composeTask.ModelName,
})
if err != nil {
return
}
message := promptService.ParsePromptResult(composeTask.ResultText)
// 加这两行
g.Log().Infof(ctx, "[Text] RequestPayload.consult: %v", composeTask.RequestPayload["consult"])
g.Log().Infof(ctx, "[Text] ExtendMapping: %v", model.ExtendMapping)
messages := util.MergeConsult(composeTask.RequestPayload, message, model.ExtendMapping)
g.Log().Infof(ctx, "[Text] MergeConsult 结果 rounds[0].messages[0].content: %v",
gjson.New(messages).Get("rounds.0.messages.0.content"))
res = &dto.TextRes{
Messages: messages,
}
return
}