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_tool
Python, 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’affecteworld
.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.
Accédez au flux d’invite dans votre espace de travail, puis accédez à l’onglet Connexions .
Sélectionnez Créer>personnalisé.
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.
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 :
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 typeCustomConnection
dans la fonction outil.Analysez l’entrée dans la section d’entrée, puis sélectionnez votre connexion personnalisée cible dans la liste déroulante Valeur .
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