参考
CLI 与 CI 门禁
promptflow 离线运行引擎,并给出精确的 OpenAI token 数。每个命令都读取一个文件或标准输入(-),并支持 --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> | 质量、维度、问题、token、意图 | 0 |
optimize <file> | 经过验证的优化。--mode、--goal、--budget、--write | 0 |
validate <file> | 仅输出问题 | 出现任何严重问题时为 1 |
compare <a> <b> | token、质量和问题的差异 | 0 |
tokens <file> | 计数与预估输入成本(--model) | 0 |
scan <file> | 注入风险、敏感数据、未加分隔的变量 | 出现严重安全问题时为 1 |
sanitize <file> | 输出已替换敏感值的文本 | 0 |
check <glob…> | 针对提示词文件的 CI 门禁 | 任一文件未通过时为 1 |
models | 模型目录与参考价格 | 0 |
check 门禁
当文件的质量低于 --min-score、token 超过 --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 checkglob 相对于工作目录解析,并跳过 node_modules、.git 和构建输出。