Skip to content

Latest commit

 

History

History

examples

Promptflow examples

code style: black license: MIT

Get started

Install dependencies

  • Bootstrap your python environment.
    • e.g: create a new conda environment. conda create -n pf-examples python=3.9.
    • install required packages in python environment : pip install -r requirements.txt
      • show installed sdk: pip show promptflow

Quick start

path status description
quickstart.ipynb samples_getstarted_quickstart A quickstart tutorial to run a flow and evaluate it.
quickstart-azure.ipynb samples_getstarted_quickstartazure A quickstart tutorial to run a flow in Azure AI and evaluate it.

CLI examples

Tutorials (tutorials)

path status description
chat-with-pdf samples_tutorials_e2e_development_chat_with_pdf Retrieval Augmented Generation (or RAG) has become a prevalent pattern to build intelligent application with Large Language Models (or LLMs) since it can infuse external knowledge into the model, which is not trained with those up-to-date or proprietary information
azure-app-service samples_tutorials_flow_deploy_azure_app_service This example demos how to deploy a flow using Azure App Service
create-service-with-flow samples_tutorials_flow_deploy_create_service_with_flow This example shows how to create a simple service with flow
distribute-flow-as-executable-app samples_tutorials_flow_deploy_distribute_flow_as_executable_app This example demos how to package flow as a executable app
docker samples_tutorials_flow_deploy_docker This example demos how to deploy flow as a docker app
kubernetes samples_tutorials_flow_deploy_kubernetes This example demos how to deploy flow as a Kubernetes app
promptflow-quality-improvement samples_tutorials_flow_fine_tuning_evaluation_promptflow_quality_improvement This tutorial is designed to enhance your understanding of improving flow quality through prompt tuning and evaluation
tracing samples_tutorials_tracing Prompt flow provides the tracing feature to capture and visualize the internal execution details for all flows

Prompty (prompty)

path status description
basic samples_prompty_basic A basic prompt that uses the chat API to answer questions, with connection configured using environment variables
chat-basic samples_prompty_chat_basic A prompt that uses the chat API to answer questions with chat history, leveraging promptflow connection
eval-apology samples_prompty_eval_apology A prompt that determines whether a chat conversation contains an apology from the assistant
eval-basic samples_prompty_eval_basic Basic evaluator prompt for QA scenario
format-output samples_prompty_format_output A few examples that demos different prompty response format like text, json_object, and how to enable stream output

Flex Flows (flex-flows)

path status description
basic samples_flex_flows_basic A basic standard flow define using function entry that calls Azure OpenAI with connection info stored in environment variables
chat-async-stream samples_flex_flows_chat_async_stream A chat flow defined using async class entry that return output in stream mode
chat-basic samples_flex_flows_chat_basic A basic chat flow defined using class entry
chat-minimal samples_flex_flows_chat_minimal A chat flow defined using function with minimal code
chat-stream samples_flex_flows_chat_stream A chat flow defined using class entry that return output in stream mode
chat-with-functions samples_flex_flows_chat_with_functions This flow covers how to use the LLM chat API in combination with external functions to extend the capabilities of GPT models
eval-checklist samples_flex_flows_eval_checklist A example flow defined using class entry which demos how to evaluate the answer pass user specified check list
eval-code-quality samples_flex_flows_eval_code_quality A example flow defined using class based entry which leverages model config to evaluate the quality of code snippet
eval-criteria-with-langchain samples_flex_flows_eval_criteria_with_langchain A example flow of converting LangChain criteria evaluator application to flex flow

Flows (flows)

path status description
autonomous-agent samples_flows_standard_autonomous_agent This is a flow showcasing how to construct a AutoGPT agent with promptflow to autonomously figures out how to apply the given functions to solve the goal, which is film trivia that provides accurate and up-to-date information about movies, directors, actors, and more in this sample
basic samples_flows_standard_basic A basic standard flow using custom python tool that calls Azure OpenAI with connection info stored in environment variables
basic-with-builtin-llm samples_flows_standard_basic_with_builtin_llm A basic standard flow that calls Azure OpenAI with builtin llm tool
basic-with-connection samples_flows_standard_basic_with_connection A basic standard flow that using custom python tool calls Azure OpenAI with connection info stored in custom connection
conditional-flow-for-if-else samples_flows_standard_conditional_flow_for_if_else This example is a conditional flow for if-else scenario
conditional-flow-for-switch samples_flows_standard_conditional_flow_for_switch This example is a conditional flow for switch scenario
customer-intent-extraction samples_flows_standard_customer_intent_extraction This sample is using OpenAI chat model(ChatGPT/GPT4) to identify customer intent from customer's question
describe-image samples_flows_standard_describe_image A flow that take image input, flip it horizontally and uses OpenAI GPT-4V tool to describe it
flow-with-additional-includes samples_flows_standard_flow_with_additional_includes User sometimes need to reference some common files or folders, this sample demos how to solve the problem using additional_includes
flow-with-symlinks samples_flows_standard_flow_with_symlinks User sometimes need to reference some common files or folders, this sample demos how to solve the problem using symlinks
gen-docstring samples_flows_standard_gen_docstring This example can help you automatically generate Python code's docstring and return the modified code
maths-to-code samples_flows_standard_maths_to_code Math to Code is a project that utilizes the power of the chatGPT model to generate code that models math questions and then executes the generated code to obtain the final numerical answer
named-entity-recognition samples_flows_standard_named_entity_recognition A flow that perform named entity recognition task
question-simulation samples_flows_standard_question_simulation This question simulation flow is used to generate suggestions for the next question based on the previous chat history
web-classification samples_flows_standard_web_classification This is a flow demonstrating multi-class classification with LLM
path status description
eval-basic samples_flows_evaluation_eval_basic This example shows how to create a basic evaluation flow
eval-chat-math samples_flows_evaluation_eval_chat_math This example shows how to evaluate the answer of math questions, which can compare the output results with the standard answers numerically
eval-classification-accuracy samples_flows_evaluation_eval_classification_accuracy This is a flow illustrating how to evaluate the performance of a classification system
eval-entity-match-rate samples_flows_evaluation_eval_entity_match_rate This is a flow evaluates: entity match rate
eval-groundedness samples_flows_evaluation_eval_groundedness This is a flow leverage llm to eval groundedness: whether answer is stating facts that are all present in the given context
eval-multi-turn-metrics samples_flows_evaluation_eval_multi_turn_metrics This evaluation flow will evaluate a conversation by using Large Language Models (LLM) to measure the quality of the responses
eval-perceived-intelligence samples_flows_evaluation_eval_perceived_intelligence This is a flow leverage llm to eval perceived intelligence
eval-qna-non-rag samples_flows_evaluation_eval_qna_non_rag This is a flow evaluating the Q&A systems by leveraging Large Language Models (LLM) to measure the quality and safety of responses
eval-qna-rag-metrics samples_flows_evaluation_eval_qna_rag_metrics This is a flow evaluating the Q&A RAG (Retrieval Augmented Generation) systems by leveraging the state-of-the-art Large Language Models (LLM) to measure the quality and safety of responses
eval-single-turn-metrics samples_flows_evaluation_eval_single_turn_metrics This evaluation flow will evaluate a question and answer pair by using Large Language Models (LLM) to measure the quality of the answer
eval-summarization samples_flows_evaluation_eval_summarization This flow implements a reference-free automatic abstractive summarization evaluation across four dimensions: fluency, coherence, consistency, relevance
path status description
chat-basic samples_flows_chat_chat_basic This example shows how to create a basic chat flow
chat-math-variant samples_flows_chat_chat_math_variant This is a prompt tuning case with 3 prompt variants for math question answering
chat-with-image samples_flows_chat_chat_with_image This flow demonstrates how to create a chatbot that can take image and text as input
chat-with-pdf samples_flows_chat_chat_with_pdf This is a simple flow that allow you to ask questions about the content of a PDF file and get answers
chat-with-wikipedia samples_flows_chat_chat_with_wikipedia This flow demonstrates how to create a chatbot that can remember previous interactions and use the conversation history to generate next message
use_functions_with_chat_models samples_flows_chat_use_functions_with_chat_models This flow covers how to use the LLM tool chat API in combination with external functions to extend the capabilities of GPT models

Tool Use Cases (Tool Use Cases)

path status description
cascading-inputs-tool-showcase samples_tools_use_cases_cascading_inputs_tool_showcase This is a flow demonstrating the use of a tool with cascading inputs which frequently used in situations where the selection in one input field determines what subsequent inputs should be shown, and it helps in creating a more efficient, user-friendly, and error-free input process
custom-strong-type-connection-package-tool-showcase samples_tools_use_cases_custom_strong_type_connection_package_tool_showcase This is a flow demonstrating the use of a package tool with custom string type connection which provides a secure way to manage credentials for external APIs and data sources, and it offers an improved user-friendly and intellisense experience compared to custom connections
custom-strong-type-connection-script-tool-showcase samples_tools_use_cases_custom_strong_type_connection_script_tool_showcase This is a flow demonstrating the use of a script tool with custom string type connection which provides a secure way to manage credentials for external APIs and data sources, and it offers an improved user-friendly and intellisense experience compared to custom connections
custom_llm_tool_showcase samples_tools_use_cases_custom_llm_tool_showcase This is a flow demonstrating how to use a custom_llm tool, which enables users to seamlessly connect to a large language model with prompt tuning experience using a PromptTemplate
dynamic-list-input-tool-showcase samples_tools_use_cases_dynamic_list_input_tool_showcase This is a flow demonstrating how to use a tool with a dynamic list input

Connections (connections)

path status description
connections samples_connections This folder contains example YAML files for creating connection using pf cli

SDK examples

path status description
quickstart.ipynb samples_getstarted_quickstart A quickstart tutorial to run a flow and evaluate it.
quickstart-azure.ipynb samples_getstarted_quickstartazure A quickstart tutorial to run a flow in Azure AI and evaluate it.
flow-as-function.ipynb samples_getstarted_flowasfunction This guide will walk you through the main scenarios of executing flow as a function.
pipeline.ipynb samples_runflowwithpipeline_pipeline Create pipeline using components to run a distributed job with tensorflow
cloud-run-management.ipynb samples_runmanagement_cloudrunmanagement Flow run management in Azure AI
run-management.ipynb samples_runmanagement_runmanagement Flow run management
trace-autogen-groupchat.ipynb samples_tracing_autogengroupchat_traceautogengroupchat Tracing LLM calls in autogen group chat application
otlp-trace-collector.ipynb samples_tracing_customotlpcollector_otlptracecollector A tutorial on how to levarage custom OTLP collector.
trace-langchain.ipynb samples_tracing_langchain_tracelangchain Tracing LLM calls in langchain application
trace-llm.ipynb samples_tracing_llm_tracellm Tracing LLM application
connection.ipynb samples_connections_connection Manage various types of connections using sdk
flex-flow-quickstart-azure.ipynb samples_flexflows_basic_flexflowquickstartazure A quickstart tutorial to run a flex flow and evaluate it in Azure.
flex-flow-quickstart.ipynb samples_flexflows_basic_flexflowquickstart A quickstart tutorial to run a flex flow and evaluate it.
chat-stream-with-async-flex-flow.ipynb samples_flexflows_chatasyncstream_chatstreamwithasyncflexflow A quickstart tutorial to run a class based flex flow in stream mode and evaluate it.
chat-with-class-based-flow-azure.ipynb samples_flexflows_chatbasic_chatwithclassbasedflowazure A quickstart tutorial to run a class based flex flow and evaluate it in azure.
chat-with-class-based-flow.ipynb samples_flexflows_chatbasic_chatwithclassbasedflow A quickstart tutorial to run a class based flex flow and evaluate it.
chat-stream-with-flex-flow.ipynb samples_flexflows_chatstream_chatstreamwithflexflow A quickstart tutorial to run a class based flex flow in stream mode and evaluate it.
langchain-eval.ipynb samples_flexflows_evalcriteriawithlangchain_langchaineval A tutorial to converting LangChain criteria evaluator application to flex flow.
prompty-quickstart.ipynb samples_prompty_basic_promptyquickstart A quickstart tutorial to run a prompty and evaluate it.
chat-with-prompty.ipynb samples_prompty_chatbasic_chatwithprompty A quickstart tutorial to run a chat prompty and evaluate it.
prompty-output-format.ipynb samples_prompty_formatoutput_promptyoutputformat
chat-with-pdf-azure.ipynb samples_flows_chat_chatwithpdf_chatwithpdfazure A tutorial of chat-with-pdf flow that executes in Azure AI
chat-with-pdf.ipynb samples_flows_chat_chatwithpdf_chatwithpdf A tutorial of chat-with-pdf flow that allows user ask questions about the content of a PDF file and get answers

Contributing

We welcome contributions and suggestions! Please see the contributing guidelines for details.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. Please see the code of conduct for details.

Reference