Partager via


Outil Python pour les flux dans Azure AI Studio

Important

Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

L’outil de flux rapide Python permet aux utilisateurs de proposer des extraits de code personnalisés sous forme de nœuds exécutables autonomes dans le flux d’invite. Vous pouvez créer des outils Python, modifier du code et vérifier les résultats en toute simplicité.

Générez avec l’outil Python

  1. Créez ou ouvrez un flux dans Azure AI Studio. Pour obtenir plus d’informations, consultez l’article Créer un flux.

  2. Sélectionnez + Python pour ajouter l’outil Python à votre flux.

    Capture d’écran qui montre l’outil Python ajouté à un flux dans Azure AI Studio.

  3. Entrez des valeurs pour les paramètres d’entrée de l’outil Python décrits dans la table Entrées. Par exemple, dans la zone de texte d’entrée Code, vous pouvez entrer le code Python suivant :

    from promptflow import tool
    
    @tool
    def my_python_tool(message: str) -> str:
        return 'hello ' + message
    

    Pour plus d’informations, consultez Conditions requises pour l’entrée du code Python.

  4. Ajoutez d’autres outils à votre flux, selon vos besoins. Ou sélectionnez Exécuter pour exécuter le flux.

  5. Les sorties sont décrites dans la table Sorties. Sur la base de l’exemple précédent d’entrée de code Python, si le message d’entrée est « world », la sortie est hello world.

Entrées

La liste des entrées change en fonction des arguments de la fonction outil, après avoir enregistré le code. Ajouter un type aux arguments et aux valeurs return aide l’outil à afficher correctement les types.

Nom Type Description Obligatoire
Code string L’extrait de code Python. Oui
Entrées - La liste des paramètres de la fonction outil et de ses affectations. -

Outputs

La sortie est la valeur return de la fonction outil Python. Par exemple, considérez la fonction outil Python suivante :

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Si le message d’entrée est « world », la sortie est hello world.

Types

Type Exemple Python Description
int param : int Type entier
bool param : bool Boolean, type
string param : str String, type
double param : float Double, type
list param : list ou param : List[T] Type de liste
object param : dict ou param : Dict[K, V] Type d'objet
Connexion param : CustomConnection Le type de connexion est géré spécialement.

Les paramètres avec l’annotation de type Connection sont traités comme des entrées de connexion, ce qui signifie :

  • L’extension de flux d’invite affiche un sélecteur, pour sélectionner la connexion.
  • Pendant l’exécution, le flux d’invite tente de trouver la connexion portant le même nom que la valeur du paramètre qui a été transmise.

Remarque

L’annotation de type Union[...] n’est prise en charge que pour le type de connexion. par exemple param: Union[CustomConnection, OpenAIConnection].

Exigences d’entrée du code Python

Cette section décrit les exigences de l’entrée de code Python pour l’outil Python.

  • Le code de l’outil Python doit se composer d’un code Python complet, incluant toutes les importations de module nécessaires.
  • Le code de l’outil Python doit contenir une fonction décorée avec @tool (fonction outil), qui sert de point d’entrée pour l’exécution. Le décorateur @tool ne doit être appliqué qu’une seule fois dans l’extrait de code.
  • Les paramètres de la fonction outil Python doivent être attribués dans la section Inputs.
  • La fonction outil Python doit avoir une instruction et une valeur renvoyée, qui est la sortie de l’outil.

Le code Python suivant est un exemple de meilleures pratiques :

from promptflow import tool

@tool
def my_python_tool(message: str) -> str:
    return 'hello ' + message

Utiliser une connexion personnalisée dans l’outil Python

Si vous développez un outil Python qui nécessite l’appel de services externes avec authentification, vous pouvez utiliser la connexion personnalisée dans un flux d’invite. Cela vous permet de stocker en toute sécurité la clé d’accès, puis de la récupérer dans votre code Python.

Créer une connexion personnalisée

Créer une connexion personnalisée qui stocke toutes les clés d’API de votre grand modèle de langage ou d’autres informations d’identification requises.

  1. Accédez à la page Centre de gestion de votre projet.

  2. Sous le titre Hub ou Projet, sélectionnez Ressources connectées.

  3. Cliquez sur + Nouvelle connexion.

  4. Sélectionnez le service Personnalisé. Vous pouvez définir le nom de votre connexion. Vous pouvez ajouter plusieurs paires clé-valeur pour stocker vos informations d’identification et vos clés en sélectionnant Ajouter des paires clé-valeur.

    Remarque

    Assurez-vous qu’au moins une paire clé-valeur est définie comme secret. Sinon, la connexion ne sera pas créée avec succès. Pour définir une paire clé-valeur comme secret, sélectionnez est secret pour chiffrer et stocker votre valeur de clé.

Utiliser une connexion personnalisée dans Python

Pour utiliser une connexion personnalisée dans votre code Python :

  1. Dans la section code de votre nœud Python, importez la bibliothèque de connexions personnalisées from promptflow.connections import CustomConnection. Définissez un paramètre d’entrée du type CustomConnection dans la fonction outil.
  2. Analysez l’entrée dans la section d’entrée. Sélectionnez ensuite votre connexion personnalisée cible dans la liste déroulante des valeurs.

Par exemple :

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

Étapes suivantes