Strumento Python per i flussi nel portale di Azure AI Foundry
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Il prompt flow dello strumento Python offre frammenti di codice personalizzati come nodi eseguibili autonomi. È possibile creare rapidamente strumenti Python, modificare codice e verificare i risultati.
Compilare con lo strumento Python
Creare o aprire un flusso in Azure AI Foundry. Per altre informazioni, vedere Creare un flusso.
Selezionare + Python per aggiungere lo strumento Python al flusso.
Immettere i valori per i parametri di input dello strumento Python descritti nella tabella di input. Ad esempio, nella casella di testo di input Code è possibile immettere il codice Python seguente:
from promptflow import tool @tool def my_python_tool(message: str) -> str: return 'hello ' + message
Per altre informazioni, vedere Requisiti di input del codice Python.
Aggiungere altri strumenti al flusso in base alle esigenze. In alternativa, selezionare Esegui per eseguire il flusso.
Gli output sono descritti nella tabella degli output. In base all'input di codice Python dell'esempio precedente, se il messaggio di input è "world", l'output è
hello world
.
Input
Dopo aver salvato il codice, l'elenco di input cambia in base agli argomenti della funzione dello strumento. L'aggiunta del tipo agli argomenti e ai valori return
permette allo strumento di mostrare correttamente i tipi.
Nome | Tipo | Descrizione | Richiesto |
---|---|---|---|
Codice | string | Frammento di codice Python. | Sì |
Input | - | Elenco dei parametri della funzione dello strumento e delle relative assegnazioni. | - |
Output
L'output è il valore return
della funzione dello strumento Python. Si consideri ad esempio la funzione dello strumento Python seguente:
from promptflow import tool
@tool
def my_python_tool(message: str) -> str:
return 'hello ' + message
Se il messaggio di input è "world", l'output è hello world
.
Tipi
Type | Esempio in Python | Descrizione |
---|---|---|
int | param: int | Tipo Integer |
bool | param: bool | Tipi booleani |
string | param: str | Tipo di stringa |
double | param: float | Tipo double |
list | param: list o param: List[T] | Tipo di elenco |
oggetto | param: dict o param: Dict[K, V] | Object type |
Connessione | param: CustomConnection | Il tipo di connessione viene gestito appositamente. |
I parametri con l'annotazione di tipo Connection
vengono considerati come input di connessione, ovvero:
- L'estensione del prompt flow mostra un selettore per selezionare la connessione.
- Durante l'esecuzione, il prompt flow tenta di trovare la connessione con lo stesso nome dal valore del parametro passato.
Nota
L'annotazione di tipo Union[...]
è supportata solo per il tipo di connessione. Un esempio è param: Union[CustomConnection, OpenAIConnection]
.
Requisiti di input del codice Python
Questa sezione descrive i requisiti di input del codice Python per lo strumento Python.
- Il codice dello strumento Python deve essere costituito da un codice Python completo, incluse le importazioni dei moduli necessarie.
- Il codice dello strumento Python deve contenere una funzione decorata con
@tool
, funzione dello strumento, che funge da punto di ingresso per l'esecuzione. L’elemento Decorator deve essere applicato una sola volta all'interno del frammento di codice. - I parametri della funzione dello strumento Python devono essere assegnati nella sezione
Inputs
. - La funzione dello strumento Python deve avere un'istruzione return e un valore, ovvero l'output dello strumento.
Il codice Python seguente è un esempio delle procedure consigliate:
from promptflow import tool
@tool
def my_python_tool(message: str) -> str:
return 'hello ' + message
Usare una connessione personalizzata nello strumento Python
Se si sviluppa uno strumento Python che richiede la chiamata di servizi esterni con l'autenticazione, è possibile usare la connessione personalizzata nel prompt flow. Consente di archiviare in modo sicuro la chiave di accesso e quindi recuperarla nel codice Python.
Creare una connessione personalizzata
Creare una connessione personalizzata per archiviare tutte le chiavi API del modello linguistico di grandi dimensioni o altre credenziali necessarie.
Passare alla pagina Centro gestione per il progetto.
Nell'intestazione Hub o Project (Hub) selezionare Connected resources (Risorse connesse).
Seleziona + Nuova connessione.
Selezionare il servizio personalizzato. È possibile definire il nome della connessione. È possibile aggiungere più coppie chiave-valore per archiviare le credenziali e le chiavi selezionando Aggiungi coppie chiave-valore.
Nota
Assicurarsi che almeno una coppia chiave-valore sia impostata come segreto. In caso contrario, la connessione non verrà creata correttamente. Per impostare una coppia chiave-valore come segreto, selezionare è segreto per crittografare e archiviare il valore della chiave.
Usare una connessione personalizzata in Python
Per usare una connessione personalizzata nel codice Python:
- Nella sezione del codice nel nodo Python importare la libreria di connessione personalizzata
from promptflow.connections import CustomConnection
. Definire un parametro di input di tipoCustomConnection
nella funzione dello strumento. - Analizzare l'input nella sezione di input. Selezionare quindi la connessione personalizzata di destinazione nell'elenco a discesa dei valori.
Ad esempio:
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