Utilisez l'analyseur de sortie de Langchain pour extraire les informations de la réponse de l'invite de Chatgpt
Ce cahier Jupyter montre comment utiliser StructuredOutputParser de Langchain pour extraire des informations structurées à partir de réponses rapides ChatGpt.
Importe des bibliothèques nécessaires comme OpenAI , LangChain , et définit une instance ChatOpenAI .
Définit l'exemple de structure de sortie avec des champs comme "gift" , "delivery_days" , "price_value" .
Affiche un exemple de texte d'examen client à analyser.
Construise des objets ResponseSchema pour chaque champ de sortie.
Crée un point- StructuredOutputParser en utilisant les schémas de réponse.
Définit un modèle rapide qui intègre les instructions de format de l'analyseur.
Invite Chatgpt pour analyser le texte de la révision et la sortie dans le format structuré.
Analyse la réponse JSON pour extraire le cadeau, les jours de livraison et la valeur des prix dans un dictionnaire.
En résumé, le cahier montre comment l'analyse de sortie de Langchain peut être utilisée pour obtenir des données structurées à partir de réponses ChatGPT en forme libre, permettant à l'ingénierie rapide d'extraction d'informations.
Jupyter Notebook Lien: Langchain_output_parser_prompt_engineering.ipynb (l'expérience est menée dans Google Colab)
Pour utiliser le modèle GPT-3.5-turbo d'OpenAI avec Langchain, une clé API est requise. La clé API peut être obtenue à partir d'ici.
Pour contrôler l'aléatoire et la créativité du texte généré par le LLM, nous avons utilisé la température = 0,0 lors de l'initialisation de l'instance ChatOpenAI . La température est une valeur numérique définie entre 0 et 1. Une température de 0 signifie que le modèle choisira toujours le mot le plus probable à générer, tandis qu'une température de 1 signifie que le modèle est plus susceptible de choisir des mots moins probables, résultant en une sortie plus créative et inattendue. En général, le réglage optimal de température dépend de la tâche spécifique à accomplir. Pour les tâches qui nécessitent une précision et une factualité, telles que la réponse aux questions ou le résumé du texte, une température plus basse est généralement préférée. Pour les tâches qui nécessitent la créativité et l'originalité, comme écrire de la poésie ou générer des idées d'histoire, une température plus élevée peut être plus appropriée. Étant donné que notre tâche consiste à extraire des informations structurées à partir de réponses rapides de chatgpt, nous avons réglé la température à 0,0.
Analyseur de sortie: modèle de langue du texte de sortie. Mais plusieurs fois, vous voulez obtenir des informations plus structurées que le texte. C'est là que les analyseurs de sortie aident à structurer les réponses du modèle de langue. Il existe deux méthodes principales qu'un analyseur de sortie doit implémenter:
Pour notre ingénierie rapide, nous analysons les avis des clients pour extraire 3 informations:
Un exemple de structure de la sortie d'une revue que nous voulons analyser:
{
"gift" : true ,
"delivery_days" : 3 ,
"price_value" : " pretty affordable! "
}Modèle d'invite:
For the following text, extract the following information:
gift: Was the item purchased as a gift for someone else?
Answer True if yes, False if not or unknown.
delivery_days: How many days did it take for the product
to arrive? If this information is not found, output -1.
price_value: Extract any sentences about the value or price,
and output them as a comma separated Python list.
text: {text}
{format_instructions}
Ici, le texte fait référence à la revue du client et Format_instructions est une chaîne contenant des instructions sur la façon dont la sortie du modèle de langue doit être formatée.
La réponse LLM peut ensuite être facilement intégrée à l'analyseur de sortie pour obtenir des données structurées au format JSON / Dictionnaire souhaité.
À titre d'exemple, nous avons utilisé la revue suivante:
This leaf blower is pretty amazing. It has four settings:
candle blower, gentle breeze, windy city, and tornado.
It arrived in two days, just in time for my wife's
anniversary present.
I think my wife liked it so much she was speechless.
So far I've been the only one using it, and I've been
using it every other morning to clear the leaves on our lawn.
It's slightly more expensive than the other leaf blowers
out there, but I think it's worth it for the extra features.
L'analyseur de sortie a une sortie:
{
'gift': False,
'delivery_days': '2',
'price_value': "It's slightly more expensive than the other leaf blowers out there, but I think it's worth it for the extra features."
}