in pkg/agent/conversation.go [329:350]
func (a *Conversation) generatePrompt(_ context.Context, defaultPromptTemplate string, data PromptData) (string, error) {
promptTemplate := defaultPromptTemplate
if a.PromptTemplateFile != "" {
content, err := os.ReadFile(a.PromptTemplateFile)
if err != nil {
return "", fmt.Errorf("error reading template file: %v", err)
}
promptTemplate = string(content)
}
tmpl, err := template.New("promptTemplate").Parse(promptTemplate)
if err != nil {
return "", fmt.Errorf("building template for prompt: %w", err)
}
var result strings.Builder
err = tmpl.Execute(&result, &data)
if err != nil {
return "", fmt.Errorf("evaluating template for prompt: %w", err)
}
return result.String(), nil
}