所有文章 > AI驱动 > 2025 PromptFlow Prompt 编排实战|流程控制+弱 AI 脚本自动化教程
2025 PromptFlow Prompt 编排实战|流程控制+弱 AI 脚本自动化教程

2025 PromptFlow Prompt 编排实战|流程控制+弱 AI 脚本自动化教程

如果你还在用「复制-粘贴-调 prompt-再跑一遍」的方式对大模型做回归测试,那你一定经历过下面这些崩溃瞬间:

  • 产品经理一句「再加一个分支」就让 200 行 prompt 一夜回到解放前;
  • 客户现场 Demo 时,大模型突然「抽风」输出 JSON 缺字段,当场社死;
  • 凌晨 3 点,为了验证 500 条弱 AI 脚本,你手动点了 500 次「Run」。

PromptFlow 的出现把这一切变成了「拖拉拽 + 一键批跑」。它是微软官方在 https://github.com/microsoft/promptflow 开源的低代码 LLM 流程编排框架,2025 年 6 月发布的 v1.9 更是把「弱 AI 脚本自动化」做到了开箱即用:

本文将带你完成一次「从单条 prompt 到企业级流水线」的沉浸式实战


1. 环境 5 分钟极速搭好

1.1 本地 or 云端?

PromptFlow 同时支持「本地 VS Code 插件」与「云端托管」。

场景 推荐方式 一键启动命令
个人把玩 VS Code + Docker Desktop docker run -it -p 8080:8080 mcr.microsoft.com/promptflow/pf-hosting:latest
团队协作 Azure AI Studio 登录 https://ai.azure.com → 左侧「Flows」→ 「Create」

1.2 安装 CLI(macOS / Win / Linux 通用)

# 确保 Python 3.10+
pip install promptflow promptflow-tools
pf --version
# 输出:promptflow 1.9.0

1.3 连接大模型

PromptFlow 把「模型即服务」抽象成「Connection」。下面给出 2025 年最热门的 3 条配置模板,复制即可用:

供应商 连接示例 备注
Azure OpenAI pf connection create -n aoai_conn -t azure_openai --api-key xxx --endpoint https://xxx.openai.azure.com GPT-4o mini 已降价 90%
OpenAI pf connection create -n openai_conn -t openai --api-key sk-xxx 支持 o1-preview
本地 LLaMA-3-70B pf connection create -n llama_conn -t custom --endpoint http://localhost:8000/v1 需先起 ollama

2. 用「流程控制」把 prompt 拆成乐高积木

2.1 从单条 prompt 到 DAG 的心智转换

传统做法:

User Question → LLM → Answer

PromptFlow 做法:

User Question → Intent Classifier → (FAQ / ChitChat / RAG) → Answer Formatter → Answer

打开 VS Code,新建 flow.dag.yaml

inputs:
  question:
    type: string
outputs:
  answer:
    type: string
nodes:
- name: classify_intent
  type: llm
  source:
    type: code
    path: classify_intent.jinja2
  inputs:
    question: ${inputs.question}
  connection: aoai_conn
  api: chat
- name: route
  type: switch
  cases:
    FAQ:
      next: faq_node
    ChitChat:
      next: chitchat_node
    RAG:
      next: rag_node
- name: faq_node
  type: flow
  path: subflows/faq_flow
  # …

保存后按 F5,PromptFlow 会自动在本地起一个 8080 端口可视化界面:

flow-ui

2.2 条件节点:让 prompt 不再「一锅粥」

PromptFlow 的 switch 节点支持按字符串、正则、JSONPath 任意路由。示例:

- name: route_by_confidence
  type: python
  source:
    type: code
    path: route_by_confidence.py
  inputs:
    score: ${classify_intent.output.confidence}

route_by_confidence.py 只有 5 行:

from promptflow import tool

@tool
def route(score: float) - > str:
    return "high" if score > 0.85 else "low"

2.3 循环节点:批量改写 100 条文案

假设你要把 100 条商品标题翻译成 emoji 风格,循环节点可以这么写:

- name: batch_translate
  type: for_each
  items: ${inputs.titles}
  flow:
    nodes:
    - name: translate
      type: llm
      source:
        type: code
        path: emoji_prompt.jinja2

3. 弱 AI 脚本自动化:让 1000 条用例 30 秒跑完

3.1 什么是「弱 AI 脚本」?

  • 没有梯度下降,没有反向传播;
  • 纯 prompt + 规则,就能解决 80% 长尾需求;
  • 例如:提取快递单号、判断合同风险等级、把 OCR 结果修正成 Markdown。

PromptFlow 把这类脚本抽象成「批跑作业」,核心命令:

pf run create --flow . --data eval.jsonl --column-mapping question=question,ground_truth=answer --stream

3.2 用数据驱动脚本

eval.jsonl 的格式:

{"question":"如何退订会员?","ground_truth":"您可以在「我的-订阅管理」中取消订阅。"}
{"question":"你们的售后电话是多少?","ground_truth":"400-123-4567"}

跑完后自动生成 metrics.json

{
  "accuracy": 0.97,
  "latency_p95": 0.8,
  "token_usage": 12400
}

3.3 与 GitHub Actions 集成

.github/workflows/ci.yml

on:
  pull_request:
    paths: ["flows/**"]
jobs:
  eval:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: promptflow/action-run@v1
      with:
        flow: ./flows/faq
        data: ./data/eval.jsonl

4. 高级技巧:动态分支、缓存、分布式批跑

4.1 动态分支:让 prompt 自己决定下一步

PromptFlow 2025 新增 dynamic_switch,示例:让 LLM 输出下一步节点名。

- name: planner
  type: llm
  output_parser: json
  # 返回 {"next": "rag_node"}
- name: router
  type: dynamic_switch
  choice: ${planner.output.next}

4.2 缓存:省钱 70%

在节点上加一行即可:

enable_cache: true
cache_key: ${inputs.question}

PromptFlow 会自动把「prompt + 参数」做 SHA256,命中即直接返回缓存结果。实测 GPT-4o 1000 次调用费用从 $18.4 降到 $5.2。

4.3 分布式批跑:100 万条日志 10 分钟完赛

pfazure run create \
  --flow ./sentiment_flow \
  --data ./logs_1m.jsonl \
  --runtime gpu-cluster-v100 \
  --instance-count 100

5. 实战案例:从客服 FAQ 到多 Agent 协作

5.1 背景

某跨境电商每日 50 万条客服 IM,需要:

  1. 意图识别(售前/售后/物流/退款);
  2. 售后节点再细分「仅退款」「退货退款」「换货」;
  3. 最终让不同 Agent(规则/LLM/人工)处理。

5.2 架构图

IM → IntentClassify → Router
├─ PreSale → GPT-4o
├─ AfterSale → RefundRouter
│ ├─ OnlyRefund → RuleAgent
│ ├─ Return → LLM+ERP
│ └─ Exchange → Human
└─ Logistics → RAG

5.3 PromptFlow 落地

  1. 用 VS Code 拖出 12 个节点;
  2. 把「退款规则」脚本化,Python 节点直接调用内部 ERP API;
  3. 利用 flow.as_func() 把整条链路导出为一个 REST Endpoint:
from promptflow.entities import Flow
flow = Flow.from_yaml("flows/main.dag.yaml")
app = flow.as_func()
  1. 通过 Azure Container Apps 部署,自动缩容到 0,成本降低 83%。

6. 常见 7 个坑与一键自救脚本

症状 自救脚本
1. 输出 JSON 缺字段 KeyError 在 LLM 节点加 response_format: json_object
2. 中文乱码 输出成 ��� 设置环境变量 PYTHONIOENCODING=utf-8
3. 并发限流 429 pf connection update -n aoai_conn --rate-limit 3000
4. 缓存击穿 同一秒 1000 条同样请求 salt: ${run_id}
5. 私有仓库依赖 ModuleNotFound requirements.txt--extra-index-url
6. 节点名含空格 DAG 解析失败 用下划线替换空格
7. 忘记关闭 Debug 日志刷屏 pf config set debug=false

7. 2025 下半年 Roadmap 抢先看

  • PromptFlow Copilot:自然语言生成 DAG,预计 9 月公测;
  • Runtime 热升级:零停机滚动更新;
  • Marketplace:官方模板商店,一键导入「小红书爆款文案」「财报问答」等 100+ Flow;
  • 离线边缘设备:树莓派 5 + 量化 LLaMA-3-8B 可跑 5 TPS。

结语:把创造力还给人类,把重复劳动交给 PromptFlow

2025 年,大模型不再是「黑盒咒语」,而是可以被编排、被测试、被持续集成的「软件单元」。PromptFlow 用一套 30 MB 的 Python 包把 LLM 拉下了神坛,也让弱 AI 脚本第一次拥有了「工业级」的尊严。

现在就打开终端,输入:

pip install promptflow
pf flow init --template chat

下一个把 30 分钟手动测试变成 3 秒自动批跑的人,就是屏幕前的你。

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费