Справочник
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, --write | 0 |
validate <file> | Только замечания | 1 при любом критическом замечании |
compare <a> <b> | Разница по токенам, качеству и замечаниям | 0 |
tokens <file> | Подсчёт и оценка стоимости ввода (--model) | 0 |
scan <file> | Риск инъекции, чувствительные данные, переменные без разделителей | 1 при критической проблеме безопасности |
sanitize <file> | Выводит текст с замаскированными чувствительными значениями | 0 |
check <glob…> | Проверка файлов с промптами в CI | 1, если не прошёл любой файл |
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 и результаты сборки.