Microsoft PromptFlow 快速入门指南:构建你的第一个AI流程
前言
Microsoft PromptFlow 是一个强大的开发框架,专为构建基于大型语言模型(LLM)的应用程序而设计。本文将带你快速上手PromptFlow,通过实际案例演示如何创建和测试一个简单的聊天流程。
环境准备
系统要求
在开始之前,请确保你具备以下条件:
- 熟悉Python编程语言
- 已安装Python 3.7或更高版本
安装PromptFlow
安装PromptFlow非常简单,只需执行以下命令:
pip install promptflow
这个命令会安装PromptFlow核心包及其所有依赖项。
创建第一个流程
理解Prompty文件
Prompty是PromptFlow中的关键概念,它是一个结合了YAML配置和Jinja模板的Markdown文件,用于定义LLM调用的结构和参数。
下面是一个简单的Prompty示例:
---
name: 最小化聊天
model:
api: chat
configuration:
type: azure_openai
azure_deployment: gpt-35-turbo
parameters:
temperature: 0.2
max_tokens: 1024
inputs:
question:
type: string
sample:
question: "什么是PromptFlow?"
---
system:
你是一个乐于助人的助手。
user:
{{question}}
这个文件包含三个主要部分:
- YAML前端配置:定义模型参数和输入输出结构
- 系统提示:设置AI助手的角色
- 用户输入模板:使用Jinja语法动态插入用户问题
创建Python流程函数
接下来,我们需要创建一个Python函数作为流程的入口点:
import os
from dotenv import load_dotenv
from pathlib import Path
from promptflow.tracing import trace
from promptflow.core import Prompty
BASE_DIR = Path(__file__).absolute().parent
@trace
def chat(question: str = "法国的首都是哪里?") -> str:
"""流程入口函数"""
# 加载环境变量
if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ:
load_dotenv()
# 加载Prompty文件
prompty = Prompty.load(source=BASE_DIR / "chat.prompty")
# 触发LLM调用
output = prompty(question=question)
return output
这个函数做了以下几件事:
- 使用
@trace
装饰器启用调用追踪 - 检查并加载必要的API密钥
- 加载我们之前创建的Prompty文件
- 执行LLM调用并返回结果
测试你的流程
PromptFlow提供了多种测试方式,满足不同开发者的偏好。
命令行界面(CLI)测试
使用PromptFlow提供的CLI工具可以快速测试你的流程:
pf flow test --flow flow:chat --inputs question="法国的首都是哪里?"
执行后会输出类似以下内容:
Prompt flow服务已启动...
你可以通过以下URL查看追踪详情:
http://127.0.0.1:51330/v1.0/ui/traces/?#collection=chat-minimal&uiTraceId=0x49382bbe30664f747348a8ae9dc8b954
法国的首都是巴黎
追踪UI会展示LLM调用的详细信息,包括请求参数和响应内容。
SDK方式测试
如果你更喜欢直接在Python代码中测试,可以这样操作:
if __name__ == "__main__":
from promptflow.tracing import start_trace
start_trace()
result = chat("法国的首都是哪里?")
print(result)
运行这个脚本会得到与CLI类似的输出,同样会提供追踪URL。
可视化界面测试
PromptFlow还提供了友好的用户界面:
pf flow test --flow flow:chat --ui
这个命令会打开一个浏览器窗口,你可以在其中与你的聊天流程进行交互。
进阶学习
完成这个快速入门后,你可以继续探索以下主题:
- 追踪机制:深入了解PromptFlow如何记录和分析LLM调用
- Prompty开发:学习创建更复杂的提示模板
- 流程开发:掌握使用Python类和函数构建复杂流程
- DAG流程:学习使用可视化界面设计流程
结语
通过本教程,你已经掌握了PromptFlow的基本使用方法。PromptFlow的强大之处在于它提供了从简单到复杂的各种开发模式,无论你是想快速构建原型还是开发生产级应用,都能找到合适的工具和方法。
下一步,建议尝试修改Prompty文件中的参数,比如调整temperature值观察输出变化,或者添加更多的输入参数来构建更复杂的交互场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考