prompt.go 748 B

123456789101112131415161718192021222324252627
  1. package process
  2. import (
  3. "errors"
  4. "fmt"
  5. "strings"
  6. "github.com/eryajf/chatgpt-dingtalk/public"
  7. )
  8. // GeneratePrompt 生成当次请求的 Prompt
  9. func GeneratePrompt(msg string) (rst string, err error) {
  10. for _, prompt := range *public.Prompt {
  11. if strings.HasPrefix(msg, prompt.Title) {
  12. if strings.TrimSpace(msg) == prompt.Title {
  13. rst = fmt.Sprintf("%s:\n%s___输入内容___%s", prompt.Title, prompt.Prefix, prompt.Suffix)
  14. err = errors.New("消息内容为空") // 当提示词之后没有文本,抛出异常,以便直接返回Prompt所代表的内容
  15. } else {
  16. rst = prompt.Prefix + strings.TrimSpace(strings.Replace(msg, prompt.Title, "", -1)) + prompt.Suffix
  17. }
  18. return
  19. } else {
  20. rst = msg
  21. }
  22. }
  23. return
  24. }