Python tool

Warning

De ontwikkeling van promptstroomfuncties is beëindigd op 20 april 2026. De functie wordt op 20 april 2027 volledig buiten gebruik gesteld. Op de buitengebruikstellingsdatum wordt de modus Alleen-lezen ingeschakeld. Uw bestaande stromen blijven actief tot die datum.

Opgevraagde actie: Migreer uw promptstroomworkloads naar Microsoft Agent Framework vóór 20 april 2027.

Met het hulpprogramma Python kunt u aangepaste codefragmenten maken als zelfstandige uitvoerbare knooppunten in de promptstroom. U kunt eenvoudig Python hulpprogramma's maken, code bewerken en resultaten controleren.

Inputs

Name Type Description Required
Code string codefragment Python Yes
Inputs - Lijst met hulpprogrammafunctieparameters en de bijbehorende toewijzingen -

Types

Type Python example Description
int param: int Integer type
bool param: bool Boolean type
string param: str String type
double param: float Double type
list param: lijst of param: Lijst[T] List type
object param: dict of param: Dict[K, V] Object type
Connection param: CustomConnection Verbindingstype wordt speciaal verwerkt

Parameters met de Connection typeaantekening worden behandeld als verbindingsinvoer, wat betekent:

  • De promptstroomextensie toont een selector om de verbinding te kiezen.
  • Tijdens de uitvoering probeert de promptstroom de verbinding met dezelfde naam te vinden van de parameterwaarde die is doorgegeven.

Note

De Union[...] typeaantekening wordt alleen ondersteund voor het verbindingstype, param: Union[CustomConnection, OpenAIConnection]bijvoorbeeld.

Outputs

De uitvoer is de retourwaarde van de functie Python hulpprogramma.

Schrijven met het hulpprogramma Python

Gebruik de volgende richtlijnen bij het schrijven met het hulpprogramma Python.

Guidelines

  • Python hulpprogrammacode moet bestaan uit volledige Python code, met inbegrip van de benodigde moduleimport.

  • Python hulpprogrammacode moet een functie bevatten die is ingericht met @tool (toolfunctie), die fungeert als ingangspunt voor uitvoering. Pas de @tool decorator slechts eenmaal toe in het fragment.

    In het volgende voorbeeld wordt het hulpprogramma Python gedefinieerd my_python_tool, dat is ingericht met @tool.

  • Python functieparameters moeten worden toegewezen in de sectie Inputs.

    In het volgende voorbeeld wordt de invoer message gedefinieerd en toegewezen world.

  • Een Python-functie moet een retourwaarde hebben.

    In het volgende voorbeeld wordt een samengevoegde tekenreeks geretourneerd.

Code

In het volgende fragment ziet u de basisstructuur van een hulpprogrammafunctie. De promptstroom leest de functie en extraheert invoer uit functieparameters en typ aantekeningen.

from promptflow import tool
from promptflow.connections import CustomConnection

# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(message: str, my_conn: CustomConnection) -> str:
    my_conn_dict = dict(my_conn)
    # Do some function call with my_conn_dict...
    return 'hello ' + message

Inputs

Name Type Voorbeeldwaarde in stroom-YAML Waarde doorgegeven aan functie
message string world world
my_conn CustomConnection my_conn CustomConnection Object

De promptstroom probeert de verbinding te vinden die is benoemd my_conn tijdens de uitvoering.

Outputs

"hello world"

Een redeneringsmodel aanroepen vanuit het hulpprogramma Python

Als u redeneringsmodellen wilt aanroepen die niet door het LLM-knooppunt worden ondersteund, kunt u het hulpprogramma Python gebruiken om de modellen rechtstreeks aan te roepen. In het volgende voorbeeld ziet u hoe u een redeneringsmodel aanroept vanuit het hulpprogramma Python.

from promptflow import tool
from promptflow.connections import AzureOpenAIConnection
from openai import AzureOpenAI
 
@tool
def my_python_tool(
    OpenAIConnection: AzureOpenAIConnection,
    scope_reply: str
):
    model_name = "o3-mini"
    deployment = "o3-mini"
    print(OpenAIConnection['api_base'])
    endpoint = OpenAIConnection['api_base'] #"https://<your endpoint>.openai.azure.com/"
    model_name = "o3-mini" #your model name
    deployment = "o3-mini" #your deployment name
 
    subscription_key = OpenAIConnection['api_key']
    api_version = "2024-12-01-preview" #Supply an API version that supports reasoning models.
 
    client = AzureOpenAI(
        api_version=api_version,
        azure_endpoint=endpoint,
        api_key=subscription_key,
    )
 
    response = client.chat.completions.create(
        messages=[
            {
                "role": "system",
                "content": "You are a helpful assistant.",
            },
            {
                "role": "user",
                "content": "I am going to Paris, what should I see?",
            }
        ],
        max_completion_tokens=100000,
        model=deployment
    )
    return response.choices[0].message.content

Aangepaste verbinding in het hulpprogramma Python

Als u een Python hulpprogramma ontwikkelt waarvoor externe services moeten worden aangeroepen met verificatie, gebruikt u de aangepaste verbinding in de promptstroom. U kunt deze gebruiken om de toegangssleutel veilig op te slaan en deze vervolgens op te halen in uw Python code.

Een aangepaste verbinding maken

Maak een aangepaste verbinding waarmee al uw API-sleutels voor het grote taalmodel of andere vereiste referenties worden opgeslagen.

  1. Ga naar de promptstroom in uw werkruimte en selecteer vervolgens het tabblad Verbindingen .

  2. SelecteerAangepast>.

    Schermopname van stromen op het tabblad Verbindingen met de knop Aangepast gemarkeerd in de vervolgkeuzelijst.

  3. In het rechterdeelvenster kunt u de naam van uw verbinding definiëren. U kunt meerdere sleutel-waardeparen toevoegen om uw referenties en sleutels op te slaan door sleutel-waardeparen toevoegen te selecteren.

    Schermopname van het toevoegen van een aangepast verbindingspunt en de knop Sleutel-waardeparen toevoegen.

Note

Als u één sleutel-waardepaar als geheim wilt instellen, schakelt u het selectievakje Geheim in. Met deze optie wordt uw sleutelwaarde versleuteld en opgeslagen. Zorg ervoor dat ten minste één sleutel-waardepaar is ingesteld als geheim. Anders wordt de verbinding niet gemaakt.

Een aangepaste verbinding gebruiken in Python

Een aangepaste verbinding gebruiken in uw Python code:

  1. Importeer in de codesectie van uw Python-knooppunt de aangepaste verbindingsbibliotheek from promptflow.connections import CustomConnection. Definieer een invoerparameter van het type CustomConnection in de functie van het hulpprogramma.

    Schermopname van het doc search chain-knooppunt met de markering van de aangepaste verbinding.

  2. Parseer de invoer in de invoersectie en selecteer vervolgens de aangepaste doelverbinding in de vervolgkeuzelijst Waarde .

    Schermopname van het ketenknooppunt waarin de verbinding wordt gemarkeerd.

For example:

from promptflow import tool
from promptflow.connections import CustomConnection

@tool
def my_python_tool(message: str, myconn: CustomConnection) -> str:
    # Get authentication key-values from the custom connection
    connection_key1_value = myconn.key1
    connection_key2_value = myconn.key2