{"library":"promptflow","title":"Prompt Flow Devkit","description":"Prompt Flow is a development tool designed to streamline the end-to-end development cycle of Large Language Model (LLM)-based AI applications, covering ideation, prototyping, testing, evaluation, and production deployment. It provides a Python SDK and CLI for building, testing, and managing AI workflows. The current version is 1.18.4, with frequent minor releases delivering new features and improvements.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install promptflow"],"cli":{"name":"pf","version":"{"}},"imports":["from promptflow import tool","from promptflow.connections import AzureOpenAIConnection","from promptflow.client import PromptFlowClient"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom promptflow import tool\n\n@tool\ndef summarize_text(text: str, max_length: int = 100) -> str:\n    \"\"\"\n    A simple tool that summarizes text by truncating it.\n    In a real Prompt Flow, this might invoke an LLM via a connection.\n    \"\"\"\n    if len(text) <= max_length:\n        return text\n    return text[:max_length-3] + \"...\"\n\n# You can test a tool directly as a Python function:\nlong_text = \"This is a very long piece of text that needs to be summarized. It contains many words and details.\"\nprint(f\"Original: {long_text}\")\nprint(f\"Summarized: {summarize_text(long_text, max_length=30)}\")\n\n# To interact with Prompt Flow programmatically, initialize the client:\n# client = PromptFlowClient(subscription_id=os.environ.get(\"AZURE_SUBSCRIPTION_ID\", \"\"), \n#                          resource_group_name=os.environ.get(\"AZURE_RESOURCE_GROUP_NAME\", \"\"),\n#                          workspace_name=os.environ.get(\"AZURE_WORKSPACE_NAME\", \"\"))\n# You would then use the client to manage flows, connections, and runs.","lang":"python","description":"This quickstart demonstrates how to define a Python function as a Prompt Flow tool using the `@tool` decorator. Tools are the building blocks of Prompt Flow applications. For full flow orchestration and interaction with LLMs via connections, the `PromptFlowClient` or the CLI is typically used.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.18.2","pypi_latest":"1.18.5","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":25.1,"avg_import_s":6.66,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":6.48,"mem_mb":77.1,"disk_size":"346.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":26.2,"import_time_s":4.87,"mem_mb":75.8,"disk_size":"336M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":8.06,"mem_mb":85.2,"disk_size":"382.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":25.6,"import_time_s":6.76,"mem_mb":83.9,"disk_size":"372M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":7.45,"mem_mb":83.7,"disk_size":"364.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":21.6,"import_time_s":6.96,"mem_mb":82.4,"disk_size":"353M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":6.87,"mem_mb":84.5,"disk_size":"362.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":21.7,"import_time_s":6.66,"mem_mb":83.3,"disk_size":"352M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":6.53,"mem_mb":79,"disk_size":"351.0M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"promptflow","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":30.6,"import_time_s":5.94,"mem_mb":77.7,"disk_size":"344M"}]}}