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 Le type de connexion 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].

Outputs

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 la fonction outil Python doivent être attribués dans la section Inputs.

    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.

Outputs

"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é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 au flux d’invite dans votre espace de travail, puis accédez à l’onglet Connexions .

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

    Capture d’écran montrant les flux sous l’onglet Connexions mettant en surbrillance le bouton Personnalisé dans le menu déroulant.

  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 vos clés en sélectionnant Ajouter des paires clé-valeur.

    Capture d’écran montrant l’ajout d’un point de connexion personnalisé et le bouton Ajouter des paires clé-valeur.

Remarque

Pour définir une paire clé-valeur comme secret, activez la case à cocher secret . 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 de connexions personnalisées from promptflow.connections import CustomConnection. Définissez un paramètre d’entrée du type CustomConnection dans la fonction outil.

    Capture d’écran montrant le nœud de chaîne de recherche doc mettant en évidence la connexion personnalisée.

  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 .

    Capture d’écran montrant le nœud de chaîne mettant en évidence la connexion.

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