package process

import (
	"errors"
	"fmt"
	"strings"

	"github.com/eryajf/chatgpt-dingtalk/public"
)

// GeneratePrompt 生成当次请求的 Prompt
func GeneratePrompt(msg string) (rst string, err error) {
	for _, prompt := range *public.Prompt {
		if strings.HasPrefix(msg, prompt.Title) {
			if strings.TrimSpace(msg) == prompt.Title {
				rst = fmt.Sprintf("%s:\n%s___输入内容___%s", prompt.Title, prompt.Prefix, prompt.Suffix)
				err = errors.New("消息内容为空") // 当提示词之后没有文本,抛出异常,以便直接返回Prompt所代表的内容
			} else {
				rst = prompt.Prefix + strings.TrimSpace(strings.Replace(msg, prompt.Title, "", -1)) + prompt.Suffix
			}
			return
		} else {
			rst = msg
		}
	}
	return
}