Delen via


Python-hulpprogramma

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

Invoerwaarden

Naam Type Beschrijving Vereist
Code tekenreeks Python-codefragment Ja
Invoerwaarden - Lijst met hulpprogrammafunctieparameters en de bijbehorende toewijzingen -

Typen

Type Python-voorbeeld Beschrijving
int param: int Type geheel getal
bool param: bool Booleaanse waardetype
tekenreeks param: str Type tekenreeks
dubbel param: float Dubbel type
lijst param: lijst of param: Lijst[T] Lijsttype
object param: dict of param: Dict[K, V] Object type
Verbinding param: CustomConnection Verbindingstype wordt speciaal verwerkt

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

  • De extensie Promptstroom toont een selector om de verbinding te selecteren.
  • Tijdens de uitvoering probeert de promptstroom de verbinding met dezelfde naam te vinden als de parameterwaarde die is doorgegeven.

Notitie

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

Uitvoerwaarden

Uitvoer is de return van de Python-hulpprogrammafunctie.

Schrijven met het Python-hulpprogramma

Gebruik de volgende richtlijnen om te schrijven met het Python-hulpprogramma.

Richtlijnen

  • Python-hulpprogrammacode moet bestaan uit volledige Python-code, inclusief eventuele benodigde moduleimport.

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

    Het voorbeeld in de volgende sectie definieert het Python-hulpprogramma my_python_tool, dat is ingericht met @tool.

  • Parameters voor de Python-hulpprogrammafunctie moeten worden toegewezen in de Inputs sectie.

    Het voorbeeld in de volgende sectie definieert de invoer message en wijst deze worldtoe.

  • Een Python-hulpprogrammafunctie heeft een return.

    Het voorbeeld in de volgende sectie retourneert een samengevoegde tekenreeks.

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

Invoerwaarden

Naam Type Voorbeeldwaarde in stroom-YAML Waarde doorgegeven aan functie
bericht tekenreeks world world
my_conn CustomConnection my_conn CustomConnection object

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

Uitvoerwaarden

"hello world"

Aangepaste verbinding in het Python-hulpprogramma

Als u een Python-hulpprogramma ontwikkelt waarvoor externe services met verificatie moeten worden aangeroepen, 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 waarin al uw API-sleutel voor het grote taalmodel of andere vereiste referenties worden opgeslagen.

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

  2. Selecteer Aangepast maken>.

    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.

Notitie

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.

Voorbeeld:

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