genaiops-promptflow-template
微软官方 Prompt Flow 生产化运营框架:变体实验、A/B 部署、跨 Azure 全链路 LLMOps
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软官方 Prompt Flow 生产化运营框架:变体实验、A/B 部署、跨 Azure 全链路 LLMOps
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
软件开发有成熟的 DevOps 流程——代码审查、自动化测试、持续部署,一套标准化打法从 Spring Boot 到 Kubernetes 都能套用。但大语言模型应用(LLM-infused Apps)不一样。 prompt flow 本质上是一套prompt工程工作流——输入提示词、调用 LLM、返回结果。这看起来简单,但一旦要上线生产环境,问题就来了:如何批量实验不同 prompt 变体?如何评估生成质量?如何 A/B 测试两个版本的 prompt?谁来审批 prompt 的改动?生产环境的 LLM 调用成本如何控制? 这些问题没有标准答案,因为每个业务场景的 prompt 都是独特的——没有两个完全一样的客服机器人,也没有两个完全一样的代码审查工具。微软发布 genaiops-promptflow-template,正是为了填补这个空白:提供一套可配置的 LLMOps 实践模板,让开发团队不用从零摸索。
这个仓库不是又一个 Prompt Flow 示例代码,而是一个完整的操作框架(Operational Framework)。它的目标是把 Prompt Flow 从实验阶段推进到生产阶段,覆盖从本地实验到 Kubernetes 部署的全生命周期。
图1:DataOps 与 LLMOps 集成架构 — 展示数据管道与模型运营的完整链路
项目支持的场景覆盖多个维度:
按执行环境划分:
传统软件开发改一行代码有 Git diff,但 prompt 的改动呢?这个仓库引入了**变体(Variant)**概念:一个 Prompt Flow 可以定义多个变体配置,每个变体对应不同的 prompt 内容、温度参数、模型选择等。
图2:多变量实验配置 — 同一 Prompt Flow 支持多个变体并行对比评估
变体实验的价值在于:当你不确定哪组 prompt 效果最好时,可以同时运行 A/B/C 三个变体,用真实数据评估哪个更好。配置文件驱动,无需改代码。
评估是 LLMOps 最难的部分——如何衡量一段文本生成的质量?这个模板支持两种评估方式:
flows/evaluation/ 子目录,定义了该场景的评估标准和数据集。Prompt 改了,上线前总要测一测。模板支持将两个 prompt 变体同时部署,然后根据实时指标(延迟、错误率、用户反馈)选择表现更好的那一个。
图3:A/B 部署 — 两个 prompt 版本同时服务,流量按配置比例分配
模板支持将 Prompt Flow 部署到多种目标:
图4:评估指标可视化 — 每次实验生成 HTML 和 CSV 格式的详细报告
每次实验和评估运行后,模板自动生成 CSV 和 HTML 格式的报告,包含每个变体的各项指标(延迟、成本、准确率等),方便团队做数据驱动决策。
仓库包含六个标准场景,每个场景遵循统一的目录结构:
| 场景 | 说明 | 核心依赖 |
|---|---|---|
| chat_with_pdf | 基于 RAG 架构的 PDF 问答,支持向量检索(Faiss) | promptflow, PyPDF2, faiss-cpu, openai |
| class_flows | Python 类定义的工作流,适合复杂状态管理 | promptflow-azure |
| function_flows | Python 函数定义的工作流,轻量简单 | promptflow-azure |
| math_coding | 数学推理和代码生成场景 | promptflow, tiktoken |
| named_entity_recognition | 命名实体识别(NER)标准流程 | promptflow |
| web_classification | 网页内容分类与实验管理 | promptflow |
每个场景目录下统一包含 environment/Dockerfile(用于推理服务容器化)、flows/(含标准流和评估流)、configs/(部署配置)、data/(测试数据集)、tests/(单元测试)。这种一致性设计让团队可以快速复用,新增场景只需复制模板。 |
核心框架: Prompt Flow(微软 Azure 官方 LLM 工作流编排工具) 运行时依赖:
根据 README 的指示,完整使用流程如下:
Step 1 — Fork 仓库:fork 到自己的 GitHub/Azure DevOps
Step 2 — 配置环境变量:填写 .env.sample,包括 Azure 订阅信息、Workspace 名称、Key Vault 名称、AOAI API Key 等
Step 3 — 选择场景目录:每个场景目录包含完整的上手指南(README),选定后按文档配置
Step 4 — 触发流水线:通过 CI/CD 触发实验、评估或部署
实际部署难度主要在 Step 2 和 Step 3:需要同时理解 Prompt Flow 概念和 Azure AI Studio 操作界面,有一定的学习曲线。适合已有 Azure 基础或者愿意投入时间学习 Azure 生态的团队。
强依赖 Azure 生态:这个模板的所有高级功能(大规模评估、A/B 部署、Kubernetes)都需要 Azure AI Studio 或 Azure ML 环境。没有 Azure 订阅的团队,只能用本地执行这一层能力,收益大打折扣。 CI/CD 学习成本高:支持三种 CI/CD 系统(Azure DevOps / GitHub Actions / Jenkins),但每种都需要单独配置 webhook、凭据和流水线,对 DevOps 经验不足的团队有一定门槛。 Prompt 版本管理缺失:模板没有内置 prompt 版本管理(类似 Git for prompts)的机制,prompt 的变更历史和回滚需要团队自己想办法。 评估指标自定义复杂:内置评估指标有限,要接入自定义的评估逻辑(比如领域特定的质量打分),需要修改评估 flow 代码,对 Python 能力有要求。
这个项目代表了微软在 LLM 应用工业化方向的核心思路:不只提供工具,而是提供方法论。361 颗星虽然不算高,但考虑到这是微软内部的模板仓库(并非面向公众推广的开源项目),实际使用和影响力远大于数字所反映的。 从行业角度看,这个项目的价值在于:它把 Prompt Flow 的使用从「个人实验」推进到「团队协作」,把 prompt 的迭代从「手动改代码」推进到「配置驱动、流水线化」。对于正在构建企业内部 LLM 应用平台的团队,这个仓库是不可多得的参考模板——即使你不用 Azure,了解其设计理念(变体实验、A/B 部署、报告驱动)也很有价值。