66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
"prompts-core/common/util"
|
|
"prompts-core/dao"
|
|
"prompts-core/model/dto"
|
|
"prompts-core/model/entity"
|
|
"prompts-core/service/gateway"
|
|
|
|
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 := gateway.GetModelConfig(ctx, &gateway.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
|
|
}
|