Referencia
CLI y control en CI
promptflow ejecuta el motor sin conexión con recuentos exactos de tokens de OpenAI. Todos los comandos leen un archivo o la entrada estándar (-) y aceptan --json para una salida legible por máquinas.
Instalación
El paquete de npm
@promptflow/cli aún no está publicado. Compílalo desde una copia del repositorio de PromptFlowEngine:shell
# from the root of your PromptFlowEngine checkout
corepack enable && pnpm install
pnpm --filter @promptflow/engine build && pnpm --filter @promptflow/cli build
alias promptflow="node $PWD/packages/cli/dist/cli.js"Comandos
| Comando | Qué hace | Código de salida |
|---|---|---|
analyze <file> | Calidad, dimensiones, hallazgos, tokens e intención | 0 |
optimize <file> | Optimización verificada. --mode, --goal, --budget, --write | 0 |
validate <file> | Solo hallazgos | 1 ante cualquier hallazgo crítico |
compare <a> <b> | Diferencia de tokens, calidad y hallazgos | 0 |
tokens <file> | Recuento y coste de entrada estimado (--model) | 0 |
scan <file> | Riesgo de inyección, datos sensibles y variables sin delimitar | 1 ante un hallazgo de seguridad crítico |
sanitize <file> | Imprime el texto con los valores sensibles sustituidos | 0 |
check <glob…> | Control de CI sobre archivos de prompts | 1 si algún archivo falla |
models | Catálogo de modelos y precios de referencia | 0 |
El control check
Un archivo falla cuando su calidad está por debajo de --min-score, sus tokens superan --max-tokens o tiene un hallazgo igual o superior a --fail-on (por defecto critical, así que las claves filtradas siempre fallan). La configuración puede ir en .promptflowrc.json en la raíz del repositorio:
.promptflowrc.json
{
"include": ["prompts/**/*.md", "src/**/*.prompt.txt"],
"model": "gpt-4.1",
"minScore": 70,
"maxTokens": 2000,
"failOn": "critical",
"ignore": ["missing_length_guidance"]
}.github/workflows/prompts.yml
name: Prompt quality
on: [pull_request]
jobs:
prompts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22 }
# Until @promptflow/cli is on npm, make the built CLI available to the job
# (see Install above), for example as a vendored copy in tools/promptflow.
- run: node tools/promptflow/cli.js checkLos globs se resuelven respecto al directorio de trabajo y omiten node_modules, .git y la salida de compilación.