Intégrer LangChain dans des flux d’invite
La bibliothèque Python LangChain est une infrastructure pour le développement d’applications soutenues par de grands modèles de langage (LLM), des agents et des outils de dépendance. Cet article montre comment booster votre développement LangChain avec le flux d’invite Azure Machine Learning.
L’intégration de LangChain à un flux d’invite est une combinaison puissante qui peut vous aider à générer et à tester facilement vos modèles de langage personnalisés. Vous pouvez utiliser des modules LangChain pour générer le flux, puis utiliser le processus de flux d’invite afin de mettre à l’échelle des expériences pour les tests en bloc, l’évaluation et le déploiement final. Par exemple, vous pouvez effectuer des expériences à grande échelle basées sur des jeux de données volumineux.
Si vous disposez déjà d’un flux d’invite local basé sur du code LangChain, vous pouvez facilement le convertir en flux d’invite Azure Machine Learning pour procéder à une expérimentation supplémentaire. Si vous préférez utiliser directement les classes et fonctions du Kit de développement logiciel (SDK) LangChain, vous pouvez facilement créer des flux Azure Machine Learning avec des nœuds Python qui utilisent votre code LangChain personnalisé.
Prérequis
- Un flux LangChain local qui a été correctement testé et est prêt pour le déploiement.
- Une session de calcul qui peut exécuter le flux d’invite Machine Learning en ajoutant des packages répertoriés dans le fichier requirements.txt, y compris
langchain
. Pour plus d’informations, consultez Gérer une session de calcul de flux d’invite.
Convertir du code LangChain en flux d’invite
Appliquez le processus suivant pour convertir votre code LangChain local en flux d’invite Azure Machine Learning exécutable.
Convertir les informations d’identification en une connexion de flux d’invite
Il se peut que votre code LangChain définisse des variables d’environnement pour stocker des informations d’identification, telles que la clé API AzureOpenAI nécessaire pour appeler des modèles AzureOpenAI. Par exemple, le code suivant montre des variables d’environnement définies pour le type d’API OpenAI, la clé, la base et la version.
os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"
os.environ["OPENAI_API_BASE"] = "https://contosobamiopenai.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "abc123abc123abc123abc123abc123ab"
Lorsque vous exécutez un flux d’invite Azure Machine Learning dans le cloud, il est préférable de ne pas exposer les informations d’identification en tant que variables d’environnement. Pour stocker et gérer en toute sécurité les informations d’identification séparément de votre code, vous devez convertir les variables d’environnement en une connexion de flux d’invite.
Pour créer une connexion qui stocke de manière sécurisée des informations d’identification personnalisées telles que votre clé API LLM ou d’autres clés requises, suivez ces instructions :
Dans la page Flux d’invite de votre espace de travail Azure Machine Learning, sélectionnez l’onglet Connexions, puis Créer.
Sélectionnez un type de connexion dans la liste déroulante. Pour cet exemple, sélectionnez Personnalisé.
Dans le volet droit, définissez le Nom de votre connexion, puis ajoutez des paires clé-valeur pour stocker vos informations d’identification et clés en sélectionnant Ajouter des paires clé-valeur.
Pour stocker une valeur chiffrée pour une clé, cochez la case Est secrète en regard d’une ou plusieurs paires clé-valeur. Vous devez définir au moins une valeur secrète pour créer une connexion personnalisée.
Cliquez sur Enregistrer.
La connexion personnalisée peut remplacer des clés et des informations d’identification ou des variables d’environnement correspondantes explicitement définies dans votre code LangChain. Pour utiliser la connexion personnalisée dans le flux, consultez Configurer la connexion.
Convertir du code LangChain en flux exécutable
Pour créer un flux, sélectionnez Créer dans la page Flux d’invite dans Azure Machine Learning studio, puis choisissez un type de flux. Dans la page de création de flux, démarrez votre session de calcul avant de créer le flux. Sélectionnez les types d’outils en haut de la page pour insérer des nœuds correspondants dans le flux. Pour obtenir des instructions détaillées sur la création de flux, consultez Développer un flux d’invite.
Tout votre code LangChain peut s’exécuter directement dans des nœuds Python dans votre flux, tant que votre session de calcul contient la dépendance de package langchain
.
Il existe deux façons de convertir votre code LangChain en flux d’invite Azure Machine Learning. Le type de flux à implémenter dépend de votre cas d’usage.
Pour une meilleure gestion des expériences, vous pouvez convertir votre code de façon à utiliser des outils d’invite et Python Azure Machine Learning dans le flux. Vous extrayez le modèle d’invite de votre code dans un nœud d’invite, et placez le code restant dans un ou plusieurs nœuds ou outils Python. Cette option vous permet d’affiner facilement les invites en exécutant des variantes, et de choisir des invites optimales en fonction des résultats d’évaluation.
L’exemple suivant montre un flux qui utilise à la fois des nœuds d’invite et des nœuds Python :
Pour simplifier le processus de conversion, vous pouvez appeler la bibliothèque LLM LangChain directement à partir de nœuds Python. Tout votre code s’exécute dans des nœuds Python, y compris les définitions d’invite. Cette option prend en charge des tests par lots plus rapides basés sur des jeux de données plus volumineux ou d’autres configurations.
L’exemple suivant montre un flux qui utilise uniquement des nœuds Python :
Configurer la connexion
Après avoir structuré votre flux et déplacé votre code vers des nœuds d’outil spécifiques, vous devez remplacer vos variables d’environnement d’origine par les clés correspondantes de votre connexion. Pour utiliser la connexion personnalisée que vous avez créée, effectuez ces étapes :
Dans votre code Python, importez la bibliothèque de connexions personnalisées en entrant
from promptflow.connections import CustomConnection
.Remarque
Pour importer une connexion Azure OpenAI, utilisez
from promptflow.connections import AzureOpenAIConnection
.Dans votre fonction outil, définissez un paramètre d’entrée du type
CustomConnection
.Remplacez les variables d’environnement qui ont initialement défini la clé ou les informations d’identification par la clé correspondante de la connexion.
Analysez l’entrée dans la section d’entrée de l’interface utilisateur du nœud, puis sélectionnez votre connexion personnalisée dans la liste déroulante Valeur de l’interface utilisateur.
Veillez également à configurer les paramètres de connexion dans tous les autres nœuds qui en ont besoin, tels que les nœuds LLM.
Configurer les entrées et les sorties
Avant d’exécuter le flux, configurez les entrées et sorties du nœud ainsi que les entrées et sorties globales du flux. Cette étape est essentielle pour garantir que toutes les données requises transitent correctement par le flux et produisent les résultats souhaités. Pour plus d’informations, consultez Entrées et sorties de flux.