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: CustomConnection | Anslutningstypen 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]
.
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 detworld
.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.
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.
Gå till kommandotolkens flöde på arbetsytan och gå sedan till fliken Anslutningar .
Välj Skapa>anpassad.
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.
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:
I kodavsnittet i python-noden importerar du det anpassade anslutningsbiblioteket
from promptflow.connections import CustomConnection
. Definiera en indataparameter av typenCustomConnection
i verktygsfunktionen.Parsa indata till indataavsnittet och välj sedan din anpassade målanslutning i listrutan Värde .
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