Справочник

CLI и проверка в CI

promptflow запускает движок офлайн и даёт точное число токенов OpenAI. Каждая команда читает файл или стандартный ввод (-) и поддерживает --json для машиночитаемого вывода.

Установка

Пакет npm @promptflow/cli ещё не опубликован. Соберите его из клона репозитория 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"

Команды

КомандаЧто делаетКод выхода
analyze <file>Качество, измерения, замечания, токены, намерение0
optimize <file>Проверенная оптимизация. --mode, --goal, --budget, --write0
validate <file>Только замечания1 при любом критическом замечании
compare <a> <b>Разница по токенам, качеству и замечаниям0
tokens <file>Подсчёт и оценка стоимости ввода (--model)0
scan <file>Риск инъекции, чувствительные данные, переменные без разделителей1 при критической проблеме безопасности
sanitize <file>Выводит текст с замаскированными чувствительными значениями0
check <glob…>Проверка файлов с промптами в CI1, если не прошёл любой файл
modelsКаталог моделей и справочные цены0

Проверка check

Файл не проходит, если его качество ниже --min-score, токенов больше --max-tokens или есть замечание уровня --fail-on и выше (по умолчанию critical, поэтому утёкший секрет всегда приводит к провалу). Настройки можно хранить в .promptflowrc.json в корне репозитория:

.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 check

Шаблоны glob разрешаются относительно рабочего каталога и пропускают node_modules, .git и результаты сборки.