Partager via


Outil Python

L’outil Python vous permet d’offrir des extraits de code personnalisés en tant que nœuds exécutables autonomes dans le flux d’invite. Vous pouvez facilement créer des outils Python, modifier du code et vérifier les résultats.

Entrées

Nom Type Description Obligatoire
Code string Extrait de code Python Oui
Entrées - Liste des paramètres de la fonction d’outil et de ses affectations -

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
Connection param : CustomConnection Connecter type d’ion est géré spécialement

Les paramètres avec l’annotation de Connection type 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 passée.

Remarque

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

Sorties

Les sorties sont le retour de la fonction outil Python.

Écrire avec l’outil Python

Utilisez les instructions suivantes pour écrire avec l’outil Python.

Consignes

  • Le code de l’outil Python doit se composer de code Python complet, y compris les importations de modules 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. Appliquez le @tool décorateur une seule fois dans l’extrait de code.

    L’exemple de la section suivante définit l’outil my_python_toolPython, qui est décoré avec @tool.

  • Les paramètres de fonction d’outil Python doivent être attribués dans la Inputs section.

    L’exemple de la section suivante définit l’entrée message et l’affecte world.

  • Une fonction d’outil Python a un retour.

    L’exemple de la section suivante retourne une chaîne concaténée.

Code

L’extrait de code suivant montre la structure de base d’une fonction d’outil. Le flux d’invite lit la fonction et extrait les entrées des paramètres de fonction et des annotations de type.

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

Entrées

Nom Type Exemple de valeur dans le flux YAML Valeur passée à la fonction
message string world world
my_conn CustomConnection my_conn l'objet CustomConnection

Le flux d’invite tente de trouver la connexion nommée my_conn pendant l’exécution.

Sorties

"hello world"

Connexion personnalisée dans l’outil Python

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

Créer une connexion personnalisée

Créez une connexion personnalisée qui stocke toutes vos clés API de modèle de langage volumineux ou d’autres informations d’identification requises.

  1. Accédez au flux d’invite dans votre espace de travail, puis accédez à l’onglet Connecter ions.

  2. Sélectionnez Créer>personnalisé.

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

  3. Dans le volet droit, vous pouvez définir votre nom de connexion. Vous pouvez ajouter plusieurs paires clé-valeur pour stocker vos informations d’identification et clés en sélectionnant Ajouter des paires clé-valeur.

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

Remarque

Pour définir une paire clé-valeur comme secret, sélectionnez la clé secrète case activée box. Cette option chiffre et stocke votre valeur de clé. Assurez-vous qu’au moins une paire clé-valeur est définie comme secret. Sinon, la connexion n’est pas créée avec succès.

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 from promptflow.connections import CustomConnectionde connexions personnalisée. Définissez un paramètre d’entrée du type CustomConnection dans la fonction outil.

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

  2. Analysez l’entrée dans la section d’entrée, puis sélectionnez votre connexion personnalisée cible dans la liste déroulante Valeur .

    Screenshot that shows the chain node highlighting the connection.

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