
REST API命名規(guī)范的終極指南:清晰度和一致性的最佳實(shí)踐
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」 |
# 確保 Python 3.10+
pip install promptflow promptflow-tools
pf --version
# 輸出:promptflow 1.9.0
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 |
傳統(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 端口可視化界面:
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"
假設(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
PromptFlow 把這類腳本抽象成「批跑作業(yè)」,核心命令:
pf run create --flow . --data eval.jsonl --column-mapping question=question,ground_truth=answer --stream
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
}
.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
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}
在節(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。
pfazure run create \
--flow ./sentiment_flow \
--data ./logs_1m.jsonl \
--runtime gpu-cluster-v100 \
--instance-count 100
某跨境電商每日 50 萬條客服 IM,需要:
IM → IntentClassify → Router
├─ PreSale → GPT-4o
├─ AfterSale → RefundRouter
│ ├─ OnlyRefund → RuleAgent
│ ├─ Return → LLM+ERP
│ └─ Exchange → Human
└─ Logistics → RAG
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. 輸出 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 |
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)批跑的人,就是屏幕前的你。
REST API命名規(guī)范的終極指南:清晰度和一致性的最佳實(shí)踐
【豆包大模型】-Python調(diào)用豆包大模型API及文本轉(zhuǎn)語音TTS
免費(fèi)IP地址查詢API接口推薦
DeepSeek R1 × 飛書多維表格賦能教育領(lǐng)域
全面解讀:REST API與OpenAPI的區(qū)別、應(yīng)用及最佳實(shí)踐指南
5款強(qiáng)大且高效的API漏洞掃描工具推薦
Twitter (x) API 介紹:在線使用和集成指南
DeepSeek+ima:打造高效個(gè)人知識(shí)庫,提升學(xué)習(xí)與工作效率
ComfyUI API是什么:深入探索ComfyUI的API接口與應(yīng)用
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)