快速开始#

本指南将引导您完成 Prompt flow 代码优先体验的第一步。

先决条件 - 为了充分利用本教程,您需要具备:

  • Python 编程知识

学习目标 - 完成本教程后,您应该知道如何:

  • 设置您的 Python 环境以运行 Prompt flow

  • 使用提示和 Python 函数创建流

  • 使用您喜欢的体验测试流:CLI、SDK 或 UI。

安装#

安装 promptflow 包即可开始使用。

pip install promptflow

了解更多关于安装

创建您的第一个流#

使用 prompty 模拟 LLM 调用#

创建一个 Prompty 文件来帮助您触发一个 LLM 调用。

---
name: Minimal Chat
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: "What is Prompt flow?"
---

system:
You are a helpful assistant.

user:
{{question}}

Prompty 是一个 Markdown 文件。其前言以 YAML 结构化,封装了一系列元数据字段,这些字段对于定义模型配置和 prompty 的输入至关重要。前言之后是提示模板,以 Jinja 格式表达。有关更多详细信息,请参阅开发 prompty

创建一个流#

创建一个 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 = "What's the capital of France?") -> str:
    """Flow entry function."""

    if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ:
        # load environment variables from .env file
        load_dotenv()

    prompty = Prompty.load(source=BASE_DIR / "chat.prompty")
    # trigger a llm call with the prompty obj
    output = prompty(question=question)
    return output

流可以是 Python 函数、类或描述 DAG 的 YAML 文件,它封装了您的 LLM 应用程序逻辑。了解更多关于流概念以及如何开发流

请参阅此 Python 文件的完整示例:Minimal Chat

测试流#

使用您喜欢的体验测试流:CLI、SDK 或 UI。

pf 是您安装 promptflow 包时获得的 CLI 命令。在参考文档中了解更多关于 pf CLI 的功能。

pf flow test --flow flow:chat --inputs question="What's the capital of France?"

您将在终端中看到类似以下的输出。

Prompt flow service has started...
You can view the trace detail from the following URL:
http://127.0.0.1:51330/v1.0/ui/traces/?#collection=chat-minimal&uiTraceId=0x49382bbe30664f747348a8ae9dc8b954

The capital of France is Paris

如果您点击打印的追踪 URL,您将看到一个追踪 UI,它帮助您了解幕后发生的实际 LLM 调用。trace_ui

使用您的问题调用聊天函数。假设您有一个内容如下的 flow.py 文件。

if __name__ == "__main__":
    from promptflow.tracing import start_trace

    start_trace()

    result = chat("What's the capital of France?")
    print(result)

使用 python flow.py 运行脚本,您将得到类似以下的输出:

Prompt flow service has started...
You can view the trace detail from the following URL:
http://127.0.0.1:51330/v1.0/ui/traces/?#collection=chat-minimal&uiTraceId=0x49382bbe30664f747348a8ae9dc8b954

The capital of France is Paris

如果您点击打印的追踪 URL,您将看到一个追踪 UI,它帮助您了解幕后发生的实际 LLM 调用。trace_ui

使用以下命令启动测试聊天 UI。

pf flow test --flow flow:chat --ui 

该命令将打开一个类似以下的浏览器页面:chat_ui

有关此主题的更多详细信息,请参阅使用流聊天

点击“查看追踪”按钮,您将看到一个追踪 UI,它帮助您了解幕后发生的实际 LLM 调用。trace_ui

后续步骤#

了解更多关于如何:

  • 追踪:有关追踪工作原理的详细信息。

  • 开发 prompty:有关如何开发 prompty 的详细信息。

  • 开发流:有关如何使用 Python 函数或类开发流的详细信息。

  • 开发 DAG 流:有关如何使用友好的 DAG UI 开发流的详细信息。

您还可以查看我们的教程,特别是:

  • 教程:与 PDF 聊天:一个端到端的教程,介绍如何使用 Prompt flow 构建高质量的聊天应用程序,包括流开发和指标评估。