Creación de cadenas secuenciales en Python para procesamiento de texto
Clase 9 de 37 • Curso de LangChain
Resumen
¿Cómo funcionan las cadenas fundacionales?
Las cadenas fundacionales se componen de diferentes subcadenas, donde cada eslabón desempeña una función específica en el procesamiento del texto. Al crear una secuencia de cadenas, el texto se transforma y se procesa para ofrecer una respuesta precisa a las necesidades planteadas. Aquí exploramos cómo se aplican dos tipos de cadenas fundacionales para limpiar y modificar estilos de texto.
¿Qué es una transform chain y cómo funciona?
Las transform chains son el primer paso en el procesamiento del texto. Para comenzar, se crea una función de Python que recibe un diccionario, procesa el texto y lo devuelve limpio. Utilizamos expresiones regulares (regex) para realizar esta limpieza:
- Se eliminan emoticonos y símbolos innecesarios del texto.
- Se eliminan URLs o enlaces que no se desea incluir en el procesamiento final.
Esta función devuelve un diccionario con la llave texto limpio
, el cual se utilizará posteriormente en otras cadenas para más transformaciones.
import re
def limpiar_texto(entradas):
texto = entradas['texto']
texto_limpo = re.sub(r'[^\w\s]', '', texto) # Ejemplo básico de regex para eliminar signos de puntuación
texto_limpo = re.sub(r'http\S+|www.\S+', '', texto_limpo) # Eliminar URLs
return {'texto limpio': texto_limpo}
Se importa TransformChain
de la librería de Chains de Lanchain y se instancia con las variables input texto
, output texto limpio
y la función limpiar texto
.
¿Cómo se cambia el estilo de un texto utilizando un lenguaje de modelo (LLM)?
Para cambiar el estilo del texto, se implementa un modelo de lenguaje que, en este caso, es un modelo de OpenAI (GPT 3.5 Turbo). La cadena LLM Chain utiliza una plantilla de prompt que coordina las instrucciones de entrada y salida, permitiendo que el texto limpio sea parafraseado en el estilo deseado.
- Se personaliza el prompt ajustando el estilo según culturas o lugares (por ejemplo, peruano, mexicano, etc.).
- La LLM Chain toma como input el texto limpio y genera un texto modificado con la nueva tonalidad estilística.
from langchain.chains import LLMTransformer
prompt_template = {
"template": "Parafrasear este texto: {texto limpio}. Estilo: {estilo}.",
}
llm_chain = LLMTransformer(
llm=OpenAIModel('gpt-3.5-turbo'),
prompt=prompt_template,
input_variables=['texto limpio', 'estilo'],
output_variables=['texto final']
)
¿Cómo se combinan las cadenas en una secuencial?
Las cadenas se combinan utilizando una secuencia que sincroniza sus funcionalidades para cumplir propósitos más complejos. Aquí, se importan y usan las cadenas transform y LLM en una SequentialChain
de la siguiente manera:
- Cadena que limpia: Recibe y limpia el texto de entrada.
- Cadena que cambia estilo: Modifica el estilo del texto limpio.
from chains import SequentialChain
sequential_chain = SequentialChain(
chains=[transform_chain, llm_chain],
input_variables=['texto', 'estilo'],
output_variable='texto final'
)
Al ejecutar esta cadena secuencial con un texto descriptivo de una ciudad como Monterrey, México, se observa cómo el texto se limpia y se parafrasea consistentemente según el estilo deseado.
Reto avanzado: añadir una tercera cadena
Te incitamos a agregar una tercera cadena a este proceso para crear resúmenes del texto generado. Al extender esta lógica, puedes establecer una cadena secuencial más compleja que no solo limpie y modifique el estilo del texto, sino que también genere resúmenes precisos, ideal para textos más extensos. ¡Desarrolla tus habilidades de cadena y permite que tu creatividad brille en el mundo de la programación con cadenas fundacionales!