Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique uniquement au :Portail Foundry (classique). Cet article n’est pas disponible pour le nouveau portail Foundry.
En savoir plus sur le nouveau portail.
Note
Les liens de cet article peuvent ouvrir du contenu dans la nouvelle documentation Microsoft Foundry au lieu de la documentation Foundry (classique) que vous affichez maintenant.
Avertissement
Prompt flow dans Microsoft Foundry et Azure Machine Learning sera retiré le 20 avril 2027. Prompt flow n’est plus recommandé pour les nouveaux développements. Migrez les applications et les déploiements Prompt flow existants vers Microsoft Agent Framework avant le 20 avril 2027.
Les images de conteneur de flux de requête ne reçoivent plus de mises à jour, y compris les mises à jour de sécurité et des packages. Cela s’applique aux images d’exécution de Prompt flow, y compris promptflow-runtime, promptflow-runtime-stable et promptflow-python.
Après le 20 avril 2027, Prompt flow, y compris l’expérience de création sur le web dans Microsoft Foundry et Azure Machine Learning, les extensions VS Code et les images de conteneur Prompt flow associées, ne sera plus pris en charge ou disponible.
Si votre application dépend de déploiements Prompt flow ou d’images d’exécution, prévoyez de migrer ces charges de travail vers des solutions de remplacement prises en charge, telles que Microsoft Agent Framework, avant la date de mise hors service. Pour obtenir des conseils sur la migration, consultez le guide de migration de Prompt flow et les exemples de code de migration.
Le flux d'invite de l'outil Python fournit des extraits de code personnalisés en tant que nœuds exécutables autonomes. Vous pouvez rapidement créer des outils Python, modifier du code et vérifier les résultats.
Conditions préalables
Important
Cet article décrit une prise en charge héritée des projets basés sur le hub. Elle ne fonctionnera pas pour les projets Foundry. Découvrez comment savoir quel type de projet j’ai ?
note de compatibilité SDK : les exemples de code nécessitent une version spécifique du SDK Foundry Microsoft. Si vous rencontrez des problèmes de compatibilité, envisagez de migrer d’un hub vers un projet Foundry.
- Un compte Azure avec un abonnement actif. Si vous n'en avez pas, créez un compte Azure gratuit, qui inclut un abonnement d'essai gratuit.
- Si vous n’en avez pas, créez un projet hub.
Générer avec l’outil Python
Créez ou ouvrez un flux dans Microsoft Foundry. Pour plus d’informations, consultez Créer un flux.
Sélectionnez + Python pour ajouter l’outil Python à votre flux.
Entrez des valeurs pour les paramètres d’entrée de l’outil Python décrits dans la table Inputs. Par exemple, dans la zone de texte d’entrée Code, entrez le code Python suivant :
from promptflow import tool @tool def my_python_tool(message: str) -> str: return 'hello ' + messagePour plus d’informations, consultez exigences d'entrée de code en Python.
Ajoutez d’autres outils à votre flux, selon vos besoins. Ou sélectionnez Exécuter pour exécuter le flux.
Les sorties sont décrites dans la table Sorties. Basé sur le code Python de l'exemple précédent, 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. L’ajout de type(s) aux arguments et aux valeurs permet à l’outil d’afficher correctement les types.
| Nom | Type | Description | Obligatoire |
|---|---|---|---|
| Code | string | Extrait de code Python. | Oui |
| Entrées | - | Liste des paramètres de la fonction outil et de ses affectations. | - |
Sorties
La sortie est la valeur return de la fonction outil Python. Par exemple, considérez la fonction d’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 de Python | Description |
|---|---|---|
| Int | param : int | Type entier |
| bool | param : bool | Type booléen |
| string | param : str | Type de chaîne |
| double | param: float | Type double |
| Liste | param : list ou param : List[T] | Type de liste |
| Objet | param : dict ou param : Dict[K, V] | Type d’objet |
| Connexion | param : CustomConnection | Le type de connexion est géré spécialement. |
Considérez les paramètres avec l’annotation de Connection type comme des entrées de connexion. Ce traitement signifie :
- L'extension de flux d'invite affiche un sélecteur permettant de choisir 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 que vous transmettez.
Note
L'annotation de type Union[...] ne prend en charge que le type de connexion. Un exemple est param: Union[CustomConnection, OpenAIConnection].
exigences d’entrée de code Python
Cette section décrit les conditions requises pour l’entrée de code Python pour l’outil Python.
- Le code de l'outil Python doit se composer de code Python complet, y compris les importations nécessaires de modules.
- Python code d’outil doit contenir une fonction décorée avec
@tool(fonction outil), servant de point d’entrée pour l’exécution. Appliquez le@tooldécorateur une seule fois dans l’extrait de code. - Affectez les paramètres de fonction de l'outil Python dans la section
Inputs. - Une fonction d'outil Python doit comporter une instruction de retour et une valeur, qui constitue la sortie de l’outil.
Le code Python suivant est un exemple de bonnes 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, utilisez la connexion personnalisée dans un flux d'invite. À l’aide de cette connexion, vous pouvez 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.
Important
Cet article décrit une prise en charge héritée des projets basés sur le hub. Elle ne fonctionnera pas pour les projets Foundry. Découvrez comment savoir quel type de projet j’ai ?
note de compatibilité SDK : les exemples de code nécessitent une version spécifique du SDK Foundry Microsoft. Si vous rencontrez des problèmes de compatibilité, envisagez de migrer d’un hub vers un projet Foundry.
- Un compte Azure avec un abonnement actif. Si vous n'en avez pas, créez un compte Azure gratuit, qui inclut un abonnement d'essai gratuit.
- Si vous n’en avez pas, créez un projet hub.
Accédez à la page Centre de gestion de votre projet.
Sous le titre Hub ou Project, sélectionnez Ressources connectées.
Sélectionnez + Nouvelle connexion.
Sélectionnez Service personnalisé . Vous pouvez définir votre nom de connexion. Sélectionnez Ajouter des paires clé-valeur pour ajouter plusieurs paires clé-valeur pour stocker vos informations d’identification et clés.
Note
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. Pour définir une paire clé-valeur comme secret, sélectionnez secret pour chiffrer et stocker votre valeur de clé.
Utiliser une connexion personnalisée dans Python
Pour consommer une connexion personnalisée dans votre code Python :
- Dans la section code de votre nœud Python, importez la bibliothèque de connexions personnalisée à l’aide de
from promptflow.connections import CustomConnection. Définissez un paramètre d’entrée du typeCustomConnectiondans la fonction outil. - 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