Strumento Python per i flussi in Studio AI della piattaforma Azure

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

  1. Creare o aprire un flusso in Studio AI della piattaforma Azure. Per altre informazioni, vedere Creare un flusso.

  2. Selezionare + Python per aggiungere lo strumento Python al flusso.

    Screenshot che mostra lo strumento Python aggiunto a un flusso in Studio AI della piattaforma Azure.

  3. 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.

  4. Aggiungere altri strumenti al flusso in base alle esigenze. In alternativa, selezionare Esegui per eseguire il flusso.

  5. 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.
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.

  1. Passare alla pagina Impostazioni del progetto. Selezionare quindi + Nuova connessione.

  2. 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:

  1. Nella sezione del codice nel nodo Python importare la libreria di connessione personalizzata from promptflow.connections import CustomConnection. Definire un parametro di input di tipo CustomConnection nella funzione dello strumento.
  2. 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

Passaggi successivi