Share via


Python-verktyg

Med Python-verktyget kan du erbjuda anpassade kodfragment som fristående körbara noder i promptflödet. Du kan enkelt skapa Python-verktyg, redigera kod och verifiera resultat.

Indata

Namn Type Beskrivning Obligatoriskt
Kod sträng Python-kodfragment Ja
Indata - Lista över verktygsfunktionsparametrar och dess tilldelningar -

Typer

Typ Python-exempel beskrivning
heltal param: int Heltalstyp
bool param: bool Boolesk typ
sträng param: str Strängtyp
dubbel param: float Dubbel typ
lista param: list eller param: List[T] Listtyp
objekt param: dict eller param: Dict[K, V] Object type
Anslutning param: Anpassad Anslut ion Anslut ionstyp hanteras särskilt

Parametrar med typanteckningen Connection behandlas som anslutningsindata, vilket innebär:

  • Prompt flow-tillägget visar en väljare för att välja anslutningen.
  • Under körningstiden försöker promptflödet hitta anslutningen med samma namn från parametervärdet som skickades in.

Kommentar

Typanteckningen Union[...] stöds endast för anslutningstypen, till exempel param: Union[CustomConnection, OpenAIConnection].

Outputs (Utdata)

Utdata är återkomsten av Python-verktygsfunktionen.

Skriva med Python-verktyget

Använd följande riktlinjer för att skriva med Python-verktyget.

Riktlinjer

  • Python-verktygskoden bör bestå av fullständig Python-kod, inklusive eventuella nödvändiga modulimporter.

  • Python-verktygskoden måste innehålla en funktion som är dekorerad med @tool (verktygsfunktionen), som fungerar som startpunkt för körning. Använd dekoratören @tool bara en gång i kodfragmentet.

    Exemplet i nästa avsnitt definierar Python-verktyget my_python_tool, som är dekorerat med @tool.

  • Funktionsparametrar för Python-verktyget måste tilldelas i avsnittet Inputs .

    Exemplet i nästa avsnitt definierar indata message och tilldelar det world.

  • En Python-verktygsfunktion har en retur.

    Exemplet i nästa avsnitt returnerar en sammanfogad sträng.

Kod

Följande kodfragment visar den grundläggande strukturen för en verktygsfunktion. Prompt flow läser funktionen och extraherar indata från funktionsparametrar och skriver anteckningar.

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

Indata

Namn Type Exempelvärde i flödes-YAML Värde som skickas till funktionen
meddelande sträng world world
my_conn CustomConnection my_conn CustomConnection Objekt

Kommandotolken försöker hitta anslutningen med namnet my_conn under körningstiden.

Outputs (Utdata)

"hello world"

Anpassad anslutning i Python-verktyget

Om du utvecklar ett Python-verktyg som kräver att externa tjänster anropas med autentisering använder du den anpassade anslutningen i promptflödet. Du kan använda den för att lagra åtkomstnyckeln på ett säkert sätt och sedan hämta den i Python-koden.

Skapa en anpassad anslutning

Skapa en anpassad anslutning som lagrar alla dina API-nycklar för stora språkmodeller eller andra nödvändiga autentiseringsuppgifter.

  1. Gå till promptflödet på arbetsytan och gå sedan till fliken Anslut ions.

  2. Välj Skapa>anpassad.

    Screenshot that shows flows on the Connections tab highlighting the Custom button in the drop-down menu.

  3. I den högra rutan kan du definiera ditt anslutningsnamn. Du kan lägga till flera nyckel/värde-par för att lagra dina autentiseringsuppgifter och nycklar genom att välja Lägg till nyckel/värde-par.

    Screenshot that shows adding a custom connection point and the Add key-value pairs button.

Kommentar

Om du vill ange ett nyckel/värde-par som hemlighet markerar du kryssrutan är hemlig . Det här alternativet krypterar och lagrar ditt nyckelvärde. Kontrollera att minst ett nyckel/värde-par har angetts som hemlighet. Annars skapas inte anslutningen.

Använda en anpassad anslutning i Python

Så här använder du en anpassad anslutning i Python-koden:

  1. I kodavsnittet i python-noden importerar du det anpassade anslutningsbiblioteket from promptflow.connections import CustomConnection. Definiera en indataparameter av typen CustomConnection i verktygsfunktionen.

    Screenshot that shows the doc search chain node highlighting the custom connection.

  2. Parsa indata till indataavsnittet och välj sedan din anpassade målanslutning i listrutan Värde .

    Screenshot that shows the chain node highlighting the connection.

Till exempel:

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