Files
audita/internal/prompts/render.go

25 lines
768 B
Go

package prompts
import (
"bytes"
"fmt"
"strings"
)
func RenderUserSystem(promptID string, data any) (system string, user string, metadata Metadata, err error) {
cp, ok := promptRegistry[strings.TrimSpace(promptID)]
if !ok {
return "", "", Metadata{}, fmt.Errorf("unknown prompt id %q", promptID)
}
var systemBuf bytes.Buffer
if err := cp.systemTmpl.Execute(&systemBuf, data); err != nil {
return "", "", Metadata{}, fmt.Errorf("render system prompt %q: %w", promptID, err)
}
var userBuf bytes.Buffer
if err := cp.userTmpl.Execute(&userBuf, data); err != nil {
return "", "", Metadata{}, fmt.Errorf("render user prompt %q: %w", promptID, err)
}
return strings.TrimSpace(systemBuf.String()), strings.TrimSpace(userBuf.String()), cp.metadata, nil
}