Utilice el analizador de salida de Langchain para extraer información de la respuesta rápida de chatgpt
Este cuaderno de Jupyter demuestra cómo usar StructuredOutputParser de Langchain para extraer información estructurada de las respuestas indicadas de ChatGPT.
Importa bibliotecas necesarias como OpenAI , LangChain y define una instancia ChatOpenAI .
Define la estructura de salida de ejemplo con campos como "gift" , "delivery_days" , "price_value" .
Muestra un texto de revisión del cliente de muestra que se analizará.
Construye los objetos ResponseSchema para cada campo de salida.
Crea un StructuredOutputParser utilizando los esquemas de respuesta.
Define una plantilla de aviso que incorpora las instrucciones de formato del analizador.
Solicita a ChatGPT para analizar el texto de revisión y la salida en el formato estructurado.
Analiza la respuesta JSON para extraer el regalo, los días de entrega y el valor del precio en un diccionario.
En resumen, el cuaderno muestra cómo el analizador de salida de Langchain se puede utilizar para obtener datos estructurados de las respuestas de CHATGPT de forma libre, lo que permite la ingeniería rápida para la extracción de información.
Enlace del cuaderno Jupyter: langchain_output_parser_prompt_engineering.ipynb (El experimento se realiza en Google Colab)
Para usar el modelo GPT-3.5-Turbo de OpenAI con Langchain, se requiere una clave API. La clave API se puede obtener de aquí.
Para controlar la aleatoriedad y la creatividad del texto generado por el LLM, usamos temperatura = 0.0 al inicializar la instancia ChatOpenAI . La temperatura es un valor numérico establecido entre 0 y 1. Una temperatura de 0 significa que el modelo siempre elegirá la palabra más probable para generar, mientras que una temperatura de 1 significa que es más probable que el modelo elija palabras menos probables, lo que resulta en una salida más creativa e inesperada. En general, la configuración de temperatura óptima depende de la tarea específica en cuestión. Para las tareas que requieren precisión y realidad, como la respuesta de preguntas o el texto de resumir, generalmente se prefiere una temperatura más baja. Para las tareas que requieren creatividad y originalidad, como escribir poesía o generar ideas de historias, una temperatura más alta puede ser más adecuada. Dado que nuestra tarea es extraer información estructurada de las respuestas indicadas de ChatGPT, establecemos la temperatura en 0.0.
Parser de salida: modelos de lenguaje Texto de salida. Pero muchas veces desea obtener más información estructurada que solo texto. Aquí es donde los analizadores de salida ayudan a estructurar las respuestas del modelo de lenguaje. Hay dos métodos principales que debe implementar un analizador de salida:
Para nuestra rápida ingeniería, analizamos las revisiones de los clientes para extraer 3 información:
Una estructura de ejemplo de la salida de una revisión que queremos analizar:
{
"gift" : true ,
"delivery_days" : 3 ,
"price_value" : " pretty affordable! "
}Plantilla de inmediato:
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}
Aquí, el texto se refiere a la revisión del cliente y al formato_instrucciones es una cadena que contiene instrucciones sobre cómo se debe formatear el resultado del modelo de idioma.
La respuesta LLM se puede alimentar fácilmente en el analizador de salida para obtener datos estructurados en nuestro formato JSON/Diccionario deseado.
Como ejemplo, utilizamos la siguiente revisión:
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.
El analizador de salida tiene salida:
{
'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."
}