pf-chat-prompt.js
1 // promptfoo dynamic prompt — reads a prompt file as system message, adds task as user message 2 // promptfoo calls this with context = { vars, provider, config } 3 import { readFileSync } from 'fs'; 4 import { resolve } from 'path'; 5 6 export default function (context) { 7 // promptfoo passes { vars, provider, config } — extract vars defensively 8 const vars = context && context.vars ? context.vars : context; 9 const promptPath = resolve(process.cwd(), vars.promptFile); 10 const systemContent = readFileSync(promptPath, 'utf8'); 11 return JSON.stringify([ 12 { role: 'system', content: systemContent }, 13 { role: 'user', content: vars.task }, 14 ]); 15 }