1. 環(huán)境 5 分鐘極速搭好

1.1 本地 or 云端?

PromptFlow 同時(shí)支持「本地 VS Code 插件」與「云端托管」。

場(chǎng)景 推薦方式 一鍵啟動(dòng)命令
個(gè)人把玩 VS Code + Docker Desktop docker run -it -p 8080:8080 mcr.microsoft.com/promptflow/pf-hosting:latest
團(tuán)隊(duì)協(xié)作 Azure AI Studio 登錄 https://ai.azure.com → 左側(cè)「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 把「模型即服務(wù)」抽象成「Connection」。下面給出 2025 年最熱門的 3 條配置模板,復(fù)制即可用:

供應(yīng)商 連接示例 備注
Azure OpenAI pf connection create -n aoai_conn -t azure_openai --api-key xxx --endpoint https://xxx.openai.azure.com GPT-4o mini 已降價(jià) 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 的心智轉(zhuǎn)換

傳統(tǒng)做法:

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 會(huì)自動(dòng)在本地起一個(gè) 8080 端口可視化界面:

flow-ui

2.2 條件節(jié)點(diǎn):讓 prompt 不再「一鍋粥」

PromptFlow 的 switch 節(jié)點(diǎn)支持按字符串、正則、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 循環(huán)節(jié)點(diǎn):批量改寫 100 條文案

假設(shè)你要把 100 條商品標(biāo)題翻譯成 emoji 風(fēng)格,循環(huán)節(jié)點(diǎn)可以這么寫:

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

3. 弱 AI 腳本自動(dòng)化:讓 1000 條用例 30 秒跑完

3.1 什么是「弱 AI 腳本」?

PromptFlow 把這類腳本抽象成「批跑作業(yè)」,核心命令:

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

3.2 用數(shù)據(jù)驅(qū)動(dòng)腳本

eval.jsonl 的格式:

{"question":"如何退訂會(huì)員?","ground_truth":"您可以在「我的-訂閱管理」中取消訂閱。"}
{"question":"你們的售后電話是多少?","ground_truth":"400-123-4567"}

跑完后自動(dòng)生成 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. 高級(jí)技巧:動(dòng)態(tài)分支、緩存、分布式批跑

4.1 動(dòng)態(tài)分支:讓 prompt 自己決定下一步

PromptFlow 2025 新增 dynamic_switch,示例:讓 LLM 輸出下一步節(jié)點(diǎn)名。

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

4.2 緩存:省錢 70%

在節(jié)點(diǎn)上加一行即可:

enable_cache: true
cache_key: ${inputs.question}

PromptFlow 會(huì)自動(dòng)把「prompt + 參數(shù)」做 SHA256,命中即直接返回緩存結(jié)果。實(shí)測(cè) GPT-4o 1000 次調(diào)用費(fèi)用從 $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. 實(shí)戰(zhàn)案例:從客服 FAQ 到多 Agent 協(xié)作

5.1 背景

某跨境電商每日 50 萬條客服 IM,需要:

  1. 意圖識(shí)別(售前/售后/物流/退款);
  2. 售后節(jié)點(diǎn)再細(xì)分「僅退款」「退貨退款」「換貨」;
  3. 最終讓不同 Agent(規(guī)則/LLM/人工)處理。

5.2 架構(gòu)圖

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

5.3 PromptFlow 落地

  1. 用 VS Code 拖出 12 個(gè)節(jié)點(diǎn);
  2. 把「退款規(guī)則」腳本化,Python 節(jié)點(diǎn)直接調(diào)用內(nèi)部 ERP API;
  3. 利用 flow.as_func() 把整條鏈路導(dǎo)出為一個(gè) REST Endpoint:
from promptflow.entities import Flow
flow = Flow.from_yaml("flows/main.dag.yaml")
app = flow.as_func()
  1. 通過 Azure Container Apps 部署,自動(dòng)縮容到 0,成本降低 83%。

6. 常見 7 個(gè)坑與一鍵自救腳本

癥狀 自救腳本
1. 輸出 JSON 缺字段 KeyError 在 LLM 節(jié)點(diǎn)加 response_format: json_object
2. 中文亂碼 輸出成 ??? 設(shè)置環(huán)境變量 PYTHONIOENCODING=utf-8
3. 并發(fā)限流 429 pf connection update -n aoai_conn --rate-limit 3000
4. 緩存擊穿 同一秒 1000 條同樣請(qǐng)求 salt: ${run_id}
5. 私有倉庫依賴 ModuleNotFound requirements.txt--extra-index-url
6. 節(jié)點(diǎn)名含空格 DAG 解析失敗 用下劃線替換空格
7. 忘記關(guān)閉 Debug 日志刷屏 pf config set debug=false

7. 2025 下半年 Roadmap 搶先看


結(jié)語:把創(chuàng)造力還給人類,把重復(fù)勞動(dòng)交給 PromptFlow

2025 年,大模型不再是「黑盒咒語」,而是可以被編排、被測(cè)試、被持續(xù)集成的「軟件單元」。PromptFlow 用一套 30 MB 的 Python 包把 LLM 拉下了神壇,也讓弱 AI 腳本第一次擁有了「工業(yè)級(jí)」的尊嚴(yán)。

現(xiàn)在就打開終端,輸入:

pip install promptflow
pf flow init --template chat

下一個(gè)把 30 分鐘手動(dòng)測(cè)試變成 3 秒自動(dòng)批跑的人,就是屏幕前的你。

上一篇:

2025 Automatic1111 SD-WebUI 插件大全|Control-Net×LoRA 高級(jí)特性解析

下一篇:

Google DeepMind發(fā)布 Genie 3:5分鐘快速接入API教程(Python/Node/Unity)
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)